Re: [PATCH 01/19] ASoC: amd: ps: create platform devices based on acp config
From: Mukunda,Vijendar
Date: Tue Jan 31 2023 - 21:07:12 EST
On 01/02/23 07:33, Pierre-Louis Bossart wrote:
>
>> Yes Controller has ACPI scope. Under controller based on
>> "mipi-sdw-manager-list" property manager instances will be created.
>> Manager and Link terms are interchangeable.
>>
>> Below is the sample DSDT file if we go with two ACPI companion
>> devices.
>>
>> Scope (\_SB.ACP)
>> {
>>
>> Device (SWC0)
>> {
>> Name (_ADR, 0x05) // _ADR: Address
>> Name(_DSD, Package() {
>> ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
>> Package () {
>> Package (2) {"mipi-sdw-sw-interface-revision", 0x00010000},
>> Package (2) {"mipi-sdw-manager-list", 1}, // v 1.0
>> },
>> ToUUID("dbb8e3e6-5886-4ba6-8795-1319f52a966b"), // Hierarchical Extension
>> Package () {
>> Package (2) {"mipi-sdw-link-0-subproperties", "SWM0"},
>> }
>> }) // End _DSD
>> Name(SWM0, Package() {
>> ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
>> Package () {
>> Package (2) {"mipi-sdw-sw-interface-revision", 0x00010000},
>> // ... place holder for SWM0 additional properties
>> }
>> }) // End SWM0.SWM
>>
>> Device (SLV0) { // SoundWire Slave 0
>> Name(_ADR, 0x000032025D131601)
>> } // END SLV0
>>
>> } // END SWC0
>>
>> Device (SWC1)
>> {
>> Name (_ADR, 0x09) // _ADR: Address
>> Name(_DSD, Package() {
>> ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
>> Package () {
>> Package (2) {"mipi-sdw-sw-interface-revision", 0x00010000},
>> Package (2) {"mipi-sdw-manager-list", 1},
>> },
>> ToUUID("dbb8e3e6-5886-4ba6-8795-1319f52a966b"),
>> Package () {
>> Package (2) {"mipi-sdw-link-0-subproperties", "SWM0"},
>>
>> }
>> }) // End _DSD
>> Name(SWM0, Package() {
>> ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
>> Package () {
>> Package (2) {"mipi-sdw-sw-interface-revision", 0x00010000},
>> // ... place holder for SWM0 additional properties
>> }
>> }) // End SWM0.SWM
>>
>> Device (SLV0) { // SoundWire Slave 0
>> Name(_ADR, 0x000032025D131601)
>> } // END SLV0
>>
>> } // END SWC1
>> }
>> }
> that looks good to me.
>
>> In above case, two manager instances will be created.
>> When manager under SWC1 scope tries to add peripheral
>> device, In sdw_slave_add() API its failing because peripheral
>> device descriptor uses link id followed by 48bit encoded address.
>> In above scenarios, both the manager's link id is zero only.
> what fails exactly? The device_register() ?
>
> If yes, what the issue. the device name?
device_register() is failing because of duplication of
device name.
> I wonder if we need to use something like
>
> "name shall be sdw:bus_id:link:mfg:part:class"
>
> so as to uniquify the device name, if that was the problem.
Yes correct.