About Cleanup ASoC

Cezary Rojewski cezary.rojewski at intel.com
Thu May 26 16:17:47 CEST 2022


On 2022-05-26 3:48 PM, Pierre-Louis Bossart wrote:
> On 5/26/22 04:57, Amadeusz Sławiński wrote:
>> Well, this sounds like what we did in avs, namely we split cards
>> separately based on endpoint. Main driver decides what endpoints to
>> expose, based on ACPI detection and ACPI match rules, see [1]. For
>> example in our model it is possible to have 2 separate i2s codecs
>> connected and each having its own card. From avs driver we expose
>> snd_soc_dai_driver with 2 streams (playback and capture), see [2] and
>> then tell machine driver to just connect them to codec [3] - look for
>> "SSP%d Pin", "ssp%d Tx" and "ssp%d Rx". Connections between "ssp%d
>> Tx"/"ssp%d Rx" and userspace FE are handled by topology in our case, but
>> should be easy to expose without it, if you don't use topologies.
> 
> It works for ACPI because the platform driver can check if specific
> _HIDs are present or not, and decide to create different platform
> devices for different cards, with resources split in different
> components. In other words, there is no strict boundary between platform
> and machine driver, the platform has all the information needed.
> 
> I don't know if it's feasible in a Device Tree environment: the DT blob
> exposes the machine device, which uses *references* to resources exposed
> by platform and codec drivers. If there were multiple machine devices
> for different cards, how would that split of resources between different
> components be done?
> 
> The current ACPI approach will also not work if we move to a generic
> machine driver for SoundWire platform, with one or more devices exposed
> in ACPI for the board-level composition. If the machine devices are NOT
> created by the platform driver, I don't see a clear solution to support
> multiple cards.


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?

Regards,
Czarek


More information about the Alsa-devel mailing list