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