[alsa-devel] [PATCH] ASoC: Intel: hdac_hdmi: add Icelake support

Pierre-Louis Bossart pierre-louis.bossart at linux.intel.com
Wed Nov 14 17:23:08 CET 2018


On 11/14/18 8:53 AM, Takashi Iwai wrote:
> On Mon, 12 Nov 2018 15:00:36 +0100,
> Pierre-Louis Bossart wrote:
>> And btw the big topic is still how we provide distributions the means
>> to handle a 'graceful' fallback from DSP-enabled solutions (SST or
>> SOF) to legacy HDAudio, it's already popped up for cases where we have
>> HDaudio solutions with DMICs.
> Yeah, that's a long-standing problem.  I've experimented some
> scenarios in the past, and the conclusion is that there is no really
> working fallback mechanism in general in Linux driver binding.
> That is, the only reasonable way seems to make a dedicated driver for
> the specific PCI ID (SKL+) doing the probe-and-fallback by itself,
> while excluding these IDs from other existing driver entries.
Yep, agree, the PCI folks I talked to came to the same conclusion. 
Except that we made things more complicated with SOF, so it's really a 
choice between 3 drivers...
>
> I'd love to proceed this but unfortunately I have no machine that can
> run SKL+ SST driver right now.  I have a new CFL devel box, but it has
> no support (PCI ID 8086:a348) as well as no firmware...

Looks like the CFL is already supported in Linux

sound/pci/hda/hda_intel.c:#define IS_CFL(pci) ((pci)->vendor == 0x8086 
&& (pci)->device == 0xa348)

So in theory all we need to add is a new table entry in skl.c, e.g. with 
the following untested code. I'll have to check if this is correct 
offline but it'd allow you to test the probe part.

diff --git a/sound/soc/intel/skylake/skl.c b/sound/soc/intel/skylake/skl.c
index ac0b4ff21acc..375f4b60e515 100644
--- a/sound/soc/intel/skylake/skl.c
+++ b/sound/soc/intel/skylake/skl.c
@@ -1098,6 +1098,9 @@ static const struct pci_device_id skl_ids[] = {
         /* CNL */
         { PCI_DEVICE(0x8086, 0x9dc8),
                 .driver_data = (unsigned 
long)&snd_soc_acpi_intel_cnl_machines},
+       /* CFL */
+       { PCI_DEVICE(0x8086, 0xa348),
+               .driver_data = (unsigned 
long)&snd_soc_acpi_intel_cnl_machines}
         { 0, }
  };





More information about the Alsa-devel mailing list