On Mon, 9 May 2011 17:40:06 +0100, Matthew Garrett <mjg59@xxxxxxxxxxxxx> wrote : > On Mon, May 09, 2011 at 08:59:01AM -0700, Andy Ross wrote: > > On 05/09/2011 08:47 AM, Matthew Garrett wrote: > > > Yes, so the accelerometer driver should (in-kernel) know that a coarse > > > orientation event has occured and then send an appropriate uevent to > > > userspace indiciating that it has new data. > > > > OK, so substituting udev for acpid, but otherwise leaving the > > input-polldev device alone. That certainly sounds nice to me, though > > I'm not sure where the "dreadful / don't do that" advice is directed > > as the handling in userspace will be virtual identical (moving the > > dbus-send from the acpid event file into a udev rule). > > It shouldn't even be a dbus send - something in userspace should just be > listening for event notifications on the accelerometer. Use udev > directly. > > > > I'm going to NAK anything that reports "Coarse orientation change" > > > to userspace without providing any context. > > > > Just to be clear: there's no kernel code to NAK here. The acpid hook > > is raw, and in userspace. It's not clean, but it's also a single-device > > fixup: seems to me to be pretty much exactly what apcid is for, no? > > acpid is for dealing with cases where the kernel doesn't provide > functionality that the kernel should provide. Arbitrary APCI events > shouldn't be being delivered to userspace - they should be handled > in-kernel and delivered through a meaningful mechanism in order to avoid > cases where userspace needs to know about a platform implementation. In > this case the right way for the event to hit userspace is as a generic > message from the accelerometer, not as a device-specific ACPI event > through a deprecated interface. > Implementation RFC : From: Anisse Astier <anisse@xxxxxxxxx> Date: Mon, 9 May 2011 19:51:40 +0200 Subject: [PATCH RFC] asus-laptop: pega_accel - Report accelerometer orientation change through udev Signed-off-by: Anisse Astier <anisse@xxxxxxxxx> --- drivers/platform/x86/asus-laptop.c | 7 +++++++ 1 files changed, 7 insertions(+), 0 deletions(-) diff --git a/drivers/platform/x86/asus-laptop.c b/drivers/platform/x86/asus-laptop.c index 2105b42..e23d555 100644 --- a/drivers/platform/x86/asus-laptop.c +++ b/drivers/platform/x86/asus-laptop.c @@ -1337,6 +1337,13 @@ static void asus_acpi_notify(struct acpi_device *device, u32 event) } return ; } + + /* Accelerometer "coarse orientation change" event */ + if (asus->pega_accel && event == 0xEA) { + kobject_uevent(&asus->pega_accel->dev.kobj, KOBJ_CHANGE); + return ; + } + asus_input_notify(asus, event); } -- 1.7.4.3 -- To unsubscribe from this list: send the line "unsubscribe platform-driver-x86" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html