[alsa-devel] ALSA: hda - Use generic parser for Cirrus codec driver
Takashi Iwai
tiwai at suse.de
Fri Jul 24 18:18:32 CEST 2015
On Fri, 24 Jul 2015 18:12:28 +0200,
Dan Carpenter wrote:
>
> Hello Takashi Iwai,
>
> The patch 1077a024812d: "ALSA: hda - Use generic parser for Cirrus
> codec driver" from Dec 19, 2012, leads to the following static
> checker warning:
>
> sound/pci/hda/patch_cirrus.c:1004 cs4210_spdif_automute()
> warn: we tested 'spdif_present' before and it was 'true'
>
> sound/pci/hda/patch_cirrus.c
> 984 static void cs4210_spdif_automute(struct hda_codec *codec,
> 985 struct hda_jack_callback *tbl)
> 986 {
> 987 struct cs_spec *spec = codec->spec;
> 988 bool spdif_present = false;
> 989 hda_nid_t spdif_pin = spec->gen.autocfg.dig_out_pins[0];
> 990
> 991 /* detect on spdif is specific to CS4210 */
> 992 if (!spec->spdif_detect ||
> 993 spec->vendor_nid != CS4210_VENDOR_NID)
> 994 return;
> 995
> 996 spdif_present = snd_hda_jack_detect(codec, spdif_pin);
> 997 if (spdif_present == spec->spdif_present)
> 998 return;
> 999
> 1000 spec->spdif_present = spdif_present;
> 1001 /* SPDIF TX on/off */
> 1002 if (spdif_present)
> ^^^^^^^^^^^^^
> 1003 snd_hda_set_pin_ctl(codec, spdif_pin,
> 1004 spdif_present ? PIN_OUT : 0);
> ^^^^^^^^^^^^^
>
> I'm not positive but I think this is buggy. We should remove the if
> statement.
Yes, looks so. Could you submit a fix patch?
Thanks!
Takashi
More information about the Alsa-devel
mailing list