diff mbox

[2/2] toshiba-acpi: Support TOS1900-type devices

Message ID 20090331214749.GD29489@srcf.ucam.org (mailing list archive)
State RFC, archived
Headers show

Commit Message

Matthew Garrett March 31, 2009, 9:47 p.m. UTC
Despite toshiba_acpi exporting TOS1900 as a modalias, it doesn't appear to
support these machines. They have their HCI method implemented in a

Comments

Azael Avalos March 31, 2009, 10:06 p.m. UTC | #1
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
Matthew Garrett March 31, 2009, 10:11 p.m. UTC | #2
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).
Azael Avalos March 31, 2009, 10:19 p.m. UTC | #3
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
diff mbox

Patch

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;