On 9/10/19 1:29 PM, Kai Vehmanen wrote:
Fix the logic in generic_hdmi_build_controls() to identify unused hda_pcm entries by searching for SNDRV_PCM_INVALID_DEVICE. This matches with logic in snd_hda_codec_build_pcms().
Signed-off-by: Kai Vehmanen kai.vehmanen@linux.intel.com
sound/pci/hda/patch_hdmi.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c index 59aaee4a40fd..c52726e19f44 100644 --- a/sound/pci/hda/patch_hdmi.c +++ b/sound/pci/hda/patch_hdmi.c @@ -2183,11 +2183,13 @@ static int generic_hdmi_build_jack(struct hda_codec *codec, int pcm_idx) static int generic_hdmi_build_controls(struct hda_codec *codec) { struct hdmi_spec *spec = codec->spec;
struct hda_pcm *hda_pcm; int dev, err; int pin_idx, pcm_idx;
for (pcm_idx = 0; pcm_idx < spec->pcm_used; pcm_idx++) {
if (!get_pcm_rec(spec, pcm_idx)->pcm) {
hda_pcm = get_pcm_rec(spec, pcm_idx);
if (hda_pcm->device == SNDRV_PCM_INVALID_DEVICE) {
I find it hard to follow the logic. Before this patch only device 0 would be considered NO_PCM Not it's -1, so wondering if this is a fix unrelated to this series or if there is a dependency on follow-up patches?
#define SNDRV_PCM_INVALID_DEVICE (-1)
/* no PCM: mark this for skipping permanently */ set_bit(pcm_idx, &spec->pcm_bitmap); continue;