On Wed, May 08, 2019 at 01:16:06PM +0530, Vinod Koul wrote:
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.
Yes, you need to represent the master device type if you are going to be
having an internal representation of it.