[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <815ab487-a1a3-1978-94fc-b60e931c2848@linux.intel.com>
Date: Tue, 31 Jan 2023 20:03:17 -0600
From: Pierre-Louis Bossart <pierre-louis.bossart@...ux.intel.com>
To: "Mukunda,Vijendar" <vijendar.mukunda@....com>,
"Limonciello, Mario" <Mario.Limonciello@....com>,
"broonie@...nel.org" <broonie@...nel.org>,
"vkoul@...nel.org" <vkoul@...nel.org>,
"alsa-devel@...a-project.org" <alsa-devel@...a-project.org>
Cc: "Katragadda, Mastan" <Mastan.Katragadda@....com>,
"Dommati, Sunil-kumar" <Sunil-kumar.Dommati@....com>,
open list <linux-kernel@...r.kernel.org>,
"Hiregoudar, Basavaraj" <Basavaraj.Hiregoudar@....com>,
Takashi Iwai <tiwai@...e.com>,
Liam Girdwood <lgirdwood@...il.com>,
Nathan Chancellor <nathan@...nel.org>,
"kondaveeti, Arungopal" <Arungopal.kondaveeti@....com>,
Sanyog Kale <sanyog.r.kale@...el.com>,
Bard Liao <yung-chuan.liao@...ux.intel.com>,
"Saba Kareem, Syed" <Syed.SabaKareem@....com>
Subject: Re: [PATCH 01/19] ASoC: amd: ps: create platform devices based on acp
config
> 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?
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.
Powered by blists - more mailing lists