public inbox for linux-acpi@vger.kernel.org
 help / color / mirror / Atom feed
From: Henrique de Moraes Holschuh <hmh@hmh.eng.br>
To: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: linux-acpi@vger.kernel.org,
	Johannes Berg <johannes@sipsolutions.net>,
	ibm-acpi-devel@lists.sourceforge.net,
	Alan Jenkins <alan-jenkins@tuffmail.co.uk>,
	Len Brown <lenb@kernel.org>
Subject: Re: [ibm-acpi-devel] [PATCH 10/10] thinkpad-acpi: sync input device EV_SW state directly
Date: Wed, 9 Dec 2009 14:30:41 -0200	[thread overview]
Message-ID: <20091209163041.GA29575@khazad-dum.debian.net> (raw)
In-Reply-To: <200912081745.14725.dmitry.torokhov@gmail.com>

On Tue, 08 Dec 2009, Dmitry Torokhov wrote:
> On Tuesday 08 December 2009 05:36:30 pm Henrique de Moraes Holschuh wrote:
> > Before we register the input device, sync the input layer EV_SW state
> > directly by setting the bitmaps, to avoid issuing a gratuitous event
> > for the initial state of these switches.
> > 
> > I will propose a clean input layer API for this and change the driver
> > to use it later, but I'd rather get the driver fix in mainline ASAP.
> > 
> 
> Just do input_report_switch() before registering the device, it will do
> the right thing.

At device startup, the input core doesn't know the initial state of the
switch. It assumes the switch is "off" (all bits clear in the sw bitmap).

input_report_switch() will call input_event(), which will have a 50% chance
of doing the wrong thing at startup (i.e. issue an event) since it will look
at the state of the sw bitmap to decide whether to issue an event or not.

> Input core guarantees (and will continue doing so) that it is safe to
> pass events to the device as soon as it was allocated with
> input_allocate_device().

Well, there really isn't a transparent way to do this...

Either you change the core to use the first event reported to init the
switch and never issue that first event outside the core (we will also have
to make sure all drivers know they have to issue this initial event), or you
add an API for the drivers to directly inform the core of the initial state
of the switches (I have this already written) and check all drivers that
export EV_SW events to make sure they use the API (I haven't done this yet).

-- 
  "One disk to rule them all, One disk to find them. One disk to bring
  them all and in the darkness grind them. In the Land of Redmond
  where the shadows lie." -- The Silicon Valley Tarot
  Henrique Holschuh

  reply	other threads:[~2009-12-09 16:30 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-12-09  1:36 [GIT PATCH v2] thinkpad-acpi first set of changes for 2.6.33 (v2) Henrique de Moraes Holschuh
2009-12-09  1:36 ` [PATCH 01/10] thinkpad-acpi: fix default brightness_mode for R50e/R51 Henrique de Moraes Holschuh
2009-12-09  1:36 ` [PATCH 02/10] thinkpad-acpi: preserve rfkill state across suspend/resume Henrique de Moraes Holschuh
2009-12-09  1:36 ` [PATCH 03/10] thinkpad-acpi: fix some version quirks Henrique de Moraes Holschuh
2009-12-09  1:36 ` [PATCH 04/10] thinkpad-acpi: issue backlight class events Henrique de Moraes Holschuh
2009-12-09  1:36 ` [PATCH 05/10] thinkpad-acpi: silence bogus complain during rmmod Henrique de Moraes Holschuh
2009-12-09  1:36 ` [PATCH 06/10] thinkpad-acpi: adopt input device Henrique de Moraes Holschuh
2009-12-09  1:36 ` [PATCH 07/10] thinkpad-acpi: expose module parameters Henrique de Moraes Holschuh
2009-12-09  1:36 ` [PATCH 08/10] thinkpad-acpi: log temperatures on termal alarm (v2) Henrique de Moraes Holschuh
2009-12-09 10:46   ` Pavel Machek
2009-12-09  1:36 ` [PATCH 09/10] thinkpad-acpi: use input_set_capability Henrique de Moraes Holschuh
2009-12-09  1:36 ` [PATCH 10/10] thinkpad-acpi: sync input device EV_SW state directly Henrique de Moraes Holschuh
     [not found]   ` <1260322590-5571-11-git-send-email-hmh-N3TV7GIv+o9fyO9Q7EP/yw@public.gmane.org>
2009-12-09  1:45     ` Dmitry Torokhov
2009-12-09 16:30       ` Henrique de Moraes Holschuh [this message]
     [not found]         ` <20091209163041.GA29575-ZGHd14iZgfaRjzvQDGKj+xxZW9W5cXbT@public.gmane.org>
2009-12-09 17:21           ` Dmitry Torokhov
2009-12-09 20:32             ` [ibm-acpi-devel] " Henrique de Moraes Holschuh
2009-12-09 20:59               ` Dmitry Torokhov
2009-12-10 13:19                 ` Henrique de Moraes Holschuh
2009-12-10 18:59                   ` Dmitry Torokhov
     [not found]                     ` <20091210185922.GD23717-WlK9ik9hQGAhIp7JRqBPierSzoNAToWh@public.gmane.org>
2009-12-11  0:46                       ` Henrique de Moraes Holschuh
     [not found]                         ` <20091211004602.GB24245-ZGHd14iZgfaRjzvQDGKj+xxZW9W5cXbT@public.gmane.org>
2009-12-11  7:54                           ` Dmitry Torokhov
2009-12-11 15:02                             ` [ibm-acpi-devel] " Henrique de Moraes Holschuh
2009-12-09 20:47 ` [GIT PATCH v2] thinkpad-acpi first set of changes for 2.6.33 (v2) Len Brown
2009-12-09 22:32   ` 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=20091209163041.GA29575@khazad-dum.debian.net \
    --to=hmh@hmh.eng.br \
    --cc=alan-jenkins@tuffmail.co.uk \
    --cc=dmitry.torokhov@gmail.com \
    --cc=ibm-acpi-devel@lists.sourceforge.net \
    --cc=johannes@sipsolutions.net \
    --cc=lenb@kernel.org \
    --cc=linux-acpi@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox