sony-laptop: ignore hard switch rfkill events (SPIC)
authorMattia Dongili <malattia@linux.it>
Sat, 19 Feb 2011 02:52:27 +0000 (11:52 +0900)
committerMatthew Garrett <mjg@redhat.com>
Mon, 28 Mar 2011 10:05:24 +0000 (06:05 -0400)
There is not much use for these events in userspace and handling the
events themselves seems to get in the way of the actual activation of
the rf devices. The SNC device doesn't expose them already.
https://bugzilla.kernel.org/show_bug.cgi?id=15303

Signed-off-by: Mattia Dongili <malattia@linux.it>
Signed-off-by: Matthew Garrett <mjg@redhat.com>
drivers/platform/x86/sony-laptop.c
include/linux/sonypi.h

index 5cd39af376d95a5d5ca1b9622db13e4cdf4852a8..5fa93cb6f337213ce3d5ebf51fdc9fdfb9de0d8f 100644 (file)
@@ -1592,8 +1592,8 @@ static struct sonypi_event sonypi_blueev[] = {
 
 /* The set of possible wireless events */
 static struct sonypi_event sonypi_wlessev[] = {
-       { 0x59, SONYPI_EVENT_WIRELESS_ON },
-       { 0x5a, SONYPI_EVENT_WIRELESS_OFF },
+       { 0x59, SONYPI_EVENT_IGNORE },
+       { 0x5a, SONYPI_EVENT_IGNORE },
        { 0, 0 }
 };
 
@@ -2733,6 +2733,9 @@ static irqreturn_t sony_pic_irq(int irq, void *dev_id)
                        if (ev == dev->event_types[i].events[j].data) {
                                device_event =
                                        dev->event_types[i].events[j].event;
+                               /* some events may require ignoring */
+                               if (!device_event)
+                                       return IRQ_HANDLED;
                                goto found;
                        }
                }
@@ -2752,7 +2755,6 @@ found:
        sony_laptop_report_input_event(device_event);
        acpi_bus_generate_proc_event(dev->acpi_dev, 1, device_event);
        sonypi_compat_report_event(device_event);
-
        return IRQ_HANDLED;
 }
 
index 0e6dc3891942e22b52457850fa246bf443749798..c0f87da78f8a44b788fd32ebcabf94d4b72e2962 100644 (file)
@@ -40,6 +40,7 @@
 
 /* events the user application reading /dev/sonypi can use */
 
+#define SONYPI_EVENT_IGNORE                     0
 #define SONYPI_EVENT_JOGDIAL_DOWN               1
 #define SONYPI_EVENT_JOGDIAL_UP                         2
 #define SONYPI_EVENT_JOGDIAL_DOWN_PRESSED       3