Re: [alsa-devel] [RFC PATCH 2/7] soundwire: add Slave sysfs support

From: Vinod Koul
Date: Mon May 06 2019 - 12:22:58 EST


On 06-05-19, 17:19, Greg KH wrote:
> On Mon, May 06, 2019 at 09:42:35AM -0500, Pierre-Louis Bossart wrote:
> > > > +
> > > > +int sdw_sysfs_slave_init(struct sdw_slave *slave)
> > > > +{
> > > > + struct sdw_slave_sysfs *sysfs;
> > > > + unsigned int src_dpns, sink_dpns, i, j;
> > > > + int err;
> > > > +
> > > > + if (slave->sysfs) {
> > > > + dev_err(&slave->dev, "SDW Slave sysfs is already initialized\n");
> > > > + err = -EIO;
> > > > + goto err_ret;
> > > > + }
> > > > +
> > > > + sysfs = kzalloc(sizeof(*sysfs), GFP_KERNEL);
> > >
> > > Same question as patch 1, why a new device?
> >
> > yes it's the same open. In this case, the slave devices are defined at a
> > different level so it's also confusing to create a device to represent the
> > slave properties. The code works but I am not sure the initial directions
> > are correct.
>
> You can just make a subdir for your attributes by using the attribute
> group name, if a subdirectory is needed just to keep things a bit more
> organized.

The key here is 'a subdir' which is not the case here. We did discuss
this in the initial patches for SoundWire which had sysfs :)

The way MIPI disco spec organized properties, we have dp0 and dpN
properties each of them requires to have a subdir of their own and that
was the reason why I coded it to be creating a device.

Do we have a better way to handle this?

> Otherwise, you need to mess with having multiple "types" of struct
> device all associated with the same bus. It is possible, and not that
> hard, but I don't think you are doing that here.
>
> thnaks,
>
> greg k-h

--
~Vinod