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 <h...@hmh.eng.br>
> Cc: Ingo Molnar <mi...@elte.hu>
> Cc: Amerigo Wang <amw...@redhat.com>
> Cc: Helight Xu <helight...@gmail.com>
> Cc: Takashi Iwai <ti...@suse.de>
> ---
>  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 <ti...@suse.de>


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
> 

------------------------------------------------------------------------------
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev 
_______________________________________________
ibm-acpi-devel mailing list
ibm-acpi-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ibm-acpi-devel

Reply via email to