ALSA: hda - Record all detected ADCs in hda_gen_spec
authorTakashi Iwai <tiwai@suse.de>
Thu, 17 Jan 2013 14:53:29 +0000 (15:53 +0100)
committerTakashi Iwai <tiwai@suse.de>
Thu, 17 Jan 2013 14:53:29 +0000 (15:53 +0100)
Since the generic parser reduces the ADC list, copy the list of the
all detected ADCs and keep it.

This list can be later referred by the codec driver for finer power
controls.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/pci/hda/hda_generic.c
sound/pci/hda/hda_generic.h

index 9c06749738b192381a698a4a00c3b531634ee5fb..fc3f24113ce30089708f0557a4812370a3aad09c 100644 (file)
@@ -2368,6 +2368,11 @@ static int fill_adc_nids(struct hda_codec *codec)
                        break;
        }
        spec->num_adc_nids = nums;
+
+       /* copy the detected ADCs to all_adcs[] */
+       spec->num_all_adcs = nums;
+       memcpy(spec->all_adcs, spec->adc_nids, nums * sizeof(hda_nid_t));
+
        return nums;
 }
 
index 43a8482ed2b3af3a6ab11653d81da0d9306986ad..a0486b1b4da49707815cbcdc20bfef2c778c0e6a 100644 (file)
@@ -142,9 +142,11 @@ struct hda_gen_spec {
        unsigned int dyn_adc_idx[HDA_MAX_NUM_INPUTS];
        hda_nid_t shared_mic_vref_pin;
 
-       /* DAC list */
+       /* DAC/ADC lists */
        int num_all_dacs;
        hda_nid_t all_dacs[16];
+       int num_all_adcs;
+       hda_nid_t all_adcs[AUTO_CFG_MAX_OUTS];
 
        /* path list */
        struct snd_array paths;