diff --git a/src/fu-device.c b/src/fu-device.c index 773fdaf3e..439f3fb85 100644 --- a/src/fu-device.c +++ b/src/fu-device.c @@ -562,6 +562,10 @@ fu_device_set_quirk_kv (FuDevice *device, return TRUE; } + /* optional device-specific method */ + if (klass->set_quirk_kv != NULL) + return klass->set_quirk_kv (device, key, value, error); + /* failed */ g_set_error_literal (error, G_IO_ERROR, diff --git a/src/fu-device.h b/src/fu-device.h index 6862a0750..c43484af0 100644 --- a/src/fu-device.h +++ b/src/fu-device.h @@ -40,8 +40,12 @@ struct _FuDeviceClass GBytes *(*prepare_firmware) (FuDevice *device, GBytes *fw, GError **error); + gboolean (*set_quirk_kv) (FuDevice *device, + const gchar *key, + const gchar *value, + GError **error); /*< private >*/ - gpointer padding[24]; + gpointer padding[23]; }; /**