if (!knew)
return NULL;
*knew = *temp;
- knew->name = kstrdup(name, GFP_KERNEL);
+ if (name)
+ knew->name = kstrdup(name, GFP_KERNEL);
+ else if (knew->name)
+ knew->name = kstrdup(knew->name, GFP_KERNEL);
if (!knew->name)
return NULL;
return knew;
{
struct alc_spec *spec = codec->spec;
- if (!alc_kcontrol_new(spec, "Auto-Mute Mode", &alc_automute_mode_enum))
+ if (!alc_kcontrol_new(spec, NULL, &alc_automute_mode_enum))
return -ENOMEM;
return 0;
}
static const struct snd_kcontrol_new alc_inv_dmic_sw = {
.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
+ .name = "Inverted Internal Mic Capture Switch",
.info = snd_ctl_boolean_mono_info,
.get = alc_inv_dmic_sw_get,
.put = alc_inv_dmic_sw_put,
{
struct alc_spec *spec = codec->spec;
- if (!alc_kcontrol_new(spec, "Inverted Internal Mic Capture Switch",
- &alc_inv_dmic_sw))
+ if (!alc_kcontrol_new(spec, NULL, &alc_inv_dmic_sw))
return -ENOMEM;
spec->inv_dmic_fixup = 1;
spec->inv_dmic_muted = 0;
nums = spec->num_adc_nids;
if (!spec->auto_mic && imux->num_items > 1) {
- knew = alc_kcontrol_new(spec, "Input Source", &cap_src_temp);
+ knew = alc_kcontrol_new(spec, NULL, &cap_src_temp);
if (!knew)
return -ENOMEM;
knew->count = nums;
}
if (vol) {
- knew = alc_kcontrol_new(spec, "Capture Volume",
- &cap_vol_temp);
+ knew = alc_kcontrol_new(spec, NULL, &cap_vol_temp);
if (!knew)
return -ENOMEM;
knew->index = n;
knew->subdevice = HDA_SUBDEV_AMP_FLAG;
}
if (sw) {
- knew = alc_kcontrol_new(spec, "Capture Switch",
- &cap_sw_temp);
+ knew = alc_kcontrol_new(spec, NULL, &cap_sw_temp);
if (!knew)
return -ENOMEM;
knew->index = n;
struct alc_spec *spec = codec->spec;
if (spec->multi_ios > 0) {
- if (!alc_kcontrol_new(spec, "Channel Mode",
- &alc_auto_channel_mode_enum))
+ if (!alc_kcontrol_new(spec, NULL, &alc_auto_channel_mode_enum))
return -ENOMEM;
}
return 0;