[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <7346e8ea-9347-61ea-717e-1f94cd4750d3@amd.com>
Date: Tue, 31 Jan 2023 07:24:48 -0600
From: Mario Limonciello <mario.limonciello@....com>
To: "Mukunda,Vijendar" <vijendar.mukunda@....com>,
Pierre-Louis Bossart <pierre-louis.bossart@...ux.intel.com>,
broonie@...nel.org, vkoul@...nel.org, alsa-devel@...a-project.org
Cc: Basavaraj.Hiregoudar@....com, Sunil-kumar.Dommati@....com,
Mastan.Katragadda@....com, arungopal.kondaveeti@....com,
Bard Liao <yung-chuan.liao@...ux.intel.com>,
Sanyog Kale <sanyog.r.kale@...el.com>,
Liam Girdwood <lgirdwood@...il.com>,
Jaroslav Kysela <perex@...ex.cz>,
Takashi Iwai <tiwai@...e.com>,
Syed Saba Kareem <Syed.SabaKareem@....com>,
Nathan Chancellor <nathan@...nel.org>,
open list <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH 01/19] ASoC: amd: ps: create platform devices based on acp
config
On 1/31/23 07:09, Mukunda,Vijendar wrote:
> On 16/01/23 13:32, Mukunda,Vijendar wrote:
>> On 13/01/23 22:41, Pierre-Louis Bossart wrote:
>>>>>> + if (is_dmic_dev && is_sdw_dev) {
>>>>>> + switch (acp_data->sdw_master_count) {
>>>>>> + case 1:
>>>>>> + acp_data->pdev_mask = ACP63_SDW_PDM_DEV_MASK;
>>>>>> + acp_data->pdev_count = ACP63_SDW0_PDM_MODE_DEVS;
>>>>>> + break;
>>>>>> + case 2:
>>>>>> + acp_data->pdev_mask = ACP63_SDW_PDM_DEV_MASK;
>>>>>> + acp_data->pdev_count = ACP63_SDW0_SDW1_PDM_MODE_DEVS;
>>>>>> + break;
>>>>> so the cover letter is indeed wrong and confuses two controllers for two
>>>>> managers.
>>>> ACP IP has two independent manager instances driven by separate controller
>>>> each which are connected in different power domains.
>>>>
>>>> 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.
>
> 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.
If I'm not mistaken, the specific failure in the Linux stack is because
of the duplicated sysfs files since the same UID is used on both manager
instances, right?
At least with how the kernel handles it today I don't see how this
should be handled. You can't disambiguate between the two different
ACPI devices when they would be identical unless you had another property.
>
> As per MIPI Disco spec, for single link controllers Link ID should
> be set to zero.
> If we use Link ID as zero, for the soundwire manager which is on
> the second soundwire controller ACPI device scope, then soundwire
> framework is not allowing to create peripheral device node as its
> duplicate one.
>
> If we want to support two ACPI companion device approach
> on our future platforms, how to proceed?
From my understanding I would think this should be an exception for ps
platform, but this should be discussed for a future spec revision.
Maybe in a future spec revision another property can be utilized in
conjunction with ACPI device to disambiguate this case.
>>
>>
>
Powered by blists - more mailing lists