From: Thadeu Lima de Souza Cascardo <cascardo@holoscopio.com>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: linux-acpi@vger.kernel.org,
Henrique de Moraes Holschuh <ibm-acpi@hmh.eng.br>,
ibm-acpi-devel@lists.sourceforge.net,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH] thinkpad-acpi: setup hotkey polling after changing hotkey_driver_mask
Date: Mon, 8 Feb 2010 22:08:10 -0200 [thread overview]
Message-ID: <20100209000810.GC1420@holoscopio.com> (raw)
In-Reply-To: <20100208155059.eed393a6.akpm@linux-foundation.org>
[-- Attachment #1: Type: text/plain, Size: 3114 bytes --]
On Mon, Feb 08, 2010 at 03:50:59PM -0800, Andrew Morton wrote:
> On Sun, 7 Feb 2010 16:32:07 -0200
> Thadeu Lima de Souza Cascardo <cascardo@holoscopio.com> wrote:
>
> > Brightness notification does not work until the user writes to
> > hotkey_mask attribute. That's because the polling thread will only run
> > if hotkey_user_mask is set and someone is reading the input device or if
> > hotkey_driver_mask is set. In this second case, this condition is not
> > tested after the mask is changed, because the brightness and volume
> > drivers are started after the hotkey drivers.
> >
> > This fix test for the polling condition that ends up starting the
> > polling thread after hotkey_driver_mask is set in brightness and volume
> > init functions.
> >
> > Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@holoscopio.com>
> > ---
> > drivers/platform/x86/thinkpad_acpi.c | 9 +++++++++
> > 1 files changed, 9 insertions(+), 0 deletions(-)
> >
> > diff --git a/drivers/platform/x86/thinkpad_acpi.c b/drivers/platform/x86/thinkpad_acpi.c
> > index e67e4fe..d69749d 100644
> > --- a/drivers/platform/x86/thinkpad_acpi.c
> > +++ b/drivers/platform/x86/thinkpad_acpi.c
> > @@ -6272,6 +6272,11 @@ static int __init brightness_init(struct ibm_init_struct *iibm)
> > tpacpi_hotkey_driver_mask_set(hotkey_driver_mask
> > | TP_ACPI_HKEY_BRGHTUP_MASK
> > | TP_ACPI_HKEY_BRGHTDWN_MASK);;
> > +
> > +#ifdef CONFIG_THINKPAD_ACPI_HOTKEY_POLL
> > + hotkey_poll_setup(true);
> > +#endif
> > +
> > return 0;
> > }
> >
> > @@ -6903,6 +6908,10 @@ static int __init volume_init(struct ibm_init_struct *iibm)
> > | TP_ACPI_HKEY_VOLDWN_MASK
> > | TP_ACPI_HKEY_MUTE_MASK);
> >
> > +#ifdef CONFIG_THINKPAD_ACPI_HOTKEY_POLL
> > + hotkey_poll_setup(true);
> > +#endif
> > +
> > return 0;
> > }
>
> Something like this is needed, methinks:
>
> - Avoid ifdefs
>
> - Make sure that hotkey_mutex is held when calling hotkey_poll_setup:
> use hotkey_poll_setup_safe. Doesn't matter much in __init code.
>
> --- a/drivers/platform/x86/thinkpad_acpi.c~thinkpad-acpi-setup-hotkey-polling-after-changing-hotkey_driver_mask-fix
> +++ a/drivers/platform/x86/thinkpad_acpi.c
> @@ -2597,6 +2597,10 @@ static void hotkey_poll_set_freq(unsigne
>
> #else /* CONFIG_THINKPAD_ACPI_HOTKEY_POLL */
>
> +static void hotkey_poll_setup(bool __unused)
> +{
> +}
> +
> static void hotkey_poll_setup_safe(bool __unused)
> {
> }
> @@ -2694,9 +2698,7 @@ static ssize_t hotkey_mask_store(struct
>
> res = hotkey_user_mask_set(t);
>
> -#ifdef CONFIG_THINKPAD_ACPI_HOTKEY_POLL
> hotkey_poll_setup(true);
> -#endif
>
> mutex_unlock(&hotkey_mutex);
>
> @@ -6273,9 +6275,7 @@ static int __init brightness_init(struct
> | TP_ACPI_HKEY_BRGHTUP_MASK
> | TP_ACPI_HKEY_BRGHTDWN_MASK);;
>
> -#ifdef CONFIG_THINKPAD_ACPI_HOTKEY_POLL
> - hotkey_poll_setup(true);
> -#endif
> + hotkey_poll_setup_safe(true);
>
> return 0;
> }
> _
>
How about the added call to volume_init?
Regards,
Cascardo.
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 198 bytes --]
next prev parent reply other threads:[~2010-02-09 0:13 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-02-07 18:32 [PATCH] thinkpad-acpi: setup hotkey polling after changing hotkey_driver_mask Thadeu Lima de Souza Cascardo
2010-02-08 23:50 ` Andrew Morton
2010-02-09 0:08 ` Thadeu Lima de Souza Cascardo [this message]
2010-02-09 0:21 ` Andrew Morton
2010-02-09 0:31 ` Thadeu Lima de Souza Cascardo
2010-02-09 0:38 ` Henrique de Moraes Holschuh
2010-02-09 0:37 ` Henrique de Moraes Holschuh
2010-02-09 1:37 ` Henrique de Moraes Holschuh
2010-02-10 0:16 ` Thadeu Lima de Souza Cascardo
2010-02-10 1:28 ` Henrique de Moraes Holschuh
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20100209000810.GC1420@holoscopio.com \
--to=cascardo@holoscopio.com \
--cc=akpm@linux-foundation.org \
--cc=ibm-acpi-devel@lists.sourceforge.net \
--cc=ibm-acpi@hmh.eng.br \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.