Re: [PATCH 2/6] soundwire: sysfs: move sdw_slave_dev_attr_group into the existing list of groups

From: Dan Williams
Date: Wed Jan 31 2024 - 00:20:21 EST


Greg Kroah-Hartman wrote:
> The sysfs logic already creates a list of groups for the device, so add
> the sdw_slave_dev_attr_group group to that list instead of having to do
> a two-step process of adding a group list and then an individual group.
>
> This is a step on the way to moving all of the sysfs attribute handling
> into the default driver core attribute group logic so that the soundwire
> core does not have to do any of it manually.
>
> Cc: Vinod Koul <vkoul@xxxxxxxxxx>
> Cc: Bard Liao <yung-chuan.liao@xxxxxxxxxxxxxxx>
> Cc: Pierre-Louis Bossart <pierre-louis.bossart@xxxxxxxxxxxxxxx>
> Cc: Sanyog Kale <sanyog.r.kale@xxxxxxxxx>
> Cc: alsa-devel@xxxxxxxxxxxxxxxx
> Cc: linux-kernel@xxxxxxxxxxxxxxx
> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
> ---
> drivers/soundwire/sysfs_slave.c | 15 ++++++++++-----
> 1 file changed, 10 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/soundwire/sysfs_slave.c b/drivers/soundwire/sysfs_slave.c
> index 3210359cd944..83e3f6cc3250 100644
> --- a/drivers/soundwire/sysfs_slave.c
> +++ b/drivers/soundwire/sysfs_slave.c
> @@ -105,7 +105,10 @@ static struct attribute *slave_attrs[] = {
> &dev_attr_modalias.attr,
> NULL,
> };
> -ATTRIBUTE_GROUPS(slave);
> +
> +static const struct attribute_group slave_attr_group = {
> + .attrs = slave_attrs,
> +};
>
> static struct attribute *slave_dev_attrs[] = {
> &dev_attr_mipi_revision.attr,
> @@ -190,6 +193,12 @@ static const struct attribute_group dp0_group = {
> .name = "dp0",
> };
>
> +static const struct attribute_group *slave_groups[] = {
> + &slave_attr_group,
> + &sdw_slave_dev_attr_group,
> + NULL,
> +};
> +
> int sdw_slave_sysfs_init(struct sdw_slave *slave)
> {
> int ret;
> @@ -198,10 +207,6 @@ int sdw_slave_sysfs_init(struct sdw_slave *slave)
> if (ret < 0)
> return ret;
>
> - ret = devm_device_add_group(&slave->dev, &sdw_slave_dev_attr_group);
> - if (ret < 0)
> - return ret;
> -

Yeah, open-coding the groups, much better than dynamically adding one.

> if (slave->prop.dp0_prop) {
> ret = devm_device_add_group(&slave->dev, &dp0_group);
> if (ret < 0)

Makes sense. I won't say "looks good" as this file has "slave" all over
the place, but I checked and it entered the kernel just before the
CodingStyle changed.

Reviewed-by: Dan Williams <dan.j.williams@xxxxxxxxx>