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.
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