At Sat, 26 Dec 2009 22:52:15 -0200, Henrique de Moraes Holschuh wrote: > > Allow the user to choose through Kconfig if the Console Audio Control > interface (aka "volume subdriver") should be available or not. > > This not only saves some memory, but also allows the thinkpad-acpi > driver to be built-in even if ALSA is modular when the console audio > control interface is not wanted. > > This change fixes a build problem that is causing some annoyances, in > a way that doesn't disable the entire driver on kernels without ALSA > support. > > Signed-off-by: Henrique de Moraes Holschuh <hmh@xxxxxxxxxx> > Cc: Ingo Molnar <mingo@xxxxxxx> > Cc: Amerigo Wang <amwang@xxxxxxxxxx> > Cc: Helight Xu <helight.xu@xxxxxxxxx> > Cc: Takashi Iwai <tiwai@xxxxxxx> > --- > drivers/platform/x86/Kconfig | 23 +++++++++++++++++++++++ > drivers/platform/x86/thinkpad_acpi.c | 26 ++++++++++++++++++++++++++ > 2 files changed, 49 insertions(+), 0 deletions(-) > > diff --git a/drivers/platform/x86/Kconfig b/drivers/platform/x86/Kconfig > index ec4faff..2462dc3 100644 > --- a/drivers/platform/x86/Kconfig > +++ b/drivers/platform/x86/Kconfig > @@ -233,6 +233,29 @@ config THINKPAD_ACPI > > If you have an IBM or Lenovo ThinkPad laptop, say Y or M here. > > +config THINKPAD_ACPI_ALSA_SUPPORT > + bool "Console audio control ALSA interface" > + depends on THINKPAD_ACPI > + depends on SND > + depends on SND = y || THINKPAD_ACPI = SND I think the first "depends on SND" is superfluous. But it's no any important issue. Acked-by: Takashi Iwai <tiwai@xxxxxxx> thanks, Takashi > + default y > + ---help--- > + Enables monitoring of the built-in console audio output control > + (headphone and speakers), which is operated by the mute and (in > + some ThinkPad models) volume hotkeys. > + > + If this option is enabled, ThinkPad-ACPI will export an ALSA card > + with a single read-only mixer control, which should be used for > + on-screen-display feedback purposes by the Desktop Environment. > + > + Optionally, the driver will also allow software control (the > + ALSA mixer will be made read-write). Please refer to the driver > + documentation for details. > + > + All IBM models have both volume and mute control. Newer Lenovo > + models only have mute control (the volume hotkeys are just normal > + keys and volume control is done through the main HDA mixer). > + > config THINKPAD_ACPI_DEBUGFACILITIES > bool "Maintainer debug facilities" > depends on THINKPAD_ACPI > diff --git a/drivers/platform/x86/thinkpad_acpi.c b/drivers/platform/x86/thinkpad_acpi.c > index 9b7da9c..e67e4fe 100644 > --- a/drivers/platform/x86/thinkpad_acpi.c > +++ b/drivers/platform/x86/thinkpad_acpi.c > @@ -6384,6 +6384,8 @@ static struct ibm_struct brightness_driver_data = { > * and we leave them unchanged. > */ > > +#ifdef CONFIG_THINKPAD_ACPI_ALSA_SUPPORT > + > #define TPACPI_ALSA_DRVNAME "ThinkPad EC" > #define TPACPI_ALSA_SHRTNAME "ThinkPad Console Audio Control" > #define TPACPI_ALSA_MIXERNAME TPACPI_ALSA_SHRTNAME > @@ -7021,6 +7023,28 @@ static struct ibm_struct volume_driver_data = { > .shutdown = volume_shutdown, > }; > > +#else /* !CONFIG_THINKPAD_ACPI_ALSA_SUPPORT */ > + > +#define alsa_card NULL > + > +static void inline volume_alsa_notify_change(void) > +{ > +} > + > +static int __init volume_init(struct ibm_init_struct *iibm) > +{ > + printk(TPACPI_INFO > + "volume: disabled as there is no ALSA support in this kernel\n"); > + > + return 1; > +} > + > +static struct ibm_struct volume_driver_data = { > + .name = "volume", > +}; > + > +#endif /* CONFIG_THINKPAD_ACPI_ALSA_SUPPORT */ > + > /************************************************************************* > * Fan subdriver > */ > @@ -8743,6 +8767,7 @@ MODULE_PARM_DESC(hotkey_report_mode, > "used for backwards compatibility with userspace, " > "see documentation"); > > +#ifdef CONFIG_THINKPAD_ACPI_ALSA_SUPPORT > module_param_named(volume_mode, volume_mode, uint, 0444); > MODULE_PARM_DESC(volume_mode, > "Selects volume control strategy: " > @@ -8765,6 +8790,7 @@ module_param_named(id, alsa_id, charp, 0444); > MODULE_PARM_DESC(id, "ALSA id for the ACPI EC Mixer"); > module_param_named(enable, alsa_enable, bool, 0444); > MODULE_PARM_DESC(enable, "Enable the ALSA interface for the ACPI EC Mixer"); > +#endif /* CONFIG_THINKPAD_ACPI_ALSA_SUPPORT */ > > #define TPACPI_PARAM(feature) \ > module_param_call(feature, set_ibm_param, NULL, NULL, 0); \ > -- > 1.6.5.7 > -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html