mirror of
https://git.proxmox.com/git/fwupd
synced 2025-11-03 05:42:35 +00:00
Allow plugins to define support for a 'well-known' protocol
Future metadata from the LVFS will set the protocol the firmware is expected to use. As vendors love to re-use common terms like DFU for incompatible protocols, namespace them with the controlling company ID with an approximate reverse DNS namespace. This also allows more than one plugin to define support for the same protocol, for instance rts54hid+rts54hub and synapticsmst+dell-dock.
This commit is contained in:
parent
8612318158
commit
9729584ee4
@ -14,6 +14,7 @@ void
|
||||
fu_plugin_init (FuPlugin *plugin)
|
||||
{
|
||||
fu_plugin_add_rule (plugin, FU_PLUGIN_RULE_REQUIRES_QUIRK, FU_QUIRKS_PLUGIN);
|
||||
fu_plugin_add_rule (plugin, FU_PLUGIN_RULE_SUPPORTS_PROTOCOL, "org.altusmetrum.altos");
|
||||
}
|
||||
|
||||
gboolean
|
||||
|
||||
@ -14,6 +14,7 @@ void
|
||||
fu_plugin_init (FuPlugin *plugin)
|
||||
{
|
||||
fu_plugin_add_rule (plugin, FU_PLUGIN_RULE_REQUIRES_QUIRK, FU_QUIRKS_PLUGIN);
|
||||
fu_plugin_add_rule (plugin, FU_PLUGIN_RULE_SUPPORTS_PROTOCOL, "com.hughski.colorhug");
|
||||
}
|
||||
|
||||
gboolean
|
||||
|
||||
@ -14,6 +14,7 @@ void
|
||||
fu_plugin_init (FuPlugin *plugin)
|
||||
{
|
||||
fu_plugin_add_rule (plugin, FU_PLUGIN_RULE_REQUIRES_QUIRK, FU_QUIRKS_PLUGIN);
|
||||
fu_plugin_add_rule (plugin, FU_PLUGIN_RULE_SUPPORTS_PROTOCOL, "com.qualcomm.dfu");
|
||||
}
|
||||
|
||||
gboolean
|
||||
|
||||
@ -30,6 +30,8 @@ void fu_plugin_init (FuPlugin *plugin)
|
||||
|
||||
/* currently slower performance, but more reliable in corner cases */
|
||||
fu_plugin_add_rule (plugin, FU_PLUGIN_RULE_BETTER_THAN, "synapticsmst");
|
||||
fu_plugin_add_rule (plugin, FU_PLUGIN_RULE_SUPPORTS_PROTOCOL, "com.dell.dock");
|
||||
fu_plugin_add_rule (plugin, FU_PLUGIN_RULE_SUPPORTS_PROTOCOL, "com.synaptics.mst");
|
||||
}
|
||||
|
||||
static gboolean
|
||||
|
||||
@ -14,6 +14,8 @@ void
|
||||
fu_plugin_init (FuPlugin *plugin)
|
||||
{
|
||||
fu_plugin_add_rule (plugin, FU_PLUGIN_RULE_REQUIRES_QUIRK, FU_QUIRKS_PLUGIN);
|
||||
fu_plugin_add_rule (plugin, FU_PLUGIN_RULE_SUPPORTS_PROTOCOL, "org.usb.dfu");
|
||||
fu_plugin_add_rule (plugin, FU_PLUGIN_RULE_SUPPORTS_PROTOCOL, "com.st.dfuse");
|
||||
}
|
||||
|
||||
static void
|
||||
|
||||
@ -14,6 +14,7 @@ void
|
||||
fu_plugin_init (FuPlugin *plugin)
|
||||
{
|
||||
fu_plugin_add_rule (plugin, FU_PLUGIN_RULE_REQUIRES_QUIRK, FU_QUIRKS_PLUGIN);
|
||||
fu_plugin_add_rule (plugin, FU_PLUGIN_RULE_SUPPORTS_PROTOCOL, "com.8bitdo");
|
||||
}
|
||||
|
||||
gboolean
|
||||
|
||||
@ -14,6 +14,7 @@ void
|
||||
fu_plugin_init (FuPlugin *plugin)
|
||||
{
|
||||
fu_plugin_add_rule (plugin, FU_PLUGIN_RULE_REQUIRES_QUIRK, FU_QUIRKS_PLUGIN);
|
||||
fu_plugin_add_rule (plugin, FU_PLUGIN_RULE_SUPPORTS_PROTOCOL, "com.google.fastboot");
|
||||
}
|
||||
|
||||
gboolean
|
||||
|
||||
@ -33,6 +33,7 @@ void
|
||||
fu_plugin_init (FuPlugin *plugin)
|
||||
{
|
||||
fu_plugin_alloc_data (plugin, sizeof (FuPluginData));
|
||||
fu_plugin_add_rule (plugin, FU_PLUGIN_RULE_SUPPORTS_PROTOCOL, "org.flashrom");
|
||||
}
|
||||
|
||||
void
|
||||
|
||||
@ -32,6 +32,7 @@ void
|
||||
fu_plugin_init (FuPlugin *plugin)
|
||||
{
|
||||
fu_plugin_add_udev_subsystem (plugin, "nvme");
|
||||
fu_plugin_add_rule (plugin, FU_PLUGIN_RULE_SUPPORTS_PROTOCOL, "org.nvmexpress");
|
||||
}
|
||||
|
||||
gboolean
|
||||
|
||||
@ -117,6 +117,7 @@ fu_plugin_init (FuPlugin *plugin)
|
||||
{
|
||||
FuPluginData *data = fu_plugin_alloc_data (plugin, sizeof (FuPluginData));
|
||||
data->client = fu_redfish_client_new ();
|
||||
fu_plugin_add_rule (plugin, FU_PLUGIN_RULE_SUPPORTS_PROTOCOL, "org.dmtf.redfish");
|
||||
}
|
||||
|
||||
void
|
||||
|
||||
@ -15,6 +15,7 @@ void
|
||||
fu_plugin_init (FuPlugin *plugin)
|
||||
{
|
||||
fu_plugin_add_rule (plugin, FU_PLUGIN_RULE_REQUIRES_QUIRK, FU_QUIRKS_PLUGIN);
|
||||
fu_plugin_add_rule (plugin, FU_PLUGIN_RULE_SUPPORTS_PROTOCOL, "com.realtek.rts54");
|
||||
|
||||
/* register the custom types */
|
||||
g_type_ensure (FU_TYPE_RTS54HID_MODULE);
|
||||
|
||||
@ -14,6 +14,7 @@ void
|
||||
fu_plugin_init (FuPlugin *plugin)
|
||||
{
|
||||
fu_plugin_add_rule (plugin, FU_PLUGIN_RULE_REQUIRES_QUIRK, FU_QUIRKS_PLUGIN);
|
||||
fu_plugin_add_rule (plugin, FU_PLUGIN_RULE_SUPPORTS_PROTOCOL, "com.realtek.rts54");
|
||||
}
|
||||
|
||||
gboolean
|
||||
|
||||
@ -471,4 +471,5 @@ fu_plugin_init (FuPlugin *plugin)
|
||||
{
|
||||
/* make sure dell is already coldplugged */
|
||||
fu_plugin_add_rule (plugin, FU_PLUGIN_RULE_RUN_AFTER, "dell");
|
||||
fu_plugin_add_rule (plugin, FU_PLUGIN_RULE_SUPPORTS_PROTOCOL, "com.synaptics.mst");
|
||||
}
|
||||
|
||||
@ -15,6 +15,7 @@ struct FuPluginData {
|
||||
void
|
||||
fu_plugin_init (FuPlugin *plugin)
|
||||
{
|
||||
fu_plugin_add_rule (plugin, FU_PLUGIN_RULE_SUPPORTS_PROTOCOL, "com.acme.test");
|
||||
fu_plugin_alloc_data (plugin, sizeof (FuPluginData));
|
||||
g_debug ("init");
|
||||
}
|
||||
|
||||
@ -562,6 +562,7 @@ fu_plugin_init (FuPlugin *plugin)
|
||||
FuPluginData *data = fu_plugin_alloc_data (plugin, sizeof (FuPluginData));
|
||||
const gchar *subsystems[] = { "thunderbolt", NULL };
|
||||
|
||||
fu_plugin_add_rule (plugin, FU_PLUGIN_RULE_SUPPORTS_PROTOCOL, "com.intel.thunderbolt");
|
||||
data->udev = g_udev_client_new (subsystems);
|
||||
g_signal_connect (data->udev, "uevent",
|
||||
G_CALLBACK (udev_uevent_cb), plugin);
|
||||
|
||||
@ -38,6 +38,7 @@ fu_plugin_init (FuPlugin *plugin)
|
||||
FuPluginData *data = fu_plugin_alloc_data (plugin, sizeof (FuPluginData));
|
||||
data->bgrt = fu_uefi_bgrt_new ();
|
||||
fu_plugin_add_rule (plugin, FU_PLUGIN_RULE_RUN_AFTER, "upower");
|
||||
fu_plugin_add_rule (plugin, FU_PLUGIN_RULE_SUPPORTS_PROTOCOL, "org.uefi.capsule");
|
||||
fu_plugin_add_compile_version (plugin, "com.redhat.efivar", EFIVAR_LIBRARY_VERSION);
|
||||
}
|
||||
|
||||
|
||||
@ -174,5 +174,7 @@ void
|
||||
fu_plugin_init (FuPlugin *plugin)
|
||||
{
|
||||
fu_plugin_add_rule (plugin, FU_PLUGIN_RULE_REQUIRES_QUIRK, FU_QUIRKS_PLUGIN);
|
||||
fu_plugin_add_rule (plugin, FU_PLUGIN_RULE_SUPPORTS_PROTOCOL, "com.logitech.unifying");
|
||||
fu_plugin_add_rule (plugin, FU_PLUGIN_RULE_SUPPORTS_PROTOCOL, "com.logitech.unifyingsigned");
|
||||
fu_plugin_add_udev_subsystem (plugin, "hidraw");
|
||||
}
|
||||
|
||||
@ -14,6 +14,7 @@ void
|
||||
fu_plugin_init (FuPlugin *plugin)
|
||||
{
|
||||
fu_plugin_add_rule (plugin, FU_PLUGIN_RULE_REQUIRES_QUIRK, FU_QUIRKS_PLUGIN);
|
||||
fu_plugin_add_rule (plugin, FU_PLUGIN_RULE_SUPPORTS_PROTOCOL, "com.wacom.usb");
|
||||
}
|
||||
|
||||
gboolean
|
||||
|
||||
@ -70,6 +70,7 @@ typedef enum {
|
||||
* @FU_PLUGIN_RULE_REQUIRES_QUIRK: Requires a specific quirk
|
||||
* @FU_PLUGIN_RULE_BETTER_THAN: Is better than another plugin
|
||||
* @FU_PLUGIN_RULE_INHIBITS_IDLE: The plugin inhibits the idle shutdown
|
||||
* @FU_PLUGIN_RULE_SUPPORTS_PROTOCOL: The plugin supports a well known protocol
|
||||
*
|
||||
* The rules used for ordering plugins.
|
||||
* Plugins are expected to add rules in fu_plugin_initialize().
|
||||
@ -81,6 +82,7 @@ typedef enum {
|
||||
FU_PLUGIN_RULE_REQUIRES_QUIRK,
|
||||
FU_PLUGIN_RULE_BETTER_THAN,
|
||||
FU_PLUGIN_RULE_INHIBITS_IDLE,
|
||||
FU_PLUGIN_RULE_SUPPORTS_PROTOCOL,
|
||||
/*< private >*/
|
||||
FU_PLUGIN_RULE_LAST
|
||||
} FuPluginRule;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user