On Mon, 15 Jan 2018 08:50:17 +0100, Takashi Iwai wrote: > > On Mon, 15 Jan 2018 06:11:56 +0100, > Randy Dunlap wrote: > > > > From: Randy Dunlap <rdunlap@xxxxxxxxxxxxx> > > > > Drivers should not 'select' a subsystem. Instead they should depend > > on it. If the subsystem is disabled, the user probably did that for > > a purpose and one driver shouldn't be changing that. > > > > This also makes all sound/ drivers consistent w.r.t depending on INPUT > > instead of selecting it. > > > > Signed-off-by: Randy Dunlap <rdunlap@xxxxxxxxxxxxx> > > Cc: Jaroslav Kysela <perex@xxxxxxxx> > > Cc: Takashi Iwai <tiwai@xxxxxxxx> > > Cc: alsa-devel@xxxxxxxxxxxxxxxx (moderated for non-subscribers) > > --- > > sound/pci/hda/Kconfig | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > --- lnx-415-rc8.orig/sound/pci/hda/Kconfig > > +++ lnx-415-rc8/sound/pci/hda/Kconfig > > @@ -87,8 +87,8 @@ config SND_HDA_PATCH_LOADER > > > > config SND_HDA_CODEC_REALTEK > > tristate "Build Realtek HD-audio codec support" > > + depends on INPUT > > select SND_HDA_GENERIC > > - select INPUT > > This would break if INPUT=m and SND_HDA_CODEC_REALTEK=y. > Usually, we take a trick like > > depends on INPUT=y || INPUT=SND_HDA_CODEC_REALTEK > > But, looking at the change that introduced the dependency (commit > 33f4acd3b214), the code doesn't necessarily depend on INPUT at all. > The select above was put there just because the random build with > INPUT=m and SND_HDA_CODEC_REALTEK=y would break otherwise. > > The right fix in this case would be to replace IS_ENABLE(INPUT) with > IS_REACHABLE(INPUT) instead. ... that is, a patch like below. Takashi -- 8< -- From: Takashi Iwai <tiwai@xxxxxxx> Subject: [PATCH] ALSA: hda - Use IS_REACHABLE() for dependency on input The commit ffcd28d88e4f ("ALSA: hda - Select INPUT for Realtek HD-audio codec") introduced the reverse-selection of CONFIG_INPUT for Realtek codec in order to avoid the mess with dependency between built-in and modules. Later on, we obtained IS_REACHABLE() macro exactly for this kind of problems, and now we can remove th INPUT selection in Kconfig and put IS_REACHABLE(INPUT) to the appropriate places in the code, so that the driver doesn't need to select other subsystem forcibly. Fixes: ffcd28d88e4f ("ALSA: hda - Select INPUT for Realtek HD-audio codec") Reported-by: Randy Dunlap <rdunlap@xxxxxxxxxxxxx> Signed-off-by: Takashi Iwai <tiwai@xxxxxxx> --- sound/pci/hda/Kconfig | 1 - sound/pci/hda/patch_realtek.c | 5 +++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/sound/pci/hda/Kconfig b/sound/pci/hda/Kconfig index 7f3b5ed81995..f7a492c382d9 100644 --- a/sound/pci/hda/Kconfig +++ b/sound/pci/hda/Kconfig @@ -88,7 +88,6 @@ 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. diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 440972975bd4..9a98c53e0124 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -3810,6 +3810,7 @@ static void alc280_fixup_hp_gpio4(struct hda_codec *codec, } } +#if IS_REACHABLE(INPUT) static void gpio2_mic_hotkey_event(struct hda_codec *codec, struct hda_jack_callback *event) { @@ -3942,6 +3943,10 @@ static void alc233_fixup_lenovo_line2_mic_hotkey(struct hda_codec *codec, spec->kb_dev = NULL; } } +#else /* INPUT */ +#define alc280_fixup_hp_gpio2_mic_hotkey NULL +#define alc233_fixup_lenovo_line2_mic_hotkey NULL +#endif /* INPUT */ static void alc269_fixup_hp_line1_mic1_led(struct hda_codec *codec, const struct hda_fixup *fix, int action) -- 2.15.1 _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel