Message ID | 20090331214749.GD29489@srcf.ucam.org (mailing list archive) |
---|---|
State | RFC, archived |
Headers | show |
Hi there, On Wed, Apr 1, 2009 at 2:47 PM, Matthew Garrett <mjg59@srcf.ucam.org> wrote: > Despite toshiba_acpi exporting TOS1900 as a modalias, it doesn't appear to > support these machines. They have their HCI method implemented in a > different but compatible manner and so need a different method address. Indeed, my Satellite X205-9800 uses that method, however, it only provides HCI call 0x001E (Hotkey Events) and no System Event FIFO (0x0016), instead, hotkeys are entered on a variable called TOHK (TOshiba HotKeys?). Located in my model in PCI0.LPCB.EC0.TOHK and it appears that it can be _polled_ tru' method INFO (TOSH_INTERFACE_2 ".INFO"), perhaps a small change in the polling to reflect to that method for TOS1900 devices would be necessary. On my model the complete call would be: \\_SB.VALZ.SPFC \\_SB.VALZ.INFO Is it different from \\_SB_.VALZ.SPFC or it simply doesn't matter? Saludos Azael
On Wed, Apr 01, 2009 at 03:06:12PM +1700, Azael Avalos wrote: > Indeed, my Satellite X205-9800 uses that method, however, it only provides > HCI call 0x001E (Hotkey Events) and no System Event FIFO (0x0016), > instead, hotkeys are entered on a variable called TOHK (TOshiba HotKeys?). > Located in my model in > > PCI0.LPCB.EC0.TOHK Ok, interesting. Looking at the DSDTs I have here, TOHK isn't always present on TOS1900 devices. However: > and it appears that it can be _polled_ tru' method INFO > (TOSH_INTERFACE_2 ".INFO"), > perhaps a small change in the polling to reflect to that method for > TOS1900 devices would be necessary. The INFO method is, so this looks like a good call. > > On my model the complete call would be: > > \\_SB.VALZ.SPFC > \\_SB.VALZ.INFO > > Is it different from \\_SB_.VALZ.SPFC or it simply doesn't matter? Yeah, that shouldn't matter. So it simply looks like in the notification function on these systems we should call the INFO method and that'll give us the key back? I'll send a test patch later (don't have any hardware to test right now).
On Wed, Apr 1, 2009 at 3:11 PM, Matthew Garrett <mjg59@srcf.ucam.org> wrote: > On Wed, Apr 01, 2009 at 03:06:12PM +1700, Azael Avalos wrote: > >> Indeed, my Satellite X205-9800 uses that method, however, it only provides >> HCI call 0x001E (Hotkey Events) and no System Event FIFO (0x0016), >> instead, hotkeys are entered on a variable called TOHK (TOshiba HotKeys?). >> Located in my model in >> >> PCI0.LPCB.EC0.TOHK > > Ok, interesting. Looking at the DSDTs I have here, TOHK isn't always > present on TOS1900 devices. However: > >> and it appears that it can be _polled_ tru' method INFO >> (TOSH_INTERFACE_2 ".INFO"), >> perhaps a small change in the polling to reflect to that method for >> TOS1900 devices would be necessary. > > The INFO method is, so this looks like a good call. > >> >> On my model the complete call would be: >> >> \\_SB.VALZ.SPFC >> \\_SB.VALZ.INFO >> >> Is it different from \\_SB_.VALZ.SPFC or it simply doesn't matter? > > Yeah, that shouldn't matter. So it simply looks like in the notification > function on these systems we should call the INFO method and that'll > give us the key back? I'll send a test patch later (don't have any > hardware to test right now). Well, on my model after enabling Hotkey Events, Fn-Fx events are entered to that variable according to Toshiba, eg.: Fn-Esc would give me 0x101, etc. I'm at work right now, and will be in the next 2 hours, when I get home I'll test whatever patch you send. By the way, you can find a copy of my DSDT here: http://cig.uacj.mx/~azael/Toshiba/Satellite_X205-S9800.dsl > > -- > Matthew Garrett | mjg59@srcf.ucam.org > Saludos Azael
different but compatible manner and so need a different method address. Signed-off-by: Matthew Garrett <mjg@redhat.com> --- drivers/platform/x86/toshiba_acpi.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/platform/x86/toshiba_acpi.c b/drivers/platform/x86/toshiba_acpi.c index fb87b57..9fb4873 100644 --- a/drivers/platform/x86/toshiba_acpi.c +++ b/drivers/platform/x86/toshiba_acpi.c @@ -67,6 +67,7 @@ MODULE_LICENSE("GPL"); #define TOSH_INTERFACE_2 "\\_SB_.VALZ" #define METHOD_VIDEO_OUT "\\_SB_.VALX.DSSX" #define GHCI_METHOD ".GHCI" +#define SPFC_METHOD ".SPFC" /* Toshiba HCI interface definitions * @@ -935,6 +936,10 @@ static int __init toshiba_acpi_init(void) method_hci = TOSH_INTERFACE_2 GHCI_METHOD; if (toshiba_acpi_setup_keyboard(TOSH_INTERFACE_2)) printk(MY_INFO "Unable to activate hotkeys\n"); + } else if (is_valid_acpi_path(TOSH_INTERFACE_2 SPFC_METHOD)) { + method_hci = TOSH_INTERFACE_2 SPFC_METHOD; + if (toshiba_acpi_setup_keyboard(TOSH_INTERFACE_2)) + printk(MY_INFO "Unable to activate hotkeys\n"); } else return -ENODEV;