ALSA: hda - Record all detected ADCs in hda_gen_spec

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>
This commit is contained in:
Takashi Iwai 2013-01-17 15:53:29 +01:00
parent 7a71bbf310
commit 0ffd534eb1
2 changed files with 8 additions and 1 deletions

View File

@ -2368,6 +2368,11 @@ static int fill_adc_nids(struct hda_codec *codec)
break; break;
} }
spec->num_adc_nids = nums; 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; return nums;
} }

View File

@ -142,9 +142,11 @@ struct hda_gen_spec {
unsigned int dyn_adc_idx[HDA_MAX_NUM_INPUTS]; unsigned int dyn_adc_idx[HDA_MAX_NUM_INPUTS];
hda_nid_t shared_mic_vref_pin; hda_nid_t shared_mic_vref_pin;
/* DAC list */ /* DAC/ADC lists */
int num_all_dacs; int num_all_dacs;
hda_nid_t all_dacs[16]; hda_nid_t all_dacs[16];
int num_all_adcs;
hda_nid_t all_adcs[AUTO_CFG_MAX_OUTS];
/* path list */ /* path list */
struct snd_array paths; struct snd_array paths;