From c1ffebae483b378f524b9fc06818ec8e50903e18 Mon Sep 17 00:00:00 2001 From: Richard Hughes Date: Mon, 30 Jan 2023 11:54:05 +0000 Subject: [PATCH] Remove unused API for setting backend tags It turns out we do not want to know the current phase of the device, and we can achieve the same thing tagging the GUsbDevice manually and clearing the events at exactly the correct time. --- libfwupdplugin/fu-device.c | 119 --------------------------------- libfwupdplugin/fu-device.h | 8 --- libfwupdplugin/fu-plugin.c | 8 --- libfwupdplugin/fu-self-test.c | 9 --- libfwupdplugin/fu-usb-device.c | 29 -------- libfwupdplugin/fwupdplugin.map | 4 -- 6 files changed, 177 deletions(-) diff --git a/libfwupdplugin/fu-device.c b/libfwupdplugin/fu-device.c index 1680642fd..2675bf1fc 100644 --- a/libfwupdplugin/fu-device.c +++ b/libfwupdplugin/fu-device.c @@ -83,7 +83,6 @@ typedef struct { gchar *custom_flags; gulong notify_flags_handler_id; GHashTable *instance_hash; - GPtrArray *backend_tags; /* of utf-8 */ } FuDevicePrivate; typedef struct { @@ -106,7 +105,6 @@ enum { PROP_CONTEXT, PROP_PROXY, PROP_PARENT, - PROP_BACKEND_TAGS, PROP_LAST }; @@ -141,9 +139,6 @@ fu_device_get_property(GObject *object, guint prop_id, GValue *value, GParamSpec case PROP_PARENT: g_value_set_object(value, fu_device_get_parent(self)); break; - case PROP_BACKEND_TAGS: - g_value_set_boxed(value, priv->backend_tags); - break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); break; @@ -1277,104 +1272,6 @@ fu_device_get_children(FuDevice *self) return fwupd_device_get_children(FWUPD_DEVICE(self)); } -/** - * fu_device_get_backend_tags: - * @self: a #FuDevice - * - * Gets any backend tags. - * - * Returns: (transfer none) (element-type utf8): string tags - * - * Since: 1.8.5 - **/ -GPtrArray * -fu_device_get_backend_tags(FuDevice *self) -{ - FuDevicePrivate *priv = GET_PRIVATE(self); - g_return_val_if_fail(FU_IS_DEVICE(self), NULL); - return priv->backend_tags; -} - -/** - * fu_device_add_backend_tag: - * @self: a #FuDevice - * @backend_tag: a tag, for example `bootloader` or `runtime-reload` - * - * Adds a backend tag, which allows the backend to identify the specific device for a specific - * phase. For instance, there might be a pre-update runtime, a bootloader and a post-update runtime - * and allowing tags to be saved to the backend object allows us to identify each version of - * the same physical device. - * - * Since: 1.8.5 - **/ -void -fu_device_add_backend_tag(FuDevice *self, const gchar *backend_tag) -{ - FuDevicePrivate *priv = GET_PRIVATE(self); - FuDevice *parent = fu_device_get_parent(self); - g_return_if_fail(FU_IS_DEVICE(self)); - g_return_if_fail(backend_tag != NULL); - if (fu_device_has_backend_tag(self, backend_tag)) - return; - g_ptr_array_add(priv->backend_tags, g_strdup(backend_tag)); - g_object_notify(G_OBJECT(self), "backend-tags"); - - if (parent != NULL) - fu_device_add_backend_tag(parent, backend_tag); -} - -/** - * fu_device_remove_backend_tag: - * @self: a #FuDevice - * @backend_tag: a tag, for example `bootloader` or `runtime-reload` - * - * Removes a backend tag, which allows the backend to identify the specific device for a specific - * phase. - * - * Since: 1.8.11 - **/ -void -fu_device_remove_backend_tag(FuDevice *self, const gchar *backend_tag) -{ - FuDevicePrivate *priv = GET_PRIVATE(self); - g_return_if_fail(FU_IS_DEVICE(self)); - g_return_if_fail(backend_tag != NULL); - - for (guint i = 0; i < priv->backend_tags->len; i++) { - const gchar *backend_tag_tmp = g_ptr_array_index(priv->backend_tags, i); - if (g_strcmp0(backend_tag_tmp, backend_tag) == 0) { - g_ptr_array_remove_index(priv->backend_tags, i); - g_object_notify(G_OBJECT(self), "backend-tags"); - break; - } - } -} - -/** - * fu_device_has_backend_tag: - * @self: a #FuDevice - * @backend_tag: a tag, for example `bootloader` or `runtime-reload` - * - * Finds if the backend tag already exists. - * - * Returns: %TRUE if the backend tag exists - * - * Since: 1.8.5 - **/ -gboolean -fu_device_has_backend_tag(FuDevice *self, const gchar *backend_tag) -{ - FuDevicePrivate *priv = GET_PRIVATE(self); - g_return_val_if_fail(FU_IS_DEVICE(self), FALSE); - g_return_val_if_fail(backend_tag != NULL, FALSE); - for (guint i = 0; i < priv->backend_tags->len; i++) { - const gchar *backend_tag_tmp = g_ptr_array_index(priv->backend_tags, i); - if (g_strcmp0(backend_tag_tmp, backend_tag) == 0) - return TRUE; - } - return FALSE; -} - /** * fu_device_add_child: * @self: a #FuDevice @@ -5856,20 +5753,6 @@ fu_device_class_init(FuDeviceClass *klass) FU_TYPE_DEVICE, G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_NAME); g_object_class_install_property(object_class, PROP_PARENT, pspec); - - /** - * FuDevice:backend-tags: - * - * The device tags used for backend identification. - * - * Since: 1.5.8 - */ - pspec = g_param_spec_boxed("backend-tags", - NULL, - NULL, - G_TYPE_PTR_ARRAY, - G_PARAM_READABLE | G_PARAM_STATIC_NAME); - g_object_class_install_property(object_class, PROP_BACKEND_TAGS, pspec); } static void @@ -5882,7 +5765,6 @@ fu_device_init(FuDevice *self) priv->instance_id_quirks = g_ptr_array_new_with_free_func(g_free); priv->retry_recs = g_ptr_array_new_with_free_func(g_free); priv->instance_hash = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free); - priv->backend_tags = g_ptr_array_new_with_free_func(g_free); priv->acquiesce_delay = 50; /* ms */ priv->notify_flags_handler_id = g_signal_connect(FWUPD_DEVICE(self), "notify::flags", @@ -5916,7 +5798,6 @@ fu_device_finalize(GObject *object) g_ptr_array_unref(priv->possible_plugins); g_ptr_array_unref(priv->instance_id_quirks); g_ptr_array_unref(priv->retry_recs); - g_ptr_array_unref(priv->backend_tags); g_free(priv->alternate_id); g_free(priv->equivalent_id); g_free(priv->physical_id); diff --git a/libfwupdplugin/fu-device.h b/libfwupdplugin/fu-device.h index 95f01a444..aec5ccaec 100644 --- a/libfwupdplugin/fu-device.h +++ b/libfwupdplugin/fu-device.h @@ -546,14 +546,6 @@ fu_device_set_version_from_uint32(FuDevice *self, guint32 version_raw); void fu_device_set_version_from_uint64(FuDevice *self, guint64 version_raw); void -fu_device_add_backend_tag(FuDevice *self, const gchar *backend_tag); -void -fu_device_remove_backend_tag(FuDevice *self, const gchar *backend_tag); -gboolean -fu_device_has_backend_tag(FuDevice *self, const gchar *backend_tag); -GPtrArray * -fu_device_get_backend_tags(FuDevice *self); -void fu_device_inhibit(FuDevice *self, const gchar *inhibit_id, const gchar *reason); void fu_device_uninhibit(FuDevice *self, const gchar *inhibit_id); diff --git a/libfwupdplugin/fu-plugin.c b/libfwupdplugin/fu-plugin.c index 633f0c044..d93b125f1 100644 --- a/libfwupdplugin/fu-plugin.c +++ b/libfwupdplugin/fu-plugin.c @@ -1267,7 +1267,6 @@ fu_plugin_runner_prepare(FuPlugin *self, GError **error) { FuPluginVfuncs *vfuncs = fu_plugin_get_vfuncs(self); - fu_device_add_backend_tag(device, "prepare"); return fu_plugin_runner_flagged_device_generic(self, device, progress, @@ -1299,7 +1298,6 @@ fu_plugin_runner_cleanup(FuPlugin *self, GError **error) { FuPluginVfuncs *vfuncs = fu_plugin_get_vfuncs(self); - fu_device_add_backend_tag(device, "cleanup"); return fu_plugin_runner_flagged_device_generic(self, device, progress, @@ -1326,7 +1324,6 @@ gboolean fu_plugin_runner_attach(FuPlugin *self, FuDevice *device, FuProgress *progress, GError **error) { FuPluginVfuncs *vfuncs = fu_plugin_get_vfuncs(self); - fu_device_add_backend_tag(device, "attach"); return fu_plugin_runner_device_generic_progress( self, device, @@ -1353,7 +1350,6 @@ gboolean fu_plugin_runner_detach(FuPlugin *self, FuDevice *device, FuProgress *progress, GError **error) { FuPluginVfuncs *vfuncs = fu_plugin_get_vfuncs(self); - fu_device_add_backend_tag(device, "detach"); return fu_plugin_runner_device_generic_progress( self, device, @@ -1389,7 +1385,6 @@ fu_plugin_runner_reload(FuPlugin *self, FuDevice *device, GError **error) locker = fu_device_locker_new(proxy, error); if (locker == NULL) return FALSE; - fu_device_add_backend_tag(device, "reload"); return fu_device_reload(device, error); } @@ -1984,7 +1979,6 @@ fu_plugin_runner_activate(FuPlugin *self, FuDevice *device, FuProgress *progress } /* run vfunc */ - fu_device_add_backend_tag(device, "activate"); if (!fu_plugin_runner_device_generic_progress( self, device, @@ -2034,7 +2028,6 @@ fu_plugin_runner_unlock(FuPlugin *self, FuDevice *device, GError **error) } /* run vfunc */ - fu_device_add_backend_tag(device, "unlock"); if (!fu_plugin_runner_device_generic(self, device, "fu_plugin_unlock", @@ -2084,7 +2077,6 @@ fu_plugin_runner_write_firmware(FuPlugin *self, g_debug("plugin not enabled, skipping"); return TRUE; } - fu_device_add_backend_tag(device, "write-firmware"); /* optional */ if (vfuncs->write_firmware == NULL) { diff --git a/libfwupdplugin/fu-self-test.c b/libfwupdplugin/fu-self-test.c index 933167851..a8e4eb108 100644 --- a/libfwupdplugin/fu-self-test.c +++ b/libfwupdplugin/fu-self-test.c @@ -1210,15 +1210,6 @@ fu_device_func(void) fu_device_add_possible_plugin(device, "test"); possible_plugins = fu_device_get_possible_plugins(device); g_assert_cmpint(possible_plugins->len, ==, 1); - - g_assert_cmpint(fu_device_get_backend_tags(device)->len, ==, 0); - fu_device_add_backend_tag(device, "foo"); - fu_device_add_backend_tag(device, "bar"); - g_assert_cmpint(fu_device_get_backend_tags(device)->len, ==, 2); - g_assert_true(fu_device_has_backend_tag(device, "foo")); - g_assert_false(fu_device_has_backend_tag(device, "bazbazbazbazbaz")); - fu_device_remove_backend_tag(device, "foo"); - g_assert_false(fu_device_has_backend_tag(device, "foo")); } static void diff --git a/libfwupdplugin/fu-usb-device.c b/libfwupdplugin/fu-usb-device.c index 9b9b0c50a..a03b4fa75 100644 --- a/libfwupdplugin/fu-usb-device.c +++ b/libfwupdplugin/fu-usb-device.c @@ -86,27 +86,6 @@ fu_usb_device_finalize(GObject *object) G_OBJECT_CLASS(fu_usb_device_parent_class)->finalize(object); } -#if G_USB_CHECK_VERSION(0, 4, 4) -static void -fu_usb_device_backend_tags_notify_cb(GObject *object, GParamSpec *pspec, FuUsbDevice *device) -{ - FuUsbDevicePrivate *priv = GET_PRIVATE(device); - GPtrArray *backend_tags = fu_device_get_backend_tags(FU_DEVICE(device)); - g_autoptr(GPtrArray) usb_device_tags = g_usb_device_get_tags(priv->usb_device); - - for (guint i = 0; i < usb_device_tags->len; i++) { - const gchar *tag = g_ptr_array_index(usb_device_tags, i); - if (!fu_device_has_backend_tag(FU_DEVICE(device), tag)) - g_usb_device_remove_tag(priv->usb_device, tag); - } - for (guint i = 0; i < backend_tags->len; i++) { - const gchar *tag = g_ptr_array_index(backend_tags, i); - if (!g_usb_device_has_tag(priv->usb_device, tag)) - g_usb_device_add_tag(priv->usb_device, tag); - } -} -#endif - static void fu_usb_device_init(FuUsbDevice *device) { @@ -123,14 +102,6 @@ fu_usb_device_init(FuUsbDevice *device) G_USB_DEVICE_ERROR_PERMISSION_DENIED, NULL); #endif - -#if G_USB_CHECK_VERSION(0, 4, 4) - /* copy this to the GUsbDevice */ - g_signal_connect(FU_DEVICE(device), - "notify::backend-tags", - G_CALLBACK(fu_usb_device_backend_tags_notify_cb), - device); -#endif } /** diff --git a/libfwupdplugin/fwupdplugin.map b/libfwupdplugin/fwupdplugin.map index 95c38e9ed..72a3b07e0 100644 --- a/libfwupdplugin/fwupdplugin.map +++ b/libfwupdplugin/fwupdplugin.map @@ -1090,9 +1090,6 @@ LIBFWUPDPLUGIN_1.8.5 { fu_context_add_flag; fu_context_get_esp_volumes; fu_context_has_flag; - fu_device_add_backend_tag; - fu_device_get_backend_tags; - fu_device_has_backend_tag; fu_device_set_quirk_kv; fu_intel_thunderbolt_firmware_get_type; fu_intel_thunderbolt_firmware_new; @@ -1166,6 +1163,5 @@ LIBFWUPDPLUGIN_1.8.10 { LIBFWUPDPLUGIN_1.8.11 { global: fu_device_has_problem; - fu_device_remove_backend_tag; local: *; } LIBFWUPDPLUGIN_1.8.10;