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

Pierre-Louis Bossart pierre-louis.bossart at linux.intel.com
Tue May 12 16:36:25 CEST 2020



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.

properties:
   $nodename:
     pattern: "^soundwire(@.*)?$"

    soundwire at c2d0000 {
         #address-cells = <2>;
         #size-cells = <0>;
         reg = <0x0c2d0000 0x2000>;


More information about the Alsa-devel mailing list