Merge branch 'asoc-5.3' into asoc-linus
[sfrench/cifs-2.6.git] / sound / soc / sof / intel / hda.c
index 82f61c4e74bd95e0909778962519ad9accc37ee4..ae50839fddfea0edf6d7a87730ce7aca91c2bb95 100644 (file)
@@ -34,6 +34,9 @@
 /* platform specific devices */
 #include "shim.h"
 
+#define IS_CFL(pci) ((pci)->vendor == 0x8086 && (pci)->device == 0xa348)
+#define IS_CNL(pci) ((pci)->vendor == 0x8086 && (pci)->device == 0x9dc8)
+
 /*
  * Debug
  */
@@ -245,6 +248,11 @@ static int hda_init(struct snd_sof_dev *sdev)
        ext_ops = snd_soc_hdac_hda_get_ops();
 #endif
        sof_hda_bus_init(bus, &pci->dev, ext_ops);
+
+       /* Workaround for a communication error on CFL (bko#199007) and CNL */
+       if (IS_CFL(pci) || IS_CNL(pci))
+               bus->polling_mode = 1;
+
        bus->use_posbuf = 1;
        bus->bdl_pos_adj = 0;