Message ID | 20090323214822.GA32460@srcf.ucam.org (mailing list archive) |
---|---|
State | Superseded, archived |
Headers | show |
On Mo, 23 Mär 2009, Matthew Garrett wrote: > Interestingly, the recent SRs also appear to implement the 0x124 rfill > method, but at SN07(4) rather than SN07(3). This leaves me pretty happy > that I've got the right idea about how this all works now :) > > diff --git a/drivers/platform/x86/sony-laptop.c b/drivers/platform/x86/sony-laptop.c > index 2d142d3..5d95af8 100644 So does that mean I should test this on on top of your "final" patch? Best wishes Norbert ------------------------------------------------------------------------------- Dr. Norbert Preining <preining@logic.at> Vienna University of Technology Debian Developer <preining@debian.org> Debian TeX Group gpg DSA: 0x09C5B094 fp: 14DF 2E6C 0307 BE6D AD76 A9C0 D2BF 4AA3 09C5 B094 ------------------------------------------------------------------------------- GILDERSOME (adj.) Descriptive of a joke someone tells you which starts well, but which becomes so embellished in the telling that you start to weary of it after scarcely half an hour. --- Douglas Adams, The Meaning of Liff -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Tue, Mar 24, 2009 at 01:02:00AM +0100, Norbert Preining wrote: > On Mo, 23 Mär 2009, Matthew Garrett wrote: > > Interestingly, the recent SRs also appear to implement the 0x124 rfill > > method, but at SN07(4) rather than SN07(3). This leaves me pretty happy > > that I've got the right idea about how this all works now :) > > > > diff --git a/drivers/platform/x86/sony-laptop.c b/drivers/platform/x86/sony-laptop.c > > index 2d142d3..5d95af8 100644 > > So does that mean I should test this on on top of your "final" patch? The Z series doesn't implement the 0x127 method, so it won't make any difference.
diff --git a/drivers/platform/x86/sony-laptop.c b/drivers/platform/x86/sony-laptop.c index 2d142d3..5d95af8 100644 --- a/drivers/platform/x86/sony-laptop.c +++ b/drivers/platform/x86/sony-laptop.c @@ -850,6 +850,25 @@ struct sony_nc_event { u8 event; }; +static struct sony_nc_event sony_127_events[] = { + { 0x81, SONYPI_EVENT_MODEKEY_PRESSED }, + { 0x01, SONYPI_EVENT_ANYBUTTON_RELEASED }, + { 0x82, SONYPI_EVENT_PKEY_P1 }, + { 0x02, SONYPI_EVENT_ANYBUTTON_RELEASED }, + { 0x83, SONYPI_EVENT_PKEY_P2 }, + { 0x03, SONYPI_EVENT_ANYBUTTON_RELEASED }, + { 0x84, SONYPI_EVENT_PKEY_P3 }, + { 0x04, SONYPI_EVENT_ANYBUTTON_RELEASED }, + { 0x85, SONYPI_EVENT_PKEY_P4 }, + { 0x05, SONYPI_EVENT_ANYBUTTON_RELEASED }, + { 0x86, SONYPI_EVENT_PKEY_P5 }, + { 0x06, SONYPI_EVENT_ANYBUTTON_RELEASED }, + { 0x06, SONYPI_EVENT_ANYBUTTON_RELEASED }, + { 0x87, SONYPI_EVENT_SETTINGKEY_PRESSED }, + { 0x07, SONYPI_EVENT_ANYBUTTON_RELEASED }, + { 0, 0 }, +} + static struct sony_nc_event sony_nc_events[] = { { 0x90, SONYPI_EVENT_PKEY_P1 }, { 0x10, SONYPI_EVENT_ANYBUTTON_RELEASED }, @@ -908,6 +927,24 @@ static void sony_acpi_notify(acpi_handle handle, u32 event, void *data) } else if (sony_find_snc_handle(0x124) == ev) { sony_nc_rfkill_update(); return; + } else if (sony_find_snc_handle(0x127) == ev) { + int i; + + if (sony_call_snc_handle(0x127, 0x200, &result)) + dprintk("sony_acpi_notify, unable to decode event 0x%.2x\n", ev); + else + ev = result & 0xFF; + + for (i=0; sony_127_events[i].event; i++) { + if (sony_127_events[i].data == ev) { + ev = sony_127_events[i].event; + break; + } + } + + if (!sony_127_events[i].data) + printk(KERN_INFO DRV_PFX + "Unknown event: %x %x\n", origev, ev); } }