On 5/27/22 03:38, Cezary Rojewski wrote:
On 2022-05-26 4:45 PM, Pierre-Louis Bossart wrote:
On 5/26/22 09:17, Cezary Rojewski wrote:
Hmm.. I don't see why SDW is a problem here. Could you elaborate? I could boost avs-driver to support SDW configurations if we need a POC. Why would machine devices not be created by the platform (e.g. PCI) driver?
Because there will be at some point an ACPI device for the machine driver. I can't give more details on a public mailing list just yet, but the approach based on the PCI driver creating a platform device is NOT future-proof.
I still believe that upcoming descriptor changes only simplifies things
- less machine descriptor tables, more reliance on actual ACPI
description. Remember that granular card approach does not ban the usage of compound cards. You can still mix both together. If we encounter some descriptor that says given N devices are logically inseparable, then we create a single machine board for them. The fact that sound card has a device assigned to it does not change - something will create a device and sound card driver will attach onto it. From that point onward, assigned DAI LINK components can still take control of cards behavior just like we do it today.
Having multiple cards created is not the issue, it's that there's no generic way for the platform driver to know how to expose the DAIs in separate components.
Shamelessly borrowing Morimoto-san's ascii art, it would be ideal if both of the models below could be supported. Currently the first one is not supported due to the component:card 1:1 relationship, and when the card is created it's too late to change how the components are exposed.
+-- DeviceA --+ +- DeviceB --+ |+-----------+| |+----------+| ||ComponentA || ||ComponentB|| || [DAI] <-> [DAI] || Card-1 || || |+----------+| || || +------------+ || || || || +- DeviceC --+ || || |+----------+| || || ||ComponentC|| || [DAI] <-> [DAI] || Card-2 |+-----------+| |+----------+| +-------------+ +------------+
+-- DeviceA --+ +-- DeviceB -+ |+-----------+| |+----------+| ||ComponentA1|| ||ComponentB|| || [DAI] <-> [DAI] || Card-1 |+-----------+| |+----------+| | | +------------+ | | | | +-- DeviceC -+ |+-----------+| |+----------+| ||ComponentA2|| ||ComponentC|| || [DAI] <-> [DAI] || Card-2 |+-----------+| |+----------+| +-------------+ +------------+