|
|
@@ -282,6 +282,16 @@ intel_pdi_get_ch_cap(struct sdw_intel *sdw, unsigned int pdi_num, bool pcm)
|
|
|
|
|
|
if (pcm) {
|
|
|
count = intel_readw(shim, SDW_SHIM_PCMSYCHC(link_id, pdi_num));
|
|
|
+
|
|
|
+ /*
|
|
|
+ * WORKAROUND: on all existing Intel controllers, pdi
|
|
|
+ * number 2 reports channel count as 1 even though it
|
|
|
+ * supports 8 channels. Performing hardcoding for pdi
|
|
|
+ * number 2.
|
|
|
+ */
|
|
|
+ if (pdi_num == 2)
|
|
|
+ count = 7;
|
|
|
+
|
|
|
} else {
|
|
|
count = intel_readw(shim, SDW_SHIM_PDMSCAP(link_id));
|
|
|
count = ((count & SDW_SHIM_PDMSCAP_CPSS) >>
|