[PATCH 3/3] soundwire: bus_type: add sdw_master_device support

Vinod Koul vkoul at kernel.org
Tue May 12 17:59:27 CEST 2020


On 12-05-20, 09:36, Pierre-Louis Bossart wrote:
> On 5/11/20 10:30 PM, Vinod Koul wrote:
> > On 11-05-20, 14:00, Pierre-Louis Bossart wrote:
> > > > > +	md = &bus->md;
> > > > > +	md->dev.bus = &sdw_bus_type;
> > > > > +	md->dev.type = &sdw_master_type;
> > > > > +	md->dev.parent = parent;
> > > > > +	md->dev.of_node = parent->of_node;
> > > > > +	md->dev.fwnode = fwnode;
> > > > > +	md->dev.dma_mask = parent->dma_mask;
> > > > > +
> > > > > +	dev_set_name(&md->dev, "sdw-master-%d", bus->link_id);
> > > > 
> > > > This give nice sdw-master-0. In DT this comes from reg property. I dont
> > > > seem to recall if the ACPI/Disco spec treats link_id as unique across
> > > > the system, can you check that please, if not we would need to update
> > > > this.
> > > Table 3 in the Disco for Soundwire 1.0 spec: "all LinkID values are relative
> > > to the immediate parent Device."
> > > 
> > > There isn't any known implementation with more than one controller.
> > 
> > But then it can come in "future" right. So lets try to make it future
> > proof by not using the link_id (we can expose that as a sysfs if people
> > want to know). So a global unique id needs to allocated (hint: idr or
> > equivalent) and used as master_id
> 
> Can you clarify if you are asking for a global ID for Intel/ACPI platforms,
> or for DT as well? I can't figure out from the soundwire-controller.yaml
> definitions if there is already a notion of unique ID.

If ACPI was unique, then I was planning to update the definition below
to include that. Given that it is not the case, let's make it agnostic to
underlying firmware.

> 
> properties:
>   $nodename:
>     pattern: "^soundwire(@.*)?$"
> 
>    soundwire at c2d0000 {
>         #address-cells = <2>;
>         #size-cells = <0>;
>         reg = <0x0c2d0000 0x2000>;

-- 
~Vinod


More information about the Alsa-devel mailing list