Re: [PATCH] HID: playstation: convert to use dev_groups
From: Roderick Colenbrander
Date: Fri Aug 12 2022 - 12:00:23 EST
Hi Greg,
Thanks for the patch. It looks good and confirmed it working properly.
(Replying from personal email... corporate email systems *Exchange*
don't work well with GIT)
Acked-by: Roderick Colenbrander <roderick.colenbrander@xxxxxxxx>
Thanks,
Roderick Colenbrander
On Thu, Aug 4, 2022 at 4:32 AM Greg Kroah-Hartman
<gregkh@xxxxxxxxxxxxxxxxxxx> wrote:
>
> There is no need for a driver to individually add/create device groups,
> the driver core will do it automatically for you. Convert the
> hid-playstation driver to use the dev_groups pointer instead of manually
> calling the driver core to create the group and have it be cleaned up
> later on by the devm core.
>
> Cc: Roderick Colenbrander <roderick.colenbrander@xxxxxxxx>
> Cc: Jiri Kosina <jikos@xxxxxxxxxx>
> Cc: Benjamin Tissoires <benjamin.tissoires@xxxxxxxxxx>
> Cc: linux-input@xxxxxxxxxxxxxxx
> Cc: linux-kernel@xxxxxxxxxxxxxxx
> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
> ---
> drivers/hid/hid-playstation.c | 16 +++++-----------
> 1 file changed, 5 insertions(+), 11 deletions(-)
>
> diff --git a/drivers/hid/hid-playstation.c b/drivers/hid/hid-playstation.c
> index b1b5721b5d8f..40050eb85c0a 100644
> --- a/drivers/hid/hid-playstation.c
> +++ b/drivers/hid/hid-playstation.c
> @@ -692,15 +692,12 @@ static ssize_t hardware_version_show(struct device *dev,
>
> static DEVICE_ATTR_RO(hardware_version);
>
> -static struct attribute *ps_device_attributes[] = {
> +static struct attribute *ps_device_attrs[] = {
> &dev_attr_firmware_version.attr,
> &dev_attr_hardware_version.attr,
> NULL
> };
> -
> -static const struct attribute_group ps_device_attribute_group = {
> - .attrs = ps_device_attributes,
> -};
> +ATTRIBUTE_GROUPS(ps_device);
>
> static int dualsense_get_calibration_data(struct dualsense *ds)
> {
> @@ -1448,12 +1445,6 @@ static int ps_probe(struct hid_device *hdev, const struct hid_device_id *id)
> }
> }
>
> - ret = devm_device_add_group(&hdev->dev, &ps_device_attribute_group);
> - if (ret) {
> - hid_err(hdev, "Failed to register sysfs nodes.\n");
> - goto err_close;
> - }
> -
> return ret;
>
> err_close:
> @@ -1487,6 +1478,9 @@ static struct hid_driver ps_driver = {
> .probe = ps_probe,
> .remove = ps_remove,
> .raw_event = ps_raw_event,
> + .driver = {
> + .dev_groups = ps_device_groups,
> + },
> };
>
> static int __init ps_init(void)
> --
> 2.37.1
>