···13641364 struct nid_path *path;13651365 hda_nid_t pin = pins[i];1366136613671367- path = snd_hda_get_path_from_idx(codec, path_idx[i]);13681368- if (path) {13691369- badness += assign_out_path_ctls(codec, path);13701370- continue;13671367+ if (!spec->obey_preferred_dacs) {13681368+ path = snd_hda_get_path_from_idx(codec, path_idx[i]);13691369+ if (path) {13701370+ badness += assign_out_path_ctls(codec, path);13711371+ continue;13721372+ }13711373 }1372137413731375 dacs[i] = get_preferred_dac(codec, pin);13741376 if (dacs[i]) {13751377 if (is_dac_already_used(codec, dacs[i]))13761378 badness += bad->shared_primary;13791379+ } else if (spec->obey_preferred_dacs) {13801380+ badness += BAD_NO_PRIMARY_DAC;13771381 }1378138213791383 if (!dacs[i])
+1
sound/pci/hda/hda_generic.h
···237237 unsigned int power_down_unused:1; /* power down unused widgets */238238 unsigned int dac_min_mute:1; /* minimal = mute for DACs */239239 unsigned int suppress_vmaster:1; /* don't create vmaster kctls */240240+ unsigned int obey_preferred_dacs:1; /* obey preferred_dacs assignment */240241241242 /* other internal flags */242243 unsigned int no_analog:1; /* digital I/O only */