From: "Mukunda,Vijendar" <vijendar.mukunda@amd.com>
To: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>,
"Limonciello, Mario" <Mario.Limonciello@amd.com>,
"broonie@kernel.org" <broonie@kernel.org>,
"vkoul@kernel.org" <vkoul@kernel.org>,
"alsa-devel@alsa-project.org" <alsa-devel@alsa-project.org>
Cc: "Katragadda, Mastan" <Mastan.Katragadda@amd.com>,
"Dommati, Sunil-kumar" <Sunil-kumar.Dommati@amd.com>,
"Hiregoudar, Basavaraj" <Basavaraj.Hiregoudar@amd.com>,
Takashi Iwai <tiwai@suse.com>,
Liam Girdwood <lgirdwood@gmail.com>,
open list <linux-kernel@vger.kernel.org>,
Nathan Chancellor <nathan@kernel.org>,
"Saba Kareem, Syed" <Syed.SabaKareem@amd.com>,
"kondaveeti, Arungopal" <Arungopal.kondaveeti@amd.com>,
Sanyog Kale <sanyog.r.kale@intel.com>,
Bard Liao <yung-chuan.liao@linux.intel.com>
Subject: Re: [PATCH 01/19] ASoC: amd: ps: create platform devices based on acp config
Date: Wed, 1 Feb 2023 07:15:52 +0530 [thread overview]
Message-ID: <2ea354bc-4263-1db6-4423-4de1b0d4e535@amd.com> (raw)
In-Reply-To: <c5161bc3-62cb-d0a1-2ba2-d670285b6958@linux.intel.com>
On 01/02/23 06:21, Pierre-Louis Bossart wrote:
>>>>>>> we should create two separate ACPI companion devices for separate
>>>>>>> manager instance. Currently we have limitations with BIOS.
>>>>>>> we are going with single ACPI companion device.
>>>>>>> We will update the changes later.
>>>>>> Humm, this is tricky. The BIOS interface isn't something that can be
>>>>>> changed at will on the kernel side, you'd have to maintain two solutions
>>>>>> with a means to detect which one to use.
>>>>>>
>>>>>> Or is this is a temporary issue on development devices, then that part
>>>>>> should probably not be upstreamed.
>>>>> It's a temporary issue on development devices.
>>>>> We had discussion with Windows dev team and BIOS team.
>>>>> They have agreed to modify ACPI companion device logic.
>>>>> We will update the two companion devices logic for two manager
>>>>> instances in V2 version.
>>>> After experimenting, two ACPI companion devices approach,
>>>> we got an update from Windows team, there is a limitation
>>>> on windows stack. For current platform, we can't proceed
>>>> with two ACPI companion devices.
>>> so how would the two controllers be declared then in the DSDT used by
>>> Windows? There's a contradiction between having a single companion
>>> device and the ability to set the 'manager-number' to one.
>>>
>>> You probably want to give an example of what you have, otherwise we
>>> probably will talk past each other.
>>>> Even on Linux side, if we create two ACPI companion devices
>>>> followed by creating a single soundwire manager instance per
>>>> Soundwire controller, we have observed an issue in a scenario,
>>>> where similar codec parts(UID are also same) are connected on
>>>> both soundwire manager instances.
>>> We've been handling this case of two identical amplifiers on two
>>> different links for the last 3 years. I don't see how this could be a
>>> problem, the codecs are declared in the scope of the companion device
>>> and the _ADR defines in bits [51..48] which link the codec is connected to.
>>>
>> The problem is that there are two managers in the specified AMD design, and
>> the codecs are both on "Link 0" for each manager.
> You're confusing Controller and Manager.
>
> A Manager is the same as a 'Link', the two terms are interchangeable. It
> makes no sense to refer to a link number for a manager because there is
> no such concept.
>
> Only a Controller can have multiple links or managers. And each
> Controller needs to be declared as an ACPI device if you want to use the
> DisCo properties.
>
> The Managers/Links are not described as ACPI devices, that's a
> regrettable design decision made in MIPI circles many moons ago, that's
> why in the Intel code we have to manually create auxiliary devices based
> on the 'mipi-sdw-master-count' property.
>
>> So the _ADR really is identical for both.
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
}
}
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.
> That cannot possible work, even for Windows. You need to have a
> controller scope, and the _ADR can then be identical for different
> peripherals as long as this ADR is local to a controller scope.
>
next prev parent reply other threads:[~2023-02-01 1:44 UTC|newest]
Thread overview: 91+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-01-11 9:02 [PATCH 00/19] Add soundwire support for Pink Sardine platform Vijendar Mukunda
2023-01-11 9:02 ` [PATCH 01/19] ASoC: amd: ps: create platform devices based on acp config Vijendar Mukunda
2023-01-11 13:27 ` Amadeusz Sławiński
2023-01-11 14:13 ` Mukunda,Vijendar
2023-01-11 13:32 ` Pierre-Louis Bossart
2023-01-13 12:36 ` Mukunda,Vijendar
2023-01-13 17:11 ` Pierre-Louis Bossart
2023-01-16 8:02 ` Mukunda,Vijendar
2023-01-31 13:09 ` Mukunda,Vijendar
2023-01-31 13:24 ` Mario Limonciello
2023-01-31 16:00 ` Pierre-Louis Bossart
2023-01-31 22:57 ` Limonciello, Mario
2023-02-01 0:51 ` Pierre-Louis Bossart
2023-02-01 1:45 ` Mukunda,Vijendar [this message]
2023-02-01 2:03 ` Pierre-Louis Bossart
2023-02-01 2:10 ` Mukunda,Vijendar
2023-02-01 3:52 ` Pierre-Louis Bossart
2023-02-01 6:01 ` Mukunda,Vijendar
2023-02-01 23:08 ` Pierre-Louis Bossart
2023-02-06 6:30 ` Mukunda,Vijendar
2023-02-06 14:50 ` Pierre-Louis Bossart
2023-02-06 16:38 ` Mukunda,Vijendar
2023-01-11 9:02 ` [PATCH 02/19] soundwire: amd: Add support for AMD Master driver Vijendar Mukunda
2023-01-11 13:59 ` Amadeusz Sławiński
2023-01-11 14:16 ` Mukunda,Vijendar
2023-01-11 14:37 ` Pierre-Louis Bossart
2023-01-13 18:21 ` Mukunda,Vijendar
2023-01-13 18:41 ` Pierre-Louis Bossart
2023-01-16 7:53 ` Mukunda,Vijendar
2023-01-16 14:57 ` Pierre-Louis Bossart
2023-01-17 11:37 ` Mukunda,Vijendar
2023-01-11 9:02 ` [PATCH 03/19] soundwire: amd: register sdw controller dai ops Vijendar Mukunda
2023-01-11 14:58 ` Pierre-Louis Bossart
2023-01-13 11:31 ` Mukunda,Vijendar
2023-01-13 17:13 ` Pierre-Louis Bossart
2023-01-11 14:59 ` Amadeusz Sławiński
2023-01-11 9:02 ` [PATCH 04/19] soundwire: amd: enable build for AMD soundwire master driver Vijendar Mukunda
2023-01-19 18:35 ` kernel test robot
2023-01-11 9:02 ` [PATCH 05/19] soundwire: amd: add soundwire interrupt handling Vijendar Mukunda
2023-01-11 15:19 ` Pierre-Louis Bossart
2023-01-19 22:00 ` kernel test robot
2023-01-11 9:02 ` [PATCH 06/19] ASoC: amd: ps: add support for soundwire interrupts in acp pci driver Vijendar Mukunda
2023-01-11 9:02 ` [PATCH 07/19] ASoC: amd: ps: add soundwire dma driver for pink sardine platform Vijendar Mukunda
2023-01-11 15:22 ` Pierre-Louis Bossart
2023-01-12 9:10 ` Mukunda,Vijendar
2023-01-11 9:02 ` [PATCH 08/19] ASoC: amd: ps: add soundwire dma driver dma ops Vijendar Mukunda
2023-01-11 13:04 ` Mark Brown
2023-01-11 14:08 ` Mukunda,Vijendar
2023-01-11 15:34 ` Pierre-Louis Bossart
2023-01-13 11:16 ` Mukunda,Vijendar
2023-01-13 17:05 ` Pierre-Louis Bossart
2023-01-16 6:59 ` Mukunda,Vijendar
2023-01-11 9:02 ` [PATCH 09/19] ASoC: amd: ps: add support for Soundwire DMA interrupts Vijendar Mukunda
2023-01-11 15:38 ` Pierre-Louis Bossart
2023-01-12 10:55 ` Mukunda,Vijendar
2023-01-11 9:02 ` [PATCH 10/19] ASoC: amd: ps: enable Soundwire DMA driver build Vijendar Mukunda
2023-01-11 9:02 ` [PATCH 11/19] ASoC: amd: update comments in Kconfig file Vijendar Mukunda
2023-01-11 9:02 ` [PATCH 12/19] ASoC: amd: ps: Add soundwire specific checks in pci driver in pm ops Vijendar Mukunda
2023-01-11 9:02 ` [PATCH 13/19] ASoC: amd: ps: add support for runtime pm ops for soundwire dma driver Vijendar Mukunda
2023-01-11 9:02 ` [PATCH 14/19] soundwire: amd: add runtime pm ops for AMD master driver Vijendar Mukunda
2023-01-11 15:47 ` Pierre-Louis Bossart
2023-01-12 10:35 ` Mukunda,Vijendar
2023-01-12 14:47 ` Pierre-Louis Bossart
2023-01-11 9:02 ` [PATCH 15/19] soundwire: amd: add startup and shutdown dai ops Vijendar Mukunda
2023-01-11 15:49 ` Pierre-Louis Bossart
2023-01-12 10:22 ` Mukunda,Vijendar
2023-01-11 9:02 ` [PATCH 16/19] soundwire: amd: handle wake enable interrupt Vijendar Mukunda
2023-01-11 15:54 ` Pierre-Louis Bossart
2023-01-12 10:21 ` Mukunda,Vijendar
2023-01-11 9:02 ` [PATCH 17/19] soundwire: amd: add pm_prepare callback and pm ops support Vijendar Mukunda
2023-01-11 15:58 ` Pierre-Louis Bossart
2023-01-12 10:14 ` Mukunda,Vijendar
2023-01-12 14:50 ` Pierre-Louis Bossart
2023-01-11 9:02 ` [PATCH 18/19] ASoC: amd: ps: implement system level pm ops for soundwire dma driver Vijendar Mukunda
2023-01-11 9:02 ` [PATCH 19/19] ASoC: amd: ps: increase runtime suspend delay Vijendar Mukunda
2023-01-11 16:02 ` Pierre-Louis Bossart
2023-01-12 11:02 ` Mukunda,Vijendar
2023-01-12 14:54 ` Pierre-Louis Bossart
2023-01-12 15:29 ` Limonciello, Mario
2023-01-12 16:05 ` Pierre-Louis Bossart
2023-01-13 10:58 ` Mukunda,Vijendar
2023-01-13 17:33 ` Pierre-Louis Bossart
2023-01-13 19:57 ` Mark Brown
2023-01-16 8:35 ` Mukunda,Vijendar
2023-01-16 15:02 ` Pierre-Louis Bossart
2023-01-17 11:33 ` Mukunda,Vijendar
2023-01-17 11:51 ` Pierre-Louis Bossart
2023-01-17 12:16 ` Mark Brown
2023-01-17 12:36 ` Pierre-Louis Bossart
2023-01-11 13:36 ` [PATCH 00/19] Add soundwire support for Pink Sardine platform Pierre-Louis Bossart
2023-01-12 9:08 ` Mukunda,Vijendar
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=2ea354bc-4263-1db6-4423-4de1b0d4e535@amd.com \
--to=vijendar.mukunda@amd.com \
--cc=Arungopal.kondaveeti@amd.com \
--cc=Basavaraj.Hiregoudar@amd.com \
--cc=Mario.Limonciello@amd.com \
--cc=Mastan.Katragadda@amd.com \
--cc=Sunil-kumar.Dommati@amd.com \
--cc=Syed.SabaKareem@amd.com \
--cc=alsa-devel@alsa-project.org \
--cc=broonie@kernel.org \
--cc=lgirdwood@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=nathan@kernel.org \
--cc=pierre-louis.bossart@linux.intel.com \
--cc=sanyog.r.kale@intel.com \
--cc=tiwai@suse.com \
--cc=vkoul@kernel.org \
--cc=yung-chuan.liao@linux.intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox