platform/x86: dell-privacy: convert to use dev_groups
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 29 Jul 2022 11:53:02 +0000 (13:53 +0200)
committerHans de Goede <hdegoede@redhat.com>
Thu, 25 Aug 2022 14:23:52 +0000 (16:23 +0200)
The driver core supports the ability to handle the creation and removal
of device-specific sysfs files in a race-free manner.  Take advantage of
that by converting this driver to use this by moving the sysfs
attributes into a group and assigning the dev_groups pointer to it.

Cc: Perry Yuan <Perry.Yuan@dell.com>
Cc: Hans de Goede <hdegoede@redhat.com>
Cc: Mark Gross <markgross@kernel.org>
Cc: Dell.Client.Kernel@dell.com
Cc: platform-driver-x86@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Link: https://lore.kernel.org/r/20220729115302.2258296-1-gregkh@linuxfoundation.org
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
drivers/platform/x86/dell/dell-wmi-privacy.c

index 074b7e6..c82b3d6 100644 (file)
@@ -174,15 +174,12 @@ static ssize_t dell_privacy_current_state_show(struct device *dev,
 static DEVICE_ATTR_RO(dell_privacy_supported_type);
 static DEVICE_ATTR_RO(dell_privacy_current_state);
 
-static struct attribute *privacy_attributes[] = {
+static struct attribute *privacy_attrs[] = {
        &dev_attr_dell_privacy_supported_type.attr,
        &dev_attr_dell_privacy_current_state.attr,
        NULL,
 };
-
-static const struct attribute_group privacy_attribute_group = {
-       .attrs = privacy_attributes
-};
+ATTRIBUTE_GROUPS(privacy);
 
 /*
  * Describes the Device State class exposed by BIOS which can be consumed by
@@ -342,10 +339,6 @@ static int dell_privacy_wmi_probe(struct wmi_device *wdev, const void *context)
        if (ret)
                return ret;
 
-       ret = devm_device_add_group(&wdev->dev, &privacy_attribute_group);
-       if (ret)
-               return ret;
-
        if (priv->features_present & BIT(DELL_PRIVACY_TYPE_AUDIO)) {
                ret = dell_privacy_leds_setup(&priv->wdev->dev);
                if (ret)
@@ -374,6 +367,7 @@ static const struct wmi_device_id dell_wmi_privacy_wmi_id_table[] = {
 static struct wmi_driver dell_privacy_wmi_driver = {
        .driver = {
                .name = "dell-privacy",
+               .dev_groups = privacy_groups,
        },
        .probe = dell_privacy_wmi_probe,
        .remove = dell_privacy_wmi_remove,