On Tue, 07 Aug 2018 16:56:05 +0200, Yong Zhi wrote: > > Playback of 44.1Khz contents with HDMI plugged returns > "Invalid pipe config". Why? Is it a limitation of i915 graphics side? If it's a generic issue, we'd need to fix also in the legacy HDMI driver, too. (snip) .... > + > + sad_rates = sad_sample_rates_lpcm(sad); > + /* Filter out 44.1, 88.2 and 176.4Khz */ > + for (j = 0; j < 7; j += 2) > + if (sad_rates & BIT(j)) > + rates |= cea_sampling_freqs[j]; > + > + snd_pcm_hw_constraint_mask64(runtime, > + SNDRV_PCM_HW_PARAM_RATE, > + rates); The whole changes are too complex. You don't have to reduce the list dynamically, but just need to tell the all possible rates with a static array. Or, even simpler, just filter the rates bits in hdac_hdmi_create_dais() from the beginning like below. thanks, Takashi --- a/sound/soc/codecs/hdac_hdmi.c +++ b/sound/soc/codecs/hdac_hdmi.c @@ -1410,6 +1410,12 @@ static int hdac_hdmi_create_dais(struct hdac_device *hdev, if (ret) return ret; + /* Filter out 44.1, 88.2 and 176.4Khz */ + rates &= ~(SNDRV_PCM_RATE_44100 | SNDRV_PCM_RATE_88200 | + SNDRV_PCM_RATE_176400); + if (!rates) + return -EINVAL; + sprintf(dai_name, "intel-hdmi-hifi%d", i+1); hdmi_dais[i].name = devm_kstrdup(&hdev->dev, dai_name, GFP_KERNEL); _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel