Re: [RFC] Reporting "orientation changed" event

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

 



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


[Index of Archives]     [Linux Kernel Development]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux