Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ffcd28d8 authored by Takashi Iwai's avatar Takashi Iwai
Browse files

ALSA: hda - Select INPUT for Realtek HD-audio codec



The commit commit [33f4acd3: ALSA: hda - Enable mic mute hotkey
and LEDs for an HP machine] introduced a quirk for a HP machine
involving with the input event handling.  Although the relevant code
is protected via IS_ENABLED(CONFIG_INPUT), this doesn't suffice when
the audio driver is built in while the input is module.

As an easy workaround, this patch forcibly selects CONFIG_INPUT in
Kconfig.  This shouldn't be a practical problem since CONFIG_INPUT is
almost mandatory for all systems.  Also, this allows to remove the
ugly ifdefs in the code.

Fixes: 33f4acd3 ('ALSA: hda - Enable mic mute hotkey and LEDs for an HP machine')
Acked-by: default avatarDavid Henningsson <david.henningsson@canonical.com>
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent fd4e8dde
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -107,6 +107,7 @@ config SND_HDA_PATCH_LOADER
config SND_HDA_CODEC_REALTEK
	tristate "Build Realtek HD-audio codec support"
	select SND_HDA_GENERIC
	select INPUT
	help
	  Say Y or M here to include Realtek HD-audio codec support in
	  snd-hda-intel driver, such as ALC880.
+0 −6
Original line number Diff line number Diff line
@@ -121,9 +121,7 @@ struct alc_spec {
	hda_nid_t pll_nid;
	unsigned int pll_coef_idx, pll_coef_bit;
	unsigned int coef0;
#if IS_ENABLED(CONFIG_INPUT)
	struct input_dev *kb_dev;
#endif
};

/*
@@ -3476,7 +3474,6 @@ static void alc280_fixup_hp_gpio4(struct hda_codec *codec,
	}
}

#if IS_ENABLED(CONFIG_INPUT)
static void gpio2_mic_hotkey_event(struct hda_codec *codec,
				   struct hda_jack_callback *event)
{
@@ -3489,12 +3486,10 @@ static void gpio2_mic_hotkey_event(struct hda_codec *codec,
	input_report_key(spec->kb_dev, KEY_MICMUTE, 0);
	input_sync(spec->kb_dev);
}
#endif

static void alc280_fixup_hp_gpio2_mic_hotkey(struct hda_codec *codec,
					     const struct hda_fixup *fix, int action)
{
#if IS_ENABLED(CONFIG_INPUT)
	/* GPIO1 = set according to SKU external amp
	   GPIO2 = mic mute hotkey
	   GPIO3 = mute LED
@@ -3550,7 +3545,6 @@ static void alc280_fixup_hp_gpio2_mic_hotkey(struct hda_codec *codec,
		input_unregister_device(spec->kb_dev);
		spec->kb_dev = NULL;
	}
#endif
}

static void alc269_fixup_hp_line1_mic1_led(struct hda_codec *codec,