19 Dec
2013
19 Dec
'13
10:54 a.m.
When a boost control influences on multiple input paths, we shouldn't
pick up the name string specific to one input but rather choose a more generic name. A problem seen often is that a single mic boost controls both internal and external mics although the driver picks up the very first name randomly like "Internal Mic Boost". This should have been "Mic Boost", instead.
This patch tries to correct that behavior: when a boost control is available, check whether it conflicts with other inputs. If it does, use a common string ("Mic", "Line") as long as possible, or take a generic name "Input".
/* create a boost control */
if (!conflict) {
pfx = spec->input_labels[idx];
idx = spec->input_label_idxs[idx];
} else {
pfx = input_type_labels[type];
idx = input_type_idxs[type]++;
}
snprintf(boost_label, sizeof(boost_label),
"%s Boost Volume", spec->input_labels[idx]);
if (!add_control(spec, HDA_CTL_WIDGET_VOL, boost_label,
spec->input_label_idxs[idx], val))
"%s Boost Volume", pfx);
should "Boost Volume" change to "Boost Capture Volume" if loopback path not exist ?
if (spec->mixer_nid) "Boost Volume"