[alsa-devel] ALSA: hda - Use generic parser for Cirrus codec driver

Dan Carpenter dan.carpenter at oracle.com
Fri Jul 24 18:12:28 CEST 2015


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.

  1005  
  1006          cs_automute(codec);
  1007  }

regards,
dan carpenter


More information about the Alsa-devel mailing list