On 16/01/23 13:32, Mukunda,Vijendar wrote:
On 13/01/23 22:41, Pierre-Louis Bossart wrote:After experimenting, two ACPI companion devices approach,
It's a temporary issue on development devices.Humm, this is tricky. The BIOS interface isn't something that can beACP IP has two independent manager instances driven by separate controller+ if (is_dmic_dev && is_sdw_dev) {so the cover letter is indeed wrong and confuses two controllers for two
+ 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;
managers.
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.
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.
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.
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.
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?