Re: [PATCH 5/6] thinkpad-acpi: add internal hotkey event API

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,

On Sun, 2009-09-20 at 14:09 -0300, Henrique de Moraes Holschuh wrote:
> Add an internal API to the driver, to allow subdrivers to request and
> receive HKEY 0x1000 events.  This API will be used by the backlight
> (brightness up/down) and upcoming ALSA mixer (volume up/down/mute)
> subdrivers.
> 
> Signed-off-by: Henrique de Moraes Holschuh <hmh@xxxxxxxxxx>
> ---
>  drivers/platform/x86/thinkpad_acpi.c |   48 ++++++++++++++++++++++++++++++++++
>  1 files changed, 48 insertions(+), 0 deletions(-)
> 
> diff --git a/drivers/platform/x86/thinkpad_acpi.c b/drivers/platform/x86/thinkpad_acpi.c
> index 50aa4c1..ffd584c 100644
> --- a/drivers/platform/x86/thinkpad_acpi.c
> +++ b/drivers/platform/x86/thinkpad_acpi.c
> @@ -2014,6 +2014,9 @@ static u16 *hotkey_keycode_map;
>  
>  static struct attribute_set *hotkey_dev_attributes;
>  
> +static void tpacpi_driver_event(const unsigned int hkey_event);
> +static void hotkey_driver_event(const unsigned int scancode);
> +
>  /* HKEY.MHKG() return bits */
>  #define TP_HOTKEY_TABLET_MASK (1 << 3)
>  
> @@ -2168,6 +2171,35 @@ static int hotkey_user_mask_set(const u32 mask)
>  	return rc;
>  }
>  
> +/*
> + * Sets the driver hotkey mask.
> + *
> + * Can be called even if the hotkey subdriver is inactive
> + */
> +static int tpacpi_hotkey_driver_mask_set(const u32 mask)


  CC [M]  drivers/platform/x86/thinkpad_acpi.o
drivers/platform/x86/thinkpad_acpi.c:2225: warning: ‘tpacpi_hotkey_driver_mask_set’ defined but not used

Thanks,
--
JSR

> +{
> +	int rc;
> +
> +	/* Do the right thing if hotkey_init has not been called yet */
> +	if (!tp_features.hotkey) {
> +		hotkey_driver_mask = mask;
> +		return 0;
> +	}
> +
> +	mutex_lock(&hotkey_mutex);
> +
> +	HOTKEY_CONFIG_CRITICAL_START
> +	hotkey_driver_mask = mask;
> +	hotkey_source_mask |= (mask & ~hotkey_all_mask);
> +	HOTKEY_CONFIG_CRITICAL_END
> +
> +	rc = hotkey_mask_set((hotkey_acpi_mask | hotkey_driver_mask) &
> +							~hotkey_source_mask);
> +	mutex_unlock(&hotkey_mutex);
> +
> +	return rc;
> +}
> +
>  static int hotkey_status_get(int *status)
>  {
>  	if (!acpi_evalf(hkey_handle, status, "DHKC", "d"))
> @@ -2227,6 +2259,7 @@ static void tpacpi_input_send_key(const unsigned int scancode)
>  /* Do NOT call without validating scancode first */
>  static void tpacpi_input_send_key_masked(const unsigned int scancode)
>  {
> +	hotkey_driver_event(scancode);
>  	if (hotkey_user_mask & (1 << scancode))
>  		tpacpi_input_send_key(scancode);
>  }
> @@ -7625,6 +7658,21 @@ static struct ibm_struct fan_driver_data = {
>   ****************************************************************************
>   ****************************************************************************/
>  
> +/*
> + * HKEY event callout for other subdrivers go here
> + * (yes, it is ugly, but it is quick, safe, and gets the job done
> + */
> +static void tpacpi_driver_event(const unsigned int hkey_event)
> +{
> +}
> +
> +
> +
> +static void hotkey_driver_event(const unsigned int scancode)
> +{
> +	tpacpi_driver_event(0x1001 + scancode);
> +}
> +
>  /* sysfs name ---------------------------------------------------------- */
>  static ssize_t thinkpad_acpi_pdev_name_show(struct device *dev,
>  			   struct device_attribute *attr,

--
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

[Index of Archives]     [Linux IBM ACPI]     [Linux Power Management]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux