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

From: Vinod Koul
Date: Tue May 12 2020 - 11:59:34 EST


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@c2d0000 {
> #address-cells = <2>;
> #size-cells = <0>;
> reg = <0x0c2d0000 0x2000>;

--
~Vinod