On 07-05-19, 17:49, Pierre-Louis Bossart wrote:
The model here is that Master device is PCI or Platform device and then creates a bus instance which has soundwire slave devices.
So for any attribute on Master device (which has properties as well and representation in sysfs), device specfic struct (PCI/platfrom doesn't help). For slave that is not a problem as sdw_slave structure takes care if that.
So, the solution was to create the psedo sdw_master device for the representation and have device-specific structure.
Ok, much like the "USB host controller" type device. That's fine, make such a device, add it to your bus, and set the type correctly. And keep a pointer to that structure in your device-specific structure if you really need to get to anything in it.
humm, you lost me on the last sentence. Did you mean using set_drv/platform_data during the init and retrieving the bus information with get_drv/platform_data as needed later? Or something else I badly need to learn?
IIUC Greg meant we should represent a soundwire master device type and use that here. Just like we have soundwire slave device type. Something like:
struct sdw_master { struct device dev; struct sdw_master_prop *prop; ... };
In show function you get master from dev (container of) and then use that to access the master properties. So int.sdw.0 can be of this type.
Thanks