linux-acpi.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/2] toshiba-acpi: Add support for hotkey notifications
@ 2009-03-31 21:45 Matthew Garrett
  2009-03-31 21:47 ` [PATCH 2/2] toshiba-acpi: Support TOS1900-type devices Matthew Garrett
                   ` (4 more replies)
  0 siblings, 5 replies; 30+ messages in thread
From: Matthew Garrett @ 2009-03-31 21:45 UTC (permalink / raw)
  To: linux-acpi; +Cc: dsilvers, toshiba_acpi, linux-kernel, lenb

Calling the ENAB method on Toshiba laptops results in notifications being
sent when laptop hotkeys are pressed. This patch simply calls that method
and sets up an input device if it's successful.

Signed-off-by: Matthew Garrett <mjg@redhat.com>
---
 drivers/platform/x86/toshiba_acpi.c |  207 +++++++++++++++++++++++++++++++++-
 1 files changed, 200 insertions(+), 7 deletions(-)

diff --git a/drivers/platform/x86/toshiba_acpi.c b/drivers/platform/x86/toshiba_acpi.c
index 40e60fc..fb87b57 100644
--- a/drivers/platform/x86/toshiba_acpi.c
+++ b/drivers/platform/x86/toshiba_acpi.c
@@ -46,6 +46,7 @@
 #include <linux/platform_device.h>
 #include <linux/rfkill.h>
 #include <linux/input-polldev.h>
+#include <linux/input.h>
 
 #include <asm/uaccess.h>
 
@@ -62,9 +63,10 @@ MODULE_LICENSE("GPL");
 
 /* Toshiba ACPI method paths */
 #define METHOD_LCD_BRIGHTNESS	"\\_SB_.PCI0.VGA_.LCD_._BCM"
-#define METHOD_HCI_1		"\\_SB_.VALD.GHCI"
-#define METHOD_HCI_2		"\\_SB_.VALZ.GHCI"
+#define TOSH_INTERFACE_1	"\\_SB_.VALD"
+#define TOSH_INTERFACE_2	"\\_SB_.VALZ"
 #define METHOD_VIDEO_OUT	"\\_SB_.VALX.DSSX"
+#define GHCI_METHOD		".GHCI"
 
 /* Toshiba HCI interface definitions
  *
@@ -116,6 +118,37 @@ static const struct acpi_device_id toshiba_device_ids[] = {
 };
 MODULE_DEVICE_TABLE(acpi, toshiba_device_ids);
 
+struct key_entry {
+	char type;
+	u16 code;
+	u16 keycode;
+};
+
+enum {KE_KEY, KE_END};
+
+static struct key_entry toshiba_acpi_keymap[]  = {
+	{KE_KEY, 0x101, KEY_MUTE},
+	{KE_KEY, 0x13b, KEY_COFFEE},
+	{KE_KEY, 0x13c, KEY_BATTERY},
+	{KE_KEY, 0x13d, KEY_SLEEP},
+	{KE_KEY, 0x13e, KEY_SUSPEND},
+	{KE_KEY, 0x13f, KEY_SWITCHVIDEOMODE},
+	{KE_KEY, 0x140, KEY_BRIGHTNESSDOWN},
+	{KE_KEY, 0x141, KEY_BRIGHTNESSUP},
+	{KE_KEY, 0x142, KEY_WLAN},
+	{KE_KEY, 0x143, KEY_PROG1},
+	{KE_KEY, 0x17f, KEY_BRIGHTNESSDOWN},
+	{KE_KEY, 0xb05, KEY_PROG2},
+	{KE_KEY, 0xb06, KEY_WWW},
+	{KE_KEY, 0xb07, KEY_MAIL},
+	{KE_KEY, 0xb30, KEY_STOP},
+	{KE_KEY, 0xb31, KEY_PREVIOUSSONG},
+	{KE_KEY, 0xb32, KEY_NEXTSONG},
+	{KE_KEY, 0xb33, KEY_PLAYPAUSE},
+	{KE_KEY, 0xb5a, KEY_MEDIA},
+	{KE_END, 0, 0},
+};
+
 /* utility
  */
 
@@ -252,6 +285,8 @@ struct toshiba_acpi_dev {
 	struct platform_device *p_dev;
 	struct rfkill *rfk_dev;
 	struct input_polled_dev *poll_dev;
+	struct input_dev *hotkey_dev;
+	acpi_handle handle;
 
 	const char *bt_name;
 	const char *rfk_name;
@@ -702,6 +737,154 @@ static struct backlight_ops toshiba_backlight_data = {
         .update_status  = set_lcd_status,
 };
 
+static struct key_entry *toshiba_acpi_get_entry_by_scancode(int code)
+{
+	struct key_entry *key;
+
+	for (key = toshiba_acpi_keymap; key->type != KE_END; key++)
+		if (code == key->code)
+			return key;
+
+	return NULL;
+}
+
+static struct key_entry *toshiba_acpi_get_entry_by_keycode(int code)
+{
+	struct key_entry *key;
+
+	for (key = toshiba_acpi_keymap; key->type != KE_END; key++)
+		if (code == key->keycode && key->type == KE_KEY)
+			return key;
+
+	return NULL;
+}
+
+static int toshiba_acpi_getkeycode(struct input_dev *dev, int scancode,
+				   int *keycode)
+{
+	struct key_entry *key = toshiba_acpi_get_entry_by_scancode(scancode);
+
+	if (key && key->type == KE_KEY) {
+		*keycode = key->keycode;
+		return 0;
+	}
+
+	return -EINVAL;
+}
+
+static int toshiba_acpi_setkeycode(struct input_dev *dev, int scancode,
+				   int keycode)
+{
+	struct key_entry *key;
+	int old_keycode;
+
+	if (keycode < 0 || keycode > KEY_MAX)
+		return -EINVAL;
+
+	key = toshiba_acpi_get_entry_by_scancode(scancode);
+	if (key && key->type == KE_KEY) {
+		old_keycode = key->keycode;
+		key->keycode = keycode;
+		set_bit(keycode, dev->keybit);
+		if (!toshiba_acpi_get_entry_by_keycode(old_keycode))
+			clear_bit(old_keycode, dev->keybit);
+		return 0;
+	}
+
+	return -EINVAL;
+}
+
+static void toshiba_acpi_notify(acpi_handle handle, u32 event, void **data)
+{
+	u32 hci_result, value;
+	struct key_entry *key;
+
+	if (event != 0x80)
+		return;
+	do {
+		hci_read1(HCI_SYSTEM_EVENT, &value, &hci_result);
+		if (hci_result == HCI_SUCCESS) {
+			if (value == 0x100)
+				continue;
+			else if (value & 0x80) {
+				key = toshiba_acpi_get_entry_by_scancode
+					(value & ~0x80);
+				if (!key) {
+					printk(MY_INFO "Unknown key %x\n",
+					       value & ~0x80);
+					continue;
+				}
+				input_report_key(toshiba_acpi.hotkey_dev,
+						 key->keycode, 1);
+				input_sync(toshiba_acpi.hotkey_dev);
+				input_report_key(toshiba_acpi.hotkey_dev,
+						 key->keycode, 0);
+				input_sync(toshiba_acpi.hotkey_dev);
+			}
+		} else if (hci_result == HCI_NOT_SUPPORTED) {
+			/* This is a workaround for an unresolved issue on
+			 * some machines where system events sporadically
+			 * become disabled. */
+			hci_write1(HCI_SYSTEM_EVENT, 1, &hci_result);
+			printk(MY_NOTICE "Re-enabled hotkeys\n");
+		}
+	} while (hci_result != HCI_EMPTY);
+}
+
+static int toshiba_acpi_setup_keyboard(char *device)
+{
+	acpi_status status;
+	acpi_handle handle;
+	int result;
+	const struct key_entry *key;
+
+	status = acpi_get_handle(NULL, device, &handle);
+	if (ACPI_FAILURE(status)) {
+		printk(MY_INFO "Unable to get notification device\n");
+		return -ENODEV;
+	}
+
+	toshiba_acpi.handle = handle;
+
+	status = acpi_evaluate_object(handle, "ENAB", NULL, NULL);
+	if (ACPI_FAILURE(status)) {
+		printk(MY_INFO "Unable to enable hotkeys\n");
+		return -ENODEV;
+	}
+
+	status = acpi_install_notify_handler (handle, ACPI_DEVICE_NOTIFY,
+					      toshiba_acpi_notify, NULL);
+	if (ACPI_FAILURE(status)) {
+		printk(MY_INFO "Unable to install hotkey notification\n");
+		return -ENODEV;
+	}
+
+	toshiba_acpi.hotkey_dev = input_allocate_device();
+	if (!toshiba_acpi.hotkey_dev) {
+		printk(MY_INFO "Unable to register input device\n");
+		return -ENOMEM;
+	}
+
+	toshiba_acpi.hotkey_dev->name = "Toshiba input device";
+	toshiba_acpi.hotkey_dev->phys = device;
+	toshiba_acpi.hotkey_dev->id.bustype = BUS_HOST;
+	toshiba_acpi.hotkey_dev->getkeycode = toshiba_acpi_getkeycode;
+	toshiba_acpi.hotkey_dev->setkeycode = toshiba_acpi_setkeycode;
+
+	for (key = toshiba_acpi_keymap; key->type != KE_END; key++) {
+		set_bit(EV_KEY, toshiba_acpi.hotkey_dev->evbit);
+		set_bit(key->keycode, toshiba_acpi.hotkey_dev->keybit);
+	}
+
+	result = input_register_device(toshiba_acpi.hotkey_dev);
+	if (result) {
+		printk(MY_INFO "Unable to register input device\n");
+		return result;
+	}
+
+	return 0;
+}
+
 static void toshiba_acpi_exit(void)
 {
 	if (toshiba_acpi.poll_dev) {
@@ -709,12 +892,18 @@ static void toshiba_acpi_exit(void)
 		input_free_polled_device(toshiba_acpi.poll_dev);
 	}
 
+	if (toshiba_acpi.hotkey_dev)
+		input_unregister_device(toshiba_acpi.hotkey_dev);
+
 	if (toshiba_acpi.rfk_dev)
 		rfkill_unregister(toshiba_acpi.rfk_dev);
 
 	if (toshiba_backlight_device)
 		backlight_device_unregister(toshiba_backlight_device);
 
+	acpi_remove_notify_handler(toshiba_acpi.handle, ACPI_DEVICE_NOTIFY,
+				   toshiba_acpi_notify);
+
 	remove_device();
 
 	if (toshiba_proc_dir)
@@ -738,11 +927,15 @@ static int __init toshiba_acpi_init(void)
 		return -ENODEV;
 
 	/* simple device detection: look for HCI method */
-	if (is_valid_acpi_path(METHOD_HCI_1))
-		method_hci = METHOD_HCI_1;
-	else if (is_valid_acpi_path(METHOD_HCI_2))
-		method_hci = METHOD_HCI_2;
-	else
+	if (is_valid_acpi_path(TOSH_INTERFACE_1 GHCI_METHOD)) {
+		method_hci = TOSH_INTERFACE_1 GHCI_METHOD;
+		if (toshiba_acpi_setup_keyboard(TOSH_INTERFACE_1))
+			printk(MY_INFO "Unable to activate hotkeys\n");
+	} else if (is_valid_acpi_path(TOSH_INTERFACE_2 GHCI_METHOD)) {
+		method_hci = TOSH_INTERFACE_2 GHCI_METHOD;
+		if (toshiba_acpi_setup_keyboard(TOSH_INTERFACE_2))
+			printk(MY_INFO "Unable to activate hotkeys\n");
+	} else
 		return -ENODEV;
 
 	printk(MY_INFO "Toshiba Laptop ACPI Extras version %s\n",

-- 
Matthew Garrett | mjg59@srcf.ucam.org

^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH 2/2] toshiba-acpi: Support TOS1900-type devices
  2009-03-31 21:45 [PATCH 1/2] toshiba-acpi: Add support for hotkey notifications Matthew Garrett
@ 2009-03-31 21:47 ` Matthew Garrett
  2009-03-31 22:06   ` Azael Avalos
  2009-04-08  5:44 ` [PATCH 1/2] toshiba-acpi: Add support for hotkey notifications Len Brown
                   ` (3 subsequent siblings)
  4 siblings, 1 reply; 30+ messages in thread
From: Matthew Garrett @ 2009-03-31 21:47 UTC (permalink / raw)
  To: linux-acpi; +Cc: dsilvers, toshiba_acpi, linux-kernel, lenb

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.

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;
 
-- 
Matthew Garrett | mjg59@srcf.ucam.org

^ permalink raw reply related	[flat|nested] 30+ messages in thread

* Re: [PATCH 2/2] toshiba-acpi: Support TOS1900-type devices
  2009-03-31 21:47 ` [PATCH 2/2] toshiba-acpi: Support TOS1900-type devices Matthew Garrett
@ 2009-03-31 22:06   ` Azael Avalos
  2009-03-31 22:11     ` Matthew Garrett
  0 siblings, 1 reply; 30+ messages in thread
From: Azael Avalos @ 2009-03-31 22:06 UTC (permalink / raw)
  To: Matthew Garrett; +Cc: linux-acpi, dsilvers, toshiba_acpi, linux-kernel, lenb

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



-- 
-- El mundo apesta y vosotros apestais tambien --

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH 2/2] toshiba-acpi: Support TOS1900-type devices
  2009-03-31 22:06   ` Azael Avalos
@ 2009-03-31 22:11     ` Matthew Garrett
  2009-03-31 22:19       ` Azael Avalos
  0 siblings, 1 reply; 30+ messages in thread
From: Matthew Garrett @ 2009-03-31 22:11 UTC (permalink / raw)
  To: Azael Avalos; +Cc: linux-acpi, dsilvers, toshiba_acpi, linux-kernel, lenb

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).

-- 
Matthew Garrett | mjg59@srcf.ucam.org

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH 2/2] toshiba-acpi: Support TOS1900-type devices
  2009-03-31 22:11     ` Matthew Garrett
@ 2009-03-31 22:19       ` Azael Avalos
  2009-03-31 23:02         ` Matthew Garrett
  0 siblings, 1 reply; 30+ messages in thread
From: Azael Avalos @ 2009-03-31 22:19 UTC (permalink / raw)
  To: Matthew Garrett; +Cc: linux-acpi, dsilvers, toshiba_acpi, linux-kernel, lenb

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



-- 
-- El mundo apesta y vosotros apestais tambien --

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH 2/2] toshiba-acpi: Support TOS1900-type devices
  2009-03-31 22:19       ` Azael Avalos
@ 2009-03-31 23:02         ` Matthew Garrett
  2009-04-01 16:50           ` Azael Avalos
  0 siblings, 1 reply; 30+ messages in thread
From: Matthew Garrett @ 2009-03-31 23:02 UTC (permalink / raw)
  To: Azael Avalos; +Cc: linux-acpi, dsilvers, toshiba_acpi, linux-kernel

Ok, can you try this and let me know what codes it generates (if it 
generates any)? It should go on top of the previous patches.

diff --git a/drivers/platform/x86/toshiba_acpi.c b/drivers/platform/x86/toshiba_acpi.c
index 9fb4873..8552e1a 100644
--- a/drivers/platform/x86/toshiba_acpi.c
+++ b/drivers/platform/x86/toshiba_acpi.c
@@ -185,7 +185,6 @@ static int write_acpi_int(const char *methodName, int val)
 	return (status == AE_OK);
 }
 
-#if 0
 static int read_acpi_int(const char *methodName, int *pVal)
 {
 	struct acpi_buffer results;
@@ -200,7 +199,6 @@ static int read_acpi_int(const char *methodName, int *pVal)
 
 	return (status == AE_OK) && (out_objs[0].type == ACPI_TYPE_INTEGER);
 }
-#endif
 
 static const char *method_hci /*= 0*/ ;
 
@@ -802,6 +800,13 @@ static void toshiba_acpi_notify(acpi_handle handle, u32 event, void **data)
 
 	if (event != 0x80)
 		return;
+
+	if (is_valid_acpi_path(TOSH_INTERFACE_2 SPFC_METHOD)) {
+		read_acpi_int(TOSH_INTERFACE_2 SPFC_METHOD, &value);
+		printk("Received 0x%x\n", value);
+		return;
+	}
+
 	do {
 		hci_read1(HCI_SYSTEM_EVENT, &value, &hci_result);
 		if (hci_result == HCI_SUCCESS) {

-- 
Matthew Garrett | mjg59@srcf.ucam.org

^ permalink raw reply related	[flat|nested] 30+ messages in thread

* Re: [PATCH 2/2] toshiba-acpi: Support TOS1900-type devices
  2009-03-31 23:02         ` Matthew Garrett
@ 2009-04-01 16:50           ` Azael Avalos
  2009-04-01 16:53             ` Matthew Garrett
  0 siblings, 1 reply; 30+ messages in thread
From: Azael Avalos @ 2009-04-01 16:50 UTC (permalink / raw)
  To: Matthew Garrett; +Cc: linux-acpi, dsilvers, toshiba_acpi, linux-kernel

On Wed, Apr 1, 2009 at 4:02 PM, Matthew Garrett <mjg59@srcf.ucam.org> wrote:
> Ok, can you try this and let me know what codes it generates (if it
> generates any)? It should go on top of the previous patches.

Nothing gets generated, even if I change the method to ".INFO" and hotkey
events enabled with hci_write2(HCI_HOTKEY_EVENT, 1, 1, &hci_result) and
TECF set to 1 (see my DSDT).

I was playing with the code yesterday trying to get some events reported, but no
luck so far.

It appears that TOHK variable is _volatile_ and it just stores hotkey events
temporarily and they don't get _stored_ like in the System Event FIFO.

On the patches I sent to the omnibook module I'm able to get events but they
seem to get repeated 3 times, or perhaps I'm polling to often.


Saludos
Azael


-- 
-- El mundo apesta y vosotros apestais tambien --

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH 2/2] toshiba-acpi: Support TOS1900-type devices
  2009-04-01 16:50           ` Azael Avalos
@ 2009-04-01 16:53             ` Matthew Garrett
  2009-04-01 17:03               ` Azael Avalos
  0 siblings, 1 reply; 30+ messages in thread
From: Matthew Garrett @ 2009-04-01 16:53 UTC (permalink / raw)
  To: Azael Avalos; +Cc: linux-acpi, dsilvers, toshiba_acpi, linux-kernel

On Thu, Apr 02, 2009 at 09:50:59AM +1700, Azael Avalos wrote:
> On Wed, Apr 1, 2009 at 4:02 PM, Matthew Garrett <mjg59@srcf.ucam.org> wrote:
> > Ok, can you try this and let me know what codes it generates (if it
> > generates any)? It should go on top of the previous patches.
> 
> Nothing gets generated, even if I change the method to ".INFO" and hotkey
> events enabled with hci_write2(HCI_HOTKEY_EVENT, 1, 1, &hci_result) and
> TECF set to 1 (see my DSDT).
> 
> I was playing with the code yesterday trying to get some events reported, but no
> luck so far.
> 
> It appears that TOHK variable is _volatile_ and it just stores hotkey events
> temporarily and they don't get _stored_ like in the System Event FIFO.

Yes, you shouldn't be reading directly from TOHK at any point. It seems 
to be a purely internal variable - I'm fairly sure that the INFO method 
is the only one that should be called on event generation.

> On the patches I sent to the omnibook module I'm able to get events but they
> seem to get repeated 3 times, or perhaps I'm polling to often.

Hm. I don't have test hardware right now, I'm afraid. I'll look at some 
DSDTs a bit more and see if anything springs to mind.

-- 
Matthew Garrett | mjg59@srcf.ucam.org

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH 2/2] toshiba-acpi: Support TOS1900-type devices
  2009-04-01 16:53             ` Matthew Garrett
@ 2009-04-01 17:03               ` Azael Avalos
  2009-04-01 17:07                 ` Matthew Garrett
  0 siblings, 1 reply; 30+ messages in thread
From: Azael Avalos @ 2009-04-01 17:03 UTC (permalink / raw)
  To: Matthew Garrett; +Cc: linux-acpi, dsilvers, toshiba_acpi, linux-kernel

On Thu, Apr 2, 2009 at 9:53 AM, Matthew Garrett <mjg59@srcf.ucam.org> wrote:
> On Thu, Apr 02, 2009 at 09:50:59AM +1700, Azael Avalos wrote:
>> On Wed, Apr 1, 2009 at 4:02 PM, Matthew Garrett <mjg59@srcf.ucam.org> wrote:
>> > Ok, can you try this and let me know what codes it generates (if it
>> > generates any)? It should go on top of the previous patches.
>>
>> Nothing gets generated, even if I change the method to ".INFO" and hotkey
>> events enabled with hci_write2(HCI_HOTKEY_EVENT, 1, 1, &hci_result) and
>> TECF set to 1 (see my DSDT).
>>
>> I was playing with the code yesterday trying to get some events reported, but no
>> luck so far.
>>
>> It appears that TOHK variable is _volatile_ and it just stores hotkey events
>> temporarily and they don't get _stored_ like in the System Event FIFO.
>
> Yes, you shouldn't be reading directly from TOHK at any point. It seems
> to be a purely internal variable - I'm fairly sure that the INFO method
> is the only one that should be called on event generation.

Well, on the patches sent to the omnibook module I was polling TOHK directly,
it is until now that I realized that I can poll the events via INFO
method, that is,
if I enable TECF first via method \\_SB.PCI0.LPCB.EC0.NTFY

>
>> On the patches I sent to the omnibook module I'm able to get events but they
>> seem to get repeated 3 times, or perhaps I'm polling to often.
>
> Hm. I don't have test hardware right now, I'm afraid. I'll look at some
> DSDTs a bit more and see if anything springs to mind.

Well, I brought my laptop to work (I'm a sysadmin so I got plenty of time :-P)
and I can test if that helps

>
> --
> Matthew Garrett | mjg59@srcf.ucam.org
>

Saludos
Azael


-- 
-- El mundo apesta y vosotros apestais tambien --

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH 2/2] toshiba-acpi: Support TOS1900-type devices
  2009-04-01 17:03               ` Azael Avalos
@ 2009-04-01 17:07                 ` Matthew Garrett
  2009-04-01 17:13                   ` Azael Avalos
  0 siblings, 1 reply; 30+ messages in thread
From: Matthew Garrett @ 2009-04-01 17:07 UTC (permalink / raw)
  To: Azael Avalos; +Cc: linux-acpi, dsilvers, toshiba_acpi, linux-kernel

On Thu, Apr 02, 2009 at 10:03:05AM +1700, Azael Avalos wrote:
> On Thu, Apr 2, 2009 at 9:53 AM, Matthew Garrett <mjg59@srcf.ucam.org> wrote:
> > Yes, you shouldn't be reading directly from TOHK at any point. It seems
> > to be a purely internal variable - I'm fairly sure that the INFO method
> > is the only one that should be called on event generation.
> 
> Well, on the patches sent to the omnibook module I was polling TOHK directly,
> it is until now that I realized that I can poll the events via INFO
> method, that is,
> if I enable TECF first via method \\_SB.PCI0.LPCB.EC0.NTFY

Mm. None of the TOS1900 DSDTs I have here have TECF or NTFY methods, so 
again that doesn't sound like the right way of driving them. Does the 
ENAB method not do this?

> >
> >> On the patches I sent to the omnibook module I'm able to get events but they
> >> seem to get repeated 3 times, or perhaps I'm polling to often.
> >
> > Hm. I don't have test hardware right now, I'm afraid. I'll look at some
> > DSDTs a bit more and see if anything springs to mind.
> 
> Well, I brought my laptop to work (I'm a sysadmin so I got plenty of time :-P)
> and I can test if that helps

I'll dig some more and let you know. Thanks!

-- 
Matthew Garrett | mjg59@srcf.ucam.org

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH 2/2] toshiba-acpi: Support TOS1900-type devices
  2009-04-01 17:07                 ` Matthew Garrett
@ 2009-04-01 17:13                   ` Azael Avalos
  2009-06-02 14:03                     ` Matthew Garrett
  0 siblings, 1 reply; 30+ messages in thread
From: Azael Avalos @ 2009-04-01 17:13 UTC (permalink / raw)
  To: Matthew Garrett; +Cc: linux-acpi, dsilvers, toshiba_acpi, linux-kernel

On Thu, Apr 2, 2009 at 10:07 AM, Matthew Garrett <mjg59@srcf.ucam.org> wrote:
> On Thu, Apr 02, 2009 at 10:03:05AM +1700, Azael Avalos wrote:
>> On Thu, Apr 2, 2009 at 9:53 AM, Matthew Garrett <mjg59@srcf.ucam.org> wrote:
>> > Yes, you shouldn't be reading directly from TOHK at any point. It seems
>> > to be a purely internal variable - I'm fairly sure that the INFO method
>> > is the only one that should be called on event generation.
>>
>> Well, on the patches sent to the omnibook module I was polling TOHK directly,
>> it is until now that I realized that I can poll the events via INFO
>> method, that is,
>> if I enable TECF first via method \\_SB.PCI0.LPCB.EC0.NTFY
>
> Mm. None of the TOS1900 DSDTs I have here have TECF or NTFY methods, so
> again that doesn't sound like the right way of driving them. Does the
> ENAB method not do this?

At least not in my model, the ENAB method is empty, heres a snippet of the DSDT:

                            Method (ENAB, 0, NotSerialized)
                            {
                            }

                            Method (INFO, 0, NotSerialized)
                            {
                                If (TECF)
                                {
                                    Store (Zero, TECF)
                                    Store (^^PCI0.LPCB.EC0.TOHK, Local0)
                                    Store (Zero, ^^PCI0.LPCB.EC0.TOHK)
                                }
                                Else
                                {
                                    Store (Zero, Local0)
                                }

                                Return (Local0)
                            }

And above scope _SB you can find

                    Method (NTFY, 0, NotSerialized)
                    {
                        Store (One, ^^^^VALZ.TECF)
                        Notify (VALZ, 0x80)
                        Return (0xAA)
                    }

Saludos
Azael


-- 
-- El mundo apesta y vosotros apestais tambien --

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH 1/2] toshiba-acpi: Add support for hotkey notifications
  2009-03-31 21:45 [PATCH 1/2] toshiba-acpi: Add support for hotkey notifications Matthew Garrett
  2009-03-31 21:47 ` [PATCH 2/2] toshiba-acpi: Support TOS1900-type devices Matthew Garrett
@ 2009-04-08  5:44 ` Len Brown
  2009-04-11 19:50 ` Frans Pop
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 30+ messages in thread
From: Len Brown @ 2009-04-08  5:44 UTC (permalink / raw)
  To: Matthew Garrett
  Cc: linux-acpi, dsilvers, toshiba_acpi, Linux Kernel Mailing List

applied to acpi-test

thanks,
Len Brown, Intel Open Source Technology Center


^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH 1/2] toshiba-acpi: Add support for hotkey notifications
  2009-03-31 21:45 [PATCH 1/2] toshiba-acpi: Add support for hotkey notifications Matthew Garrett
  2009-03-31 21:47 ` [PATCH 2/2] toshiba-acpi: Support TOS1900-type devices Matthew Garrett
  2009-04-08  5:44 ` [PATCH 1/2] toshiba-acpi: Add support for hotkey notifications Len Brown
@ 2009-04-11 19:50 ` Frans Pop
  2009-04-13 14:50   ` Matthew Garrett
  2009-04-11 23:06 ` Benoit Izac
  2009-04-18  4:01 ` Len Brown
  4 siblings, 1 reply; 30+ messages in thread
From: Frans Pop @ 2009-04-11 19:50 UTC (permalink / raw)
  To: Matthew Garrett; +Cc: linux-acpi, dsilvers, toshiba_acpi, linux-kernel, lenb

Matthew Garrett wrote:
> Calling the ENAB method on Toshiba laptops results in notifications
> being sent when laptop hotkeys are pressed. This patch simply calls that
> method and sets up an input device if it's successful.

Hi Matthew,

On my Satellite A40-241 the patch works fine for the Fn keys, but it does 
not work for the multimedia keys next to the power button. No event is 
generated (I tested this by directly reading the /dev/input/eventX file).

Any chance those could be made to work too?

Cheers,
FJP

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH 1/2] toshiba-acpi: Add support for hotkey notifications
  2009-03-31 21:45 [PATCH 1/2] toshiba-acpi: Add support for hotkey notifications Matthew Garrett
                   ` (2 preceding siblings ...)
  2009-04-11 19:50 ` Frans Pop
@ 2009-04-11 23:06 ` Benoit Izac
  2009-04-18  4:01 ` Len Brown
  4 siblings, 0 replies; 30+ messages in thread
From: Benoit Izac @ 2009-04-11 23:06 UTC (permalink / raw)
  To: Matthew Garrett; +Cc: linux-acpi

On 31/03/2009 at 23:45, Matthew Garrett wrote in message
<20090331214501.GC29489@srcf.ucam.org>:

> Calling the ENAB method on Toshiba laptops results in notifications being
> sent when laptop hotkeys are pressed. This patch simply calls that method
> and sets up an input device if it's successful.

Hi,

On my Toshiba Tecra M9, when I press ``FN'' key (needed to access
hotkeys), an event occurs with code 224 (decimal). How do you
distinguish it from KEY_BRIGHTNESSDOWN?

-- 
Benoit Izac

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH 1/2] toshiba-acpi: Add support for hotkey notifications
  2009-04-11 19:50 ` Frans Pop
@ 2009-04-13 14:50   ` Matthew Garrett
  2009-04-13 19:28     ` Frans Pop
  0 siblings, 1 reply; 30+ messages in thread
From: Matthew Garrett @ 2009-04-13 14:50 UTC (permalink / raw)
  To: Frans Pop; +Cc: linux-acpi, dsilvers, toshiba_acpi, linux-kernel, lenb

On Sat, Apr 11, 2009 at 09:50:35PM +0200, Frans Pop wrote:
> Matthew Garrett wrote:
> > Calling the ENAB method on Toshiba laptops results in notifications
> > being sent when laptop hotkeys are pressed. This patch simply calls that
> > method and sets up an input device if it's successful.
> 
> Hi Matthew,
> 
> On my Satellite A40-241 the patch works fine for the Fn keys, but it does 
> not work for the multimedia keys next to the power button. No event is 
> generated (I tested this by directly reading the /dev/input/eventX file).
> 
> Any chance those could be made to work too?

Can you send me the acpidump?

-- 
Matthew Garrett | mjg59@srcf.ucam.org

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH 1/2] toshiba-acpi: Add support for hotkey notifications
  2009-04-13 14:50   ` Matthew Garrett
@ 2009-04-13 19:28     ` Frans Pop
  2009-04-13 19:43       ` Matthew Garrett
  0 siblings, 1 reply; 30+ messages in thread
From: Frans Pop @ 2009-04-13 19:28 UTC (permalink / raw)
  To: Matthew Garrett; +Cc: linux-acpi, dsilvers, toshiba_acpi, linux-kernel, lenb

[-- Attachment #1: Type: text/plain, Size: 468 bytes --]

On Monday 13 April 2009, Matthew Garrett wrote:
> On Sat, Apr 11, 2009 at 09:50:35PM +0200, Frans Pop wrote:
> > On my Satellite A40-241 the patch works fine for the Fn keys, but it
> > does not work for the multimedia keys next to the power button. No
> > event is generated (I tested this by directly reading the
> > /dev/input/eventX file).
> >
> > Any chance those could be made to work too?
>
> Can you send me the acpidump?

Attached. Thanks for having a look.


[-- Attachment #2: acpi.dump --]
[-- Type: text/plain, Size: 92574 bytes --]

DSDT @ 0x1ef40558
  0000: 44 53 44 54 72 4b 00 00 01 4a 54 4f 53 48 49 42  DSDTrK...JTOSHIB
  0010: 41 30 30 30 43 20 20 20 16 12 03 20 4d 53 46 54  A000C   ... MSFT
  0020: 0e 00 00 01 08 5c 5f 53 30 5f 12 0a 04 0a 00 0a  .....\_S0_......
  0030: 00 0a 00 0a 00 08 5c 5f 53 33 5f 12 0a 04 0a 05  ......\_S3_.....
  0040: 0a 00 0a 00 0a 00 08 5c 5f 53 34 5f 12 0a 04 0a  .......\_S4_....
  0050: 06 0a 00 0a 00 0a 00 08 5c 5f 53 35 5f 12 0a 04  ........\_S5_...
  0060: 0a 07 0a 00 0a 00 0a 00 08 54 50 53 53 12 40 12  .........TPSS.@.
  0070: 02 12 12 06 0b f0 0a 0b f0 55 0a fa 0a fa 0b 90  .........U......
  0080: 00 0b 00 00 12 12 06 0b 40 06 0b 48 26 0a fa 0a  ........@..H&...
  0090: fa 0b 91 00 0b 01 00 12 12 06 0b ff ff 0b ff ff  ................
  00a0: 0a ff 0a ff 0b ff ff 0b ff ff 12 12 06 0b ff ff  ................
  00b0: 0b ff ff 0a ff 0a ff 0b ff ff 0b ff ff 12 12 06  ................
  00c0: 0b ff ff 0b ff ff 0a ff 0a ff 0b ff ff 0b ff ff  ................
  00d0: 12 12 06 0b ff ff 0b ff ff 0a ff 0a ff 0b ff ff  ................
  00e0: 0b ff ff 12 12 06 0b ff ff 0b ff ff 0a ff 0a ff  ................
  00f0: 0b ff ff 0b ff ff 12 12 06 0b ff ff 0b ff ff 0a  ................
  0100: ff 0a ff 0b ff ff 0b ff ff 12 12 06 0b ff ff 0b  ................
  0110: ff ff 0a ff 0a ff 0b ff ff 0b ff ff 12 12 06 0b  ................
  0120: ff ff 0b ff ff 0a ff 0a ff 0b ff ff 0b ff ff 12  ................
  0130: 12 06 0b ff ff 0b ff ff 0a ff 0a ff 0b ff ff 0b  ................
  0140: ff ff 12 12 06 0b ff ff 0b ff ff 0a ff 0a ff 0b  ................
  0150: ff ff 0b ff ff 12 12 06 0b ff ff 0b ff ff 0a ff  ................
  0160: 0a ff 0b ff ff 0b ff ff 12 12 06 0b ff ff 0b ff  ................
  0170: ff 0a ff 0a ff 0b ff ff 0b ff ff 12 12 06 0b ff  ................
  0180: ff 0b ff ff 0a ff 0a ff 0b ff ff 0b ff ff 10 89  ................
  0190: af 03 5c 5f 53 42 5f 5b 82 4d 0a 4c 4e 4b 41 08  ..\_SB_[.M.LNKA.
  01a0: 5f 48 49 44 0c 41 d0 0c 0f 08 5f 55 49 44 0a 01  _HID.A...._UID..
  01b0: 14 1e 5f 53 54 41 00 a4 53 54 41 4c 5c 2f 04 5f  .._STA..STAL\/._
  01c0: 53 42 5f 50 43 49 30 46 4e 43 30 49 52 51 41 08  SB_PCI0FNC0IRQA.
  01d0: 5f 50 52 53 11 09 0a 06 23 00 04 18 79 00 14 1e  _PRS....#...y...
  01e0: 5f 43 52 53 00 a4 43 52 53 4c 5c 2f 04 5f 53 42  _CRS..CRSL\/._SB
  01f0: 5f 50 43 49 30 46 4e 43 30 49 52 51 41 14 1c 5f  _PCI0FNC0IRQA.._
  0200: 44 49 53 00 70 0a 80 5c 2f 04 5f 53 42 5f 50 43  DIS.p..\/._SB_PC
  0210: 49 30 46 4e 43 30 49 52 51 41 14 2b 5f 53 52 53  I0FNC0IRQA.+_SRS
  0220: 01 8b 68 0a 01 49 52 51 58 82 49 52 51 58 60 76  ..h..IRQX.IRQX`v
  0230: 60 70 60 5c 2f 04 5f 53 42 5f 50 43 49 30 46 4e  `p`\/._SB_PCI0FN
  0240: 43 30 49 52 51 41 5b 82 4d 0a 4c 4e 4b 42 08 5f  C0IRQA[.M.LNKB._
  0250: 48 49 44 0c 41 d0 0c 0f 08 5f 55 49 44 0a 02 14  HID.A...._UID...
  0260: 1e 5f 53 54 41 00 a4 53 54 41 4c 5c 2f 04 5f 53  ._STA..STAL\/._S
  0270: 42 5f 50 43 49 30 46 4e 43 30 49 52 51 42 08 5f  B_PCI0FNC0IRQB._
  0280: 50 52 53 11 09 0a 06 23 f8 08 18 79 00 14 1e 5f  PRS....#...y..._
  0290: 43 52 53 00 a4 43 52 53 4c 5c 2f 04 5f 53 42 5f  CRS..CRSL\/._SB_
  02a0: 50 43 49 30 46 4e 43 30 49 52 51 42 14 1c 5f 44  PCI0FNC0IRQB.._D
  02b0: 49 53 00 70 0a 80 5c 2f 04 5f 53 42 5f 50 43 49  IS.p..\/._SB_PCI
  02c0: 30 46 4e 43 30 49 52 51 42 14 2b 5f 53 52 53 01  0FNC0IRQB.+_SRS.
  02d0: 8b 68 0a 01 49 52 51 58 82 49 52 51 58 60 76 60  .h..IRQX.IRQX`v`
  02e0: 70 60 5c 2f 04 5f 53 42 5f 50 43 49 30 46 4e 43  p`\/._SB_PCI0FNC
  02f0: 30 49 52 51 42 5b 82 4d 0a 4c 4e 4b 43 08 5f 48  0IRQB[.M.LNKC._H
  0300: 49 44 0c 41 d0 0c 0f 08 5f 55 49 44 0a 03 14 1e  ID.A...._UID....
  0310: 5f 53 54 41 00 a4 53 54 41 4c 5c 2f 04 5f 53 42  _STA..STAL\/._SB
  0320: 5f 50 43 49 30 46 4e 43 30 49 52 51 43 08 5f 50  _PCI0FNC0IRQC._P
  0330: 52 53 11 09 0a 06 23 f8 08 18 79 00 14 1e 5f 43  RS....#...y..._C
  0340: 52 53 00 a4 43 52 53 4c 5c 2f 04 5f 53 42 5f 50  RS..CRSL\/._SB_P
  0350: 43 49 30 46 4e 43 30 49 52 51 43 14 1c 5f 44 49  CI0FNC0IRQC.._DI
  0360: 53 00 70 0a 80 5c 2f 04 5f 53 42 5f 50 43 49 30  S.p..\/._SB_PCI0
  0370: 46 4e 43 30 49 52 51 43 14 2b 5f 53 52 53 01 8b  FNC0IRQC.+_SRS..
  0380: 68 0a 01 49 52 51 58 82 49 52 51 58 60 76 60 70  h..IRQX.IRQX`v`p
  0390: 60 5c 2f 04 5f 53 42 5f 50 43 49 30 46 4e 43 30  `\/._SB_PCI0FNC0
  03a0: 49 52 51 43 5b 82 4d 0a 4c 4e 4b 44 08 5f 48 49  IRQC[.M.LNKD._HI
  03b0: 44 0c 41 d0 0c 0f 08 5f 55 49 44 0a 04 14 1e 5f  D.A...._UID...._
  03c0: 53 54 41 00 a4 53 54 41 4c 5c 2f 04 5f 53 42 5f  STA..STAL\/._SB_
  03d0: 50 43 49 30 46 4e 43 30 49 52 51 44 08 5f 50 52  PCI0FNC0IRQD._PR
  03e0: 53 11 09 0a 06 23 f8 08 18 79 00 14 1e 5f 43 52  S....#...y..._CR
  03f0: 53 00 a4 43 52 53 4c 5c 2f 04 5f 53 42 5f 50 43  S..CRSL\/._SB_PC
  0400: 49 30 46 4e 43 30 49 52 51 44 14 1c 5f 44 49 53  I0FNC0IRQD.._DIS
  0410: 00 70 0a 80 5c 2f 04 5f 53 42 5f 50 43 49 30 46  .p..\/._SB_PCI0F
  0420: 4e 43 30 49 52 51 44 14 2b 5f 53 52 53 01 8b 68  NC0IRQD.+_SRS..h
  0430: 0a 01 49 52 51 58 82 49 52 51 58 60 76 60 70 60  ..IRQX.IRQX`v`p`
  0440: 5c 2f 04 5f 53 42 5f 50 43 49 30 46 4e 43 30 49  \/._SB_PCI0FNC0I
  0450: 52 51 44 5b 82 4d 0a 4c 4e 4b 45 08 5f 48 49 44  RQD[.M.LNKE._HID
  0460: 0c 41 d0 0c 0f 08 5f 55 49 44 0a 05 14 1e 5f 53  .A...._UID...._S
  0470: 54 41 00 a4 53 54 41 4c 5c 2f 04 5f 53 42 5f 50  TA..STAL\/._SB_P
  0480: 43 49 30 46 4e 43 30 49 52 51 45 08 5f 50 52 53  CI0FNC0IRQE._PRS
  0490: 11 09 0a 06 23 f8 08 18 79 00 14 1e 5f 43 52 53  ....#...y..._CRS
  04a0: 00 a4 43 52 53 4c 5c 2f 04 5f 53 42 5f 50 43 49  ..CRSL\/._SB_PCI
  04b0: 30 46 4e 43 30 49 52 51 45 14 1c 5f 44 49 53 00  0FNC0IRQE.._DIS.
  04c0: 70 0a 80 5c 2f 04 5f 53 42 5f 50 43 49 30 46 4e  p..\/._SB_PCI0FN
  04d0: 43 30 49 52 51 45 14 2b 5f 53 52 53 01 8b 68 0a  C0IRQE.+_SRS..h.
  04e0: 01 49 52 51 58 82 49 52 51 58 60 76 60 70 60 5c  .IRQX.IRQX`v`p`\
  04f0: 2f 04 5f 53 42 5f 50 43 49 30 46 4e 43 30 49 52  /._SB_PCI0FNC0IR
  0500: 51 45 5b 82 4d 0a 4c 4e 4b 46 08 5f 48 49 44 0c  QE[.M.LNKF._HID.
  0510: 41 d0 0c 0f 08 5f 55 49 44 0a 06 14 1e 5f 53 54  A...._UID...._ST
  0520: 41 00 a4 53 54 41 4c 5c 2f 04 5f 53 42 5f 50 43  A..STAL\/._SB_PC
  0530: 49 30 46 4e 43 30 49 52 51 46 08 5f 50 52 53 11  I0FNC0IRQF._PRS.
  0540: 09 0a 06 23 f8 08 18 79 00 14 1e 5f 43 52 53 00  ...#...y..._CRS.
  0550: a4 43 52 53 4c 5c 2f 04 5f 53 42 5f 50 43 49 30  .CRSL\/._SB_PCI0
  0560: 46 4e 43 30 49 52 51 46 14 1c 5f 44 49 53 00 70  FNC0IRQF.._DIS.p
  0570: 0a 80 5c 2f 04 5f 53 42 5f 50 43 49 30 46 4e 43  ..\/._SB_PCI0FNC
  0580: 30 49 52 51 46 14 2b 5f 53 52 53 01 8b 68 0a 01  0IRQF.+_SRS..h..
  0590: 49 52 51 58 82 49 52 51 58 60 76 60 70 60 5c 2f  IRQX.IRQX`v`p`\/
  05a0: 04 5f 53 42 5f 50 43 49 30 46 4e 43 30 49 52 51  ._SB_PCI0FNC0IRQ
  05b0: 46 5b 82 4d 0a 4c 4e 4b 47 08 5f 48 49 44 0c 41  F[.M.LNKG._HID.A
  05c0: d0 0c 0f 08 5f 55 49 44 0a 07 14 1e 5f 53 54 41  ...._UID...._STA
  05d0: 00 a4 53 54 41 4c 5c 2f 04 5f 53 42 5f 50 43 49  ..STAL\/._SB_PCI
  05e0: 30 46 4e 43 30 49 52 51 47 08 5f 50 52 53 11 09  0FNC0IRQG._PRS..
  05f0: 0a 06 23 f8 08 18 79 00 14 1e 5f 43 52 53 00 a4  ..#...y..._CRS..
  0600: 43 52 53 4c 5c 2f 04 5f 53 42 5f 50 43 49 30 46  CRSL\/._SB_PCI0F
  0610: 4e 43 30 49 52 51 47 14 1c 5f 44 49 53 00 70 0a  NC0IRQG.._DIS.p.
  0620: 80 5c 2f 04 5f 53 42 5f 50 43 49 30 46 4e 43 30  .\/._SB_PCI0FNC0
  0630: 49 52 51 47 14 2b 5f 53 52 53 01 8b 68 0a 01 49  IRQG.+_SRS..h..I
  0640: 52 51 58 82 49 52 51 58 60 76 60 70 60 5c 2f 04  RQX.IRQX`v`p`\/.
  0650: 5f 53 42 5f 50 43 49 30 46 4e 43 30 49 52 51 47  _SB_PCI0FNC0IRQG
  0660: 5b 82 4d 0a 4c 4e 4b 48 08 5f 48 49 44 0c 41 d0  [.M.LNKH._HID.A.
  0670: 0c 0f 08 5f 55 49 44 0a 08 14 1e 5f 53 54 41 00  ..._UID...._STA.
  0680: a4 53 54 41 4c 5c 2f 04 5f 53 42 5f 50 43 49 30  .STAL\/._SB_PCI0
  0690: 46 4e 43 30 49 52 51 48 08 5f 50 52 53 11 09 0a  FNC0IRQH._PRS...
  06a0: 06 23 f8 08 18 79 00 14 1e 5f 43 52 53 00 a4 43  .#...y..._CRS..C
  06b0: 52 53 4c 5c 2f 04 5f 53 42 5f 50 43 49 30 46 4e  RSL\/._SB_PCI0FN
  06c0: 43 30 49 52 51 48 14 1c 5f 44 49 53 00 70 0a 80  C0IRQH.._DIS.p..
  06d0: 5c 2f 04 5f 53 42 5f 50 43 49 30 46 4e 43 30 49  \/._SB_PCI0FNC0I
  06e0: 52 51 48 14 2b 5f 53 52 53 01 8b 68 0a 01 49 52  RQH.+_SRS..h..IR
  06f0: 51 58 82 49 52 51 58 60 76 60 70 60 5c 2f 04 5f  QX.IRQX`v`p`\/._
  0700: 53 42 5f 50 43 49 30 46 4e 43 30 49 52 51 48 5b  SB_PCI0FNC0IRQH[
  0710: 82 44 5a 4d 45 4d 5f 08 5f 48 49 44 0c 41 d0 0c  .DZMEM_._HID.A..
  0720: 01 08 5f 53 54 41 0a 0f 14 0d 5f 43 52 53 00 a4  .._STA...._CRS..
  0730: 43 52 53 5f 0a 01 5b 80 53 52 41 4d 00 0c 00 e8  CRS_..[.SRAM....
  0740: 0e 00 0b 00 18 5b 81 24 53 52 41 4d 00 50 41 52  .....[.$SRAM.PAR
  0750: 31 10 50 41 52 32 10 50 41 52 33 10 50 41 52 34  1.PAR2.PAR3.PAR4
  0760: 10 50 41 52 35 10 50 41 52 36 10 5b 81 17 53 52  .PAR5.PAR6.[..SR
  0770: 41 4d 00 00 10 52 44 49 44 20 52 44 53 4e 20 43  AM...RDID RDSN C
  0780: 41 50 42 10 5b 81 4c 4e 53 52 41 4d 00 49 45 41  APB.[.LNSRAM.IEA
  0790: 58 20 49 45 42 58 20 49 45 43 58 20 49 45 44 58  X IEBX IECX IEDX
  07a0: 20 49 45 53 49 20 49 45 44 49 20 49 45 42 50 20   IESI IEDI IEBP 
  07b0: 00 20 4f 45 41 58 20 4f 45 42 58 20 4f 45 43 58  . OEAX OEBX OECX
  07c0: 20 4f 45 44 58 20 4f 45 53 49 20 4f 45 44 49 20   OEDX OESI OEDI 
  07d0: 4f 45 42 50 20 00 48 61 41 43 53 54 01 42 45 53  OEBP .HaACST.BES
  07e0: 31 01 42 45 53 32 01 00 05 42 4d 4e 31 48 06 42  1.BES2...BMN1H.B
  07f0: 53 4e 31 48 05 42 54 50 31 48 04 42 50 55 31 20  SN1H.BTP1H.BPU1 
  0800: 42 44 43 31 20 42 4c 46 31 20 42 54 43 31 20 42  BDC1 BLF1 BTC1 B
  0810: 44 56 31 20 42 53 54 31 20 42 50 52 31 20 42 52  DV1 BST1 BPR1 BR
  0820: 43 31 20 42 50 56 31 20 00 20 42 43 57 31 20 42  C1 BPV1 . BCW1 B
  0830: 43 4c 31 20 42 47 31 31 20 42 47 32 31 20 42 4f  CL1 BG11 BG21 BO
  0840: 49 31 08 42 52 46 31 01 00 4f 52 42 4d 4e 32 48  I1.BRF1..ORBMN2H
  0850: 06 42 53 4e 32 48 05 42 54 50 32 48 04 42 50 55  .BSN2H.BTP2H.BPU
  0860: 32 20 42 44 43 32 20 42 4c 46 32 20 42 54 43 32  2 BDC2 BLF2 BTC2
  0870: 20 42 44 56 32 20 42 53 54 32 20 42 50 52 32 20   BDV2 BST2 BPR2 
  0880: 42 52 43 32 20 42 50 56 32 20 00 20 42 43 57 32  BRC2 BPV2 . BCW2
  0890: 20 42 43 4c 32 20 42 47 31 32 20 42 47 32 32 20   BCL2 BG12 BG22 
  08a0: 42 4f 49 32 20 00 48 51 41 43 30 31 10 41 43 31  BOI2 .HQAC01.AC1
  08b0: 31 10 50 53 56 31 10 43 52 54 31 10 54 4d 50 31  1.PSV1.CRT1.TMP1
  08c0: 10 41 53 54 31 10 41 43 32 31 10 41 43 33 31 10  .AST1.AC21.AC31.
  08d0: 41 43 30 32 10 41 43 31 32 10 50 53 56 32 10 43  AC02.AC12.PSV2.C
  08e0: 52 54 32 10 54 4d 50 32 10 41 53 54 32 10 41 43  RT2.TMP2.AST2.AC
  08f0: 32 32 10 41 43 33 32 10 41 43 30 33 10 41 43 31  22.AC32.AC03.AC1
  0900: 33 10 50 53 56 33 10 43 52 54 33 10 54 4d 50 33  3.PSV3.CRT3.TMP3
  0910: 10 41 53 54 33 10 41 43 32 33 10 41 43 33 33 10  .AST3.AC23.AC33.
  0920: 00 40 08 54 4d 50 46 10 00 40 57 46 41 4e 48 01  .@.TMPF..@WFANH.
  0930: 46 41 4e 4c 07 54 46 31 31 01 54 46 32 31 01 54  FANL.TF11.TF21.T
  0940: 46 33 31 01 00 01 54 46 31 30 01 54 46 32 30 01  F31...TF10.TF20.
  0950: 54 46 33 30 01 00 01 54 50 31 31 01 54 50 32 31  TF30...TP11.TP21
  0960: 01 54 50 33 31 01 00 4d 06 47 50 35 30 01 47 50  .TP31..M.GP50.GP
  0970: 35 31 01 47 50 35 32 01 47 50 35 33 01 47 50 35  51.GP52.GP53.GP5
  0980: 34 01 47 50 35 35 01 47 50 35 36 01 00 01 47 50  4.GP55.GP56...GP
  0990: 36 30 01 47 50 36 31 01 47 50 36 32 01 47 50 36  60.GP61.GP62.GP6
  09a0: 33 01 47 50 36 34 01 47 50 36 35 01 47 50 36 36  3.GP64.GP65.GP66
  09b0: 01 00 01 47 50 37 30 01 47 50 37 31 01 47 50 37  ...GP70.GP71.GP7
  09c0: 32 01 47 50 37 33 01 47 50 37 34 01 47 50 37 35  2.GP73.GP74.GP75
  09d0: 01 47 50 37 36 01 47 50 37 37 01 57 45 44 30 01  .GP76.GP77.WED0.
  09e0: 57 45 44 31 01 57 45 44 32 01 57 45 44 33 01 57  WED1.WED2.WED3.W
  09f0: 45 44 34 01 00 03 53 42 4c 30 01 53 42 4c 31 01  ED4...SBL0.SBL1.
  0a00: 53 42 4c 32 01 53 42 4c 33 01 00 04 4c 49 44 53  SBL2.SBL3...LIDS
  0a10: 01 56 41 4c 46 01 44 43 53 54 01 44 4f 53 32 01  .VALF.DCST.DOS2.
  0a20: 44 43 4b 49 01 44 43 4b 46 01 42 54 31 46 01 42  DCKI.DCKF.BT1F.B
  0a30: 54 32 46 01 4e 58 4c 41 01 4e 58 43 41 01 4e 58  T2F.NXLA.NXCA.NX
  0a40: 54 41 01 4e 58 44 41 01 43 54 4c 41 01 43 54 43  TA.NXDA.CTLA.CTC
  0a50: 41 01 43 54 54 41 01 43 54 44 41 01 4c 41 4e 41  A.CTTA.CTDA.LANA
  0a60: 01 00 4f 3d 47 43 56 53 08 00 40 1e 50 53 53 30  ..O=GCVS..@.PSS0
  0a70: 10 50 53 53 31 10 00 40 06 53 59 55 30 01 53 59  .PSS1..@.SYU0.SY
  0a80: 55 31 01 53 59 55 32 01 53 59 55 33 01 53 59 55  U1.SYU2.SYU3.SYU
  0a90: 34 01 57 41 4b 53 01 53 59 55 36 01 53 59 55 37  4.WAKS.SYU6.SYU7
  0aa0: 01 00 01 44 4e 54 46 01 44 43 4b 55 01 44 43 4b  ...DNTF.DCKU.DCK
  0ab0: 44 01 00 44 17 48 4b 43 44 08 00 08 44 4c 49 44  D..D.HKCD...DLID
  0ac0: 20 44 53 52 4e 20 00 20 42 44 49 44 20 44 53 50   DSRN . BDID DSP
  0ad0: 57 01 56 47 41 46 01 56 57 45 30 01 56 57 45 31  W.VGAF.VWE0.VWE1
  0ae0: 01 50 50 53 43 01 53 50 53 43 01 45 57 4c 44 01  .PPSC.SPSC.EWLD.
  0af0: 45 50 57 53 01 4c 43 44 53 04 43 52 54 53 04 56  EPWS.LCDS.CRTS.V
  0b00: 57 45 32 01 57 45 46 30 01 57 45 46 31 01 57 45  WE2.WEF0.WEF1.WE
  0b10: 44 35 01 49 45 57 45 01 00 03 42 54 4d 44 01 57  D5.IEWE...BTMD.W
  0b20: 53 46 30 01 57 53 46 31 01 47 50 38 33 01 57 55  SF0.WSF1.GP83.WU
  0b30: 49 45 01 00 01 42 50 46 45 01 42 57 55 45 01 44  IE...BPFE.BWUE.D
  0b40: 56 49 53 04 00 04 48 54 4d 30 01 48 54 4d 31 01  VIS...HTM0.HTM1.
  0b50: 00 06 50 53 4e 44 01 50 4d 44 4d 01 00 3e 56 47  ..PSND.PMDM..>VG
  0b60: 41 52 01 4b 42 43 52 01 49 44 30 52 01 49 44 31  AR.KBCR.ID0R.ID1
  0b70: 52 01 49 44 32 52 01 49 44 33 52 01 49 44 41 52  R.ID2R.ID3R.IDAR
  0b80: 01 41 43 4c 52 01 42 54 52 45 01 41 43 56 41 01  .ACLR.BTRE.ACVA.
  0b90: 00 06 47 50 39 30 01 47 50 39 31 01 00 06 48 54  ..GP90.GP91...HT
  0ba0: 54 45 01 43 50 45 44 01 00 46 ce 42 44 43 53 01  TE.CPED..F.BDCS.
  0bb0: 00 07 42 57 45 30 01 42 57 45 31 01 42 57 45 32  ..BWE0.BWE1.BWE2
  0bc0: 01 42 57 45 33 01 42 57 45 34 01 42 57 45 35 01  .BWE3.BWE4.BWE5.
  0bd0: 42 57 46 30 01 42 57 46 31 01 42 43 44 44 04 00  BWF0.BWF1.BCDD..
  0be0: 44 1f 48 41 50 53 02 48 48 53 57 02 48 50 53 55  D.HAPS.HHSW.HPSU
  0bf0: 02 48 52 43 55 02 48 47 53 55 02 48 45 42 49 02  .HRCU.HGSU.HEBI.
  0c00: 48 54 4d 44 02 00 2a 54 4e 56 53 01 4f 53 50 43  HTMD..*TNVS.OSPC
  0c10: 01 41 43 42 4b 01 00 01 4c 41 4e 42 01 50 49 43  .ACBK...LANB.PIC
  0c20: 4d 01 00 0a 50 55 4c 44 08 50 55 4c 41 08 42 43  M...PULD.PULA.BC
  0c30: 4c 44 08 42 43 4c 41 08 00 10 4f 53 49 44 08 00  LD.BCLA...OSID..
  0c40: 48 07 4d 53 53 49 10 4d 53 53 53 08 4d 53 53 52  H.MSSI.MSSS.MSSR
  0c50: 08 4d 53 50 30 08 4d 53 43 30 08 4d 53 50 31 08  .MSP0.MSC0.MSP1.
  0c60: 4d 53 43 31 08 00 40 0c 00 40 60 50 52 45 53 80  MSC1..@..@`PRES.
  0c70: 00 08 5b 81 14 53 52 41 4d 00 00 80 03 02 4e 58  ..[..SRAM.....NX
  0c80: 44 44 04 43 54 44 44 04 5b 81 2b 53 52 41 4d 00  DD.CTDD.[.+SRAM.
  0c90: 00 80 00 04 00 40 04 00 40 05 00 10 00 20 46 53  .....@..@.... FS
  0ca0: 44 50 08 00 40 05 00 18 00 40 08 00 40 24 00 08  DP..@....@..@$..
  0cb0: 45 44 43 4b 08 5b 82 88 2e 02 50 43 49 30 08 5f  EDCK.[....PCI0._
  0cc0: 48 49 44 0c 41 d0 0a 03 08 5f 41 44 52 0a 00 14  HID.A...._ADR...
  0cd0: 40 25 5f 43 52 53 00 a0 4b 12 5c 2f 03 5f 53 42  @%_CRS..K.\/._SB
  0ce0: 5f 4d 45 4d 5f 4c 41 4e 42 08 43 52 42 31 11 4f  _MEM_LANB.CRB1.O
  0cf0: 10 0b 0a 01 88 0d 00 02 0c 00 00 00 00 00 ff 00  ................
  0d00: 00 00 00 01 47 01 f8 0c f8 0c 01 08 88 0d 00 01  ....G...........
  0d10: 0c 03 00 00 00 00 f7 0c 00 00 f8 0c 88 0d 00 01  ................
  0d20: 0c 03 00 00 00 0d ff ff 00 00 00 f3 87 17 00 00  ................
  0d30: 0c 01 00 00 00 00 00 00 0a 00 ff ff 0b 00 00 00  ................
  0d40: 00 00 00 00 02 00 87 17 00 00 0c 01 00 00 00 00  ................
  0d50: 00 80 0d 00 ff ff 0d 00 00 00 00 00 00 80 00 00  ................
  0d60: 87 17 00 00 0c 01 00 00 00 00 00 00 10 80 ff ff  ................
  0d70: bf fe 00 00 00 00 00 00 b0 7e 87 17 00 00 0c 01  .........~......
  0d80: 00 00 00 00 00 10 c0 fe ff ff c0 fe 00 00 00 00  ................
  0d90: 00 f0 00 00 87 17 00 00 0c 01 00 00 00 00 00 00  ................
  0da0: c2 fe ff ff d9 fe 00 00 00 00 00 00 18 00 87 17  ................
  0db0: 00 00 0c 01 00 00 00 00 00 00 dc fe ff ff df fe  ................
  0dc0: 00 00 00 00 00 00 04 00 87 17 00 00 0c 01 00 00  ................
  0dd0: 00 00 00 10 e0 fe ff ff af ff 00 00 00 00 00 f0  ................
  0de0: cf 00 87 17 00 00 0c 01 00 00 00 00 00 00 c0 ff  ................
  0df0: ff ff e7 ff 00 00 00 00 00 00 28 00 79 00 a4 43  ..........(.y..C
  0e00: 52 42 31 a1 4c 11 08 43 52 42 32 11 4f 10 0b 0a  RB1.L..CRB2.O...
  0e10: 01 88 0d 00 02 0c 00 00 00 00 00 ff 00 00 00 00  ................
  0e20: 01 47 01 f8 0c f8 0c 01 08 88 0d 00 01 0c 03 00  .G..............
  0e30: 00 00 00 f7 0c 00 00 f8 0c 88 0d 00 01 0c 03 00  ................
  0e40: 00 00 0d ff ff 00 00 00 f3 87 17 00 00 0c 01 00  ................
  0e50: 00 00 00 00 00 0a 00 ff ff 0b 00 00 00 00 00 00  ................
  0e60: 00 02 00 87 17 00 00 0c 01 00 00 00 00 00 00 0d  ................
  0e70: 00 ff ff 0d 00 00 00 00 00 00 00 01 00 87 17 00  ................
  0e80: 00 0c 01 00 00 00 00 00 00 10 80 ff ff bf fe 00  ................
  0e90: 00 00 00 00 00 b0 7e 87 17 00 00 0c 01 00 00 00  ......~.........
  0ea0: 00 00 10 c0 fe ff ff c0 fe 00 00 00 00 00 f0 00  ................
  0eb0: 00 87 17 00 00 0c 01 00 00 00 00 00 00 c2 fe ff  ................
  0ec0: ff d9 fe 00 00 00 00 00 00 18 00 87 17 00 00 0c  ................
  0ed0: 01 00 00 00 00 00 00 dc fe ff ff df fe 00 00 00  ................
  0ee0: 00 00 00 04 00 87 17 00 00 0c 01 00 00 00 00 00  ................
  0ef0: 10 e0 fe ff ff af ff 00 00 00 00 00 f0 cf 00 87  ................
  0f00: 17 00 00 0c 01 00 00 00 00 00 00 c0 ff ff ff e7  ................
  0f10: ff 00 00 00 00 00 00 28 00 79 00 a4 43 52 42 32  .......(.y..CRB2
  0f20: 14 26 5f 50 52 54 00 a0 18 93 5c 2f 03 5f 53 42  .&_PRT....\/._SB
  0f30: 5f 4d 45 4d 5f 50 49 43 4d 0a 01 a4 41 50 42 30  _MEM_PICM...APB0
  0f40: a1 06 a4 50 42 30 30 08 41 50 42 30 12 47 05 06  ...PB00.APB0.G..
  0f50: 12 0d 04 0c ff ff 02 00 0a 00 0a 00 0a 10 12 0d  ................
  0f60: 04 0c ff ff 1d 00 0a 00 0a 00 0a 10 12 0d 04 0c  ................
  0f70: ff ff 1d 00 0a 01 0a 00 0a 13 12 0d 04 0c ff ff  ................
  0f80: 1d 00 0a 03 0a 00 0a 17 12 0d 04 0c ff ff 1f 00  ................
  0f90: 0a 00 0a 00 0a 12 12 0d 04 0c ff ff 1f 00 0a 01  ................
  0fa0: 0a 00 0a 11 08 50 42 30 30 12 47 08 06 12 15 04  .....PB00.G.....
  0fb0: 0c ff ff 02 00 0a 00 5c 2e 5f 53 42 5f 4c 4e 4b  .......\._SB_LNK
  0fc0: 41 0a 00 12 15 04 0c ff ff 1d 00 0a 00 5c 2e 5f  A............\._
  0fd0: 53 42 5f 4c 4e 4b 41 0a 00 12 15 04 0c ff ff 1d  SB_LNKA.........
  0fe0: 00 0a 01 5c 2e 5f 53 42 5f 4c 4e 4b 44 0a 00 12  ...\._SB_LNKD...
  0ff0: 15 04 0c ff ff 1d 00 0a 03 5c 2e 5f 53 42 5f 4c  .........\._SB_L
  1000: 4e 4b 48 0a 00 12 15 04 0c ff ff 1f 00 0a 00 5c  NKH............\
  1010: 2e 5f 53 42 5f 4c 4e 4b 43 0a 00 12 15 04 0c ff  ._SB_LNKC.......
  1020: ff 1f 00 0a 01 5c 2e 5f 53 42 5f 4c 4e 4b 42 0a  .....\._SB_LNKB.
  1030: 00 5b 82 46 20 50 43 49 42 08 5f 41 44 52 0c 00  .[.F PCIB._ADR..
  1040: 00 1e 00 5b 80 49 43 48 42 02 0a 00 0a ff 5b 81  ...[.ICHB.....[.
  1050: 0e 49 43 48 42 01 00 48 0c 42 52 47 42 08 14 26  .ICHB..H.BRGB..&
  1060: 5f 50 52 54 00 a0 18 93 5c 2f 03 5f 53 42 5f 4d  _PRT....\/._SB_M
  1070: 45 4d 5f 50 49 43 4d 0a 01 a4 41 50 42 31 a1 06  EM_PICM...APB1..
  1080: a4 50 42 30 31 08 41 50 42 31 12 47 05 06 12 0d  .PB01.APB1.G....
  1090: 04 0c ff ff 07 00 0a 00 0a 00 0a 15 12 0d 04 0c  ................
  10a0: ff ff 08 00 0a 00 0a 00 0a 14 12 0d 04 0c ff ff  ................
  10b0: 05 00 0a 00 0a 00 0a 16 12 0d 04 0c ff ff 05 00  ................
  10c0: 0a 01 0a 00 0a 13 12 0d 04 0c ff ff 0b 00 0a 00  ................
  10d0: 0a 00 0a 12 12 0d 04 0c ff ff 0d 00 0a 00 0a 00  ................
  10e0: 0a 12 08 50 42 30 31 12 47 08 06 12 15 04 0c ff  ...PB01.G.......
  10f0: ff 07 00 0a 00 5c 2e 5f 53 42 5f 4c 4e 4b 46 0a  .....\._SB_LNKF.
  1100: 00 12 15 04 0c ff ff 08 00 0a 00 5c 2e 5f 53 42  ...........\._SB
  1110: 5f 4c 4e 4b 45 0a 00 12 15 04 0c ff ff 05 00 0a  _LNKE...........
  1120: 00 5c 2e 5f 53 42 5f 4c 4e 4b 47 0a 00 12 15 04  .\._SB_LNKG.....
  1130: 0c ff ff 05 00 0a 01 5c 2e 5f 53 42 5f 4c 4e 4b  .......\._SB_LNK
  1140: 44 0a 00 12 15 04 0c ff ff 0b 00 0a 00 5c 2e 5f  D............\._
  1150: 53 42 5f 4c 4e 4b 43 0a 00 12 15 04 0c ff ff 0d  SB_LNKC.........
  1160: 00 0a 00 5c 2e 5f 53 42 5f 4c 4e 4b 43 0a 00 5b  ...\._SB_LNKC..[
  1170: 82 0f 4d 50 43 30 08 5f 41 44 52 0c 00 00 05 00  ..MPC0._ADR.....
  1180: 5b 82 0f 4d 50 43 31 08 5f 41 44 52 0c 01 00 05  [..MPC1._ADR....
  1190: 00 5b 82 2f 4c 41 4e 5f 08 5f 41 44 52 0c 00 00  .[./LAN_._ADR...
  11a0: 08 00 5b 80 50 4c 41 4e 02 0a 00 0a ff 5b 81 13  ..[.PLAN.....[..
  11b0: 50 4c 41 4e 01 50 4c 56 49 10 00 48 6f 50 4d 45  PLAN.PLVI..HoPME
  11c0: 53 08 5b 82 43 05 56 49 59 30 08 5f 41 44 52 0c  S.[.C.VIY0._ADR.
  11d0: 00 00 0b 00 08 5f 53 55 4e 0a 00 08 5f 50 52 57  ....._SUN..._PRW
  11e0: 12 06 02 0a 0b 0a 03 14 2f 5f 50 53 57 01 a0 14  ......../_PSW...
  11f0: 68 70 0a 01 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 56  hp..\/._SB_MEM_V
  1200: 57 45 30 a1 13 70 0a 00 5c 2f 03 5f 53 42 5f 4d  WE0..p..\/._SB_M
  1210: 45 4d 5f 56 57 45 30 5b 82 0f 49 45 45 45 08 5f  EM_VWE0[..IEEE._
  1220: 41 44 52 0c 00 00 07 00 5b 82 0f 53 44 43 5f 08  ADR.....[..SDC_.
  1230: 5f 41 44 52 0c 00 00 0d 00 5b 82 42 57 46 4e 43  _ADR.....[.BWFNC
  1240: 30 08 5f 41 44 52 0c 00 00 1f 00 5b 80 49 43 48  0._ADR.....[.ICH
  1250: 33 02 0a 00 0a ff 5b 81 33 49 43 48 33 01 00 40  3.....[.3ICH3..@
  1260: 30 49 52 51 41 08 49 52 51 42 08 49 52 51 43 08  0IRQA.IRQB.IRQC.
  1270: 49 52 51 44 08 00 20 49 52 51 45 08 49 52 51 46  IRQD.. IRQE.IRQF
  1280: 08 49 52 51 47 08 49 52 51 48 08 5b 82 45 05 44  .IRQG.IRQH.[.E.D
  1290: 4d 41 43 08 5f 48 49 44 0c 41 d0 02 00 08 5f 53  MAC._HID.A...._S
  12a0: 54 41 0a 0f 08 5f 43 52 53 11 38 0a 35 47 01 00  TA..._CRS.8.5G..
  12b0: 00 00 00 01 10 47 01 81 00 81 00 01 03 47 01 87  .....G.......G..
  12c0: 00 87 00 01 01 47 01 89 00 89 00 01 03 47 01 8f  .....G.......G..
  12d0: 00 8f 00 01 01 47 01 c0 00 c0 00 01 20 2a 10 00  .....G...... *..
  12e0: 79 00 5b 82 33 50 49 43 5f 08 5f 48 49 44 0b 41  y.[.3PIC_._HID.A
  12f0: d0 08 5f 53 54 41 0a 0f 08 5f 43 52 53 11 19 0a  .._STA..._CRS...
  1300: 16 47 01 20 00 20 00 01 02 47 01 a0 00 a0 00 01  .G. . ...G......
  1310: 02 23 04 00 01 79 00 5b 82 2d 50 49 54 5f 08 5f  .#...y.[.-PIT_._
  1320: 48 49 44 0c 41 d0 01 00 08 5f 53 54 41 0a 0f 08  HID.A...._STA...
  1330: 5f 43 52 53 11 11 0a 0e 47 01 40 00 40 00 01 04  _CRS....G.@.@...
  1340: 23 01 00 01 79 00 5b 82 29 53 50 4b 52 08 5f 48  #...y.[.)SPKR._H
  1350: 49 44 0c 41 d0 08 00 08 5f 53 54 41 0a 0f 08 5f  ID.A...._STA..._
  1360: 43 52 53 11 0d 0a 0a 47 01 61 00 61 00 01 01 79  CRS....G.a.a...y
  1370: 00 5b 82 2d 4e 44 50 5f 08 5f 48 49 44 0c 41 d0  .[.-NDP_._HID.A.
  1380: 0c 04 08 5f 53 54 41 0a 0f 08 5f 43 52 53 11 11  ..._STA..._CRS..
  1390: 0a 0e 47 01 f0 00 f0 00 01 10 23 00 20 01 79 00  ..G.......#. .y.
  13a0: 5b 82 4d 04 4b 42 43 5f 08 5f 48 49 44 0c 41 d0  [.M.KBC_._HID.A.
  13b0: 03 03 14 1d 5f 53 54 41 00 a2 13 93 5c 2f 03 5f  ...._STA....\/._
  13c0: 53 42 5f 4d 45 4d 5f 4b 42 43 52 0a 00 a4 0a 0f  SB_MEM_KBCR.....
  13d0: 08 5f 43 52 53 11 19 0a 16 47 01 60 00 60 00 01  ._CRS....G.`.`..
  13e0: 01 47 01 64 00 64 00 01 01 23 02 00 01 79 00 5b  .G.d.d...#...y.[
  13f0: 82 3c 50 53 32 4d 08 5f 48 49 44 0c 41 d0 0f 13  .<PS2M._HID.A...
  1400: 14 1d 5f 53 54 41 00 a2 13 93 5c 2f 03 5f 53 42  .._STA....\/._SB
  1410: 5f 4d 45 4d 5f 4b 42 43 52 0a 00 a4 0a 0f 08 5f  _MEM_KBCR......_
  1420: 43 52 53 11 09 0a 06 23 00 10 01 79 00 5b 82 2d  CRS....#...y.[.-
  1430: 52 54 43 5f 08 5f 48 49 44 0c 41 d0 0b 00 08 5f  RTC_._HID.A...._
  1440: 53 54 41 0a 0f 08 5f 43 52 53 11 11 0a 0e 47 01  STA..._CRS....G.
  1450: 70 00 70 00 01 02 23 00 01 01 79 00 5b 82 4c 1a  p.p...#...y.[.L.
  1460: 53 59 53 52 08 5f 48 49 44 0c 41 d0 0c 02 08 5f  SYSR._HID.A...._
  1470: 53 54 41 0a 0f 08 5f 43 52 53 11 47 17 0b 72 01  STA..._CRS.G..r.
  1480: 47 01 2e 00 2e 00 01 02 47 01 62 00 62 00 01 01  G.......G.b.b...
  1490: 47 01 66 00 66 00 01 01 47 01 80 00 80 00 01 01  G.f.f...G.......
  14a0: 47 01 84 00 84 00 01 03 47 01 88 00 88 00 01 01  G.......G.......
  14b0: 47 01 8c 00 8c 00 01 03 47 01 e0 00 e0 00 01 10  G.......G.......
  14c0: 47 01 e0 01 e0 01 01 10 47 01 80 04 80 04 01 10  G.......G.......
  14d0: 47 01 80 06 80 06 80 80 47 01 00 08 00 08 01 10  G.......G.......
  14e0: 47 01 00 d8 00 d8 01 80 47 01 80 d8 80 d8 01 20  G.......G...... 
  14f0: 47 01 a0 d8 a0 d8 01 20 47 01 00 e0 00 e0 01 80  G...... G.......
  1500: 47 01 80 e0 80 e0 01 80 47 01 00 e4 00 e4 01 80  G.......G.......
  1510: 47 01 80 e4 80 e4 01 80 47 01 00 e8 00 e8 01 80  G.......G.......
  1520: 47 01 80 e8 80 e8 01 80 47 01 00 ec 00 ec 01 80  G.......G.......
  1530: 47 01 80 ec 80 ec 01 80 47 01 ac ee ac ee 01 01  G.......G.......
  1540: 47 01 b0 ee b0 ee 01 10 47 01 c0 ee c0 ee 01 40  G.......G......@
  1550: 47 01 10 00 10 00 01 10 47 01 24 00 24 00 01 02  G.......G.$.$...
  1560: 47 01 28 00 28 00 01 02 47 01 2c 00 2c 00 01 02  G.(.(...G.,.,...
  1570: 47 01 30 00 30 00 01 02 47 01 34 00 34 00 01 02  G.0.0...G.4.4...
  1580: 47 01 38 00 38 00 01 02 47 01 3c 00 3c 00 01 02  G.8.8...G.<.<...
  1590: 47 01 50 00 50 00 01 04 47 01 63 00 63 00 01 01  G.P.P...G.c.c...
  15a0: 47 01 65 00 65 00 01 01 47 01 72 00 72 00 01 06  G.e.e...G.r.r...
  15b0: 47 01 90 00 90 00 01 10 47 01 a4 00 a4 00 01 02  G.......G.......
  15c0: 47 01 a8 00 a8 00 01 02 47 01 ac 00 ac 00 01 02  G.......G.......
  15d0: 47 01 b0 00 b0 00 01 06 47 01 b8 00 b8 00 01 02  G.......G.......
  15e0: 47 01 bc 00 bc 00 01 02 47 01 d0 04 d0 04 01 02  G.......G.......
  15f0: 79 00 5b 80 53 52 47 31 01 0a b2 0a 01 5b 81 0b  y.[.SRG1.....[..
  1600: 53 52 47 31 01 54 52 50 34 08 5b 82 45 05 50 52  SRG1.TRP4.[.E.PR
  1610: 54 5f 08 5f 48 49 44 0c 41 d0 04 01 14 0d 5f 53  T_._HID.A....._S
  1620: 54 41 00 a4 53 54 41 5f 0a 10 14 0d 5f 43 52 53  TA..STA_...._CRS
  1630: 00 a4 43 52 53 5f 0a 10 14 0d 5f 50 52 53 00 a4  ..CRS_...._PRS..
  1640: 50 52 53 5f 0a 10 14 0d 5f 53 52 53 01 53 52 53  PRS_...._SRS.SRS
  1650: 5f 0a 10 68 14 0c 5f 44 49 53 00 44 49 53 5f 0a  _..h.._DIS.DIS_.
  1660: 10 5b 82 45 05 50 52 54 31 08 5f 48 49 44 0c 41  .[.E.PRT1._HID.A
  1670: d0 04 00 14 0d 5f 53 54 41 00 a4 53 54 41 5f 0a  ....._STA..STA_.
  1680: 12 14 0d 5f 43 52 53 00 a4 43 52 53 5f 0a 12 14  ..._CRS..CRS_...
  1690: 0d 5f 50 52 53 00 a4 50 52 53 5f 0a 12 14 0d 5f  ._PRS..PRS_...._
  16a0: 53 52 53 01 53 52 53 5f 0a 12 68 14 0c 5f 44 49  SRS.SRS_..h.._DI
  16b0: 53 00 44 49 53 5f 0a 12 5b 82 45 09 50 43 43 30  S.DIS_..[.E.PCC0
  16c0: 08 5f 48 49 44 0c 41 d0 0e 00 08 5f 55 49 44 0a  ._HID.A...._UID.
  16d0: 01 14 0d 5f 53 54 41 00 a4 53 54 41 5f 0a 13 14  ..._STA..STA_...
  16e0: 0d 5f 43 52 53 00 a4 43 52 53 5f 0a 13 14 0d 5f  ._CRS..CRS_...._
  16f0: 50 52 53 00 a4 50 52 53 5f 0a 13 14 0d 5f 53 52  PRS..PRS_...._SR
  1700: 53 01 53 52 53 5f 0a 13 68 14 0c 5f 44 49 53 00  S.SRS_..h.._DIS.
  1710: 44 49 53 5f 0a 13 08 5f 50 52 57 12 06 02 0a 0b  DIS_..._PRW.....
  1720: 0a 03 14 17 5f 50 53 57 01 70 68 5c 2f 03 5f 53  ...._PSW.ph\/._S
  1730: 42 5f 4d 45 4d 5f 57 45 44 32 5b 82 13 50 43 53  B_MEM_WED2[..PCS
  1740: 30 08 5f 41 44 52 0a 00 08 5f 53 55 4e 0a 00 5b  0._ADR..._SUN..[
  1750: 82 4c 05 41 54 41 5f 08 5f 48 49 44 0c 41 d0 06  .L.ATA_._HID.A..
  1760: 00 08 5f 55 49 44 0a 03 14 0d 5f 53 54 41 00 a4  .._UID...._STA..
  1770: 53 54 41 5f 0a 16 14 0d 5f 43 52 53 00 a4 43 52  STA_...._CRS..CR
  1780: 53 5f 0a 16 14 0d 5f 50 52 53 00 a4 50 52 53 5f  S_...._PRS..PRS_
  1790: 0a 16 14 0d 5f 53 52 53 01 53 52 53 5f 0a 16 68  ...._SRS.SRS_..h
  17a0: 14 0c 5f 44 49 53 00 44 49 53 5f 0a 16 5b 82 40  .._DIS.DIS_..[.@
  17b0: b1 46 4e 43 31 08 5f 41 44 52 0c 01 00 1f 00 5b  .FNC1._ADR.....[
  17c0: 80 49 44 45 43 02 0a 00 0a ff 5b 81 44 07 49 44  .IDEC.....[.D.ID
  17d0: 45 43 01 00 40 20 50 52 54 45 08 50 52 54 4d 08  EC..@ PRTE.PRTM.
  17e0: 53 52 54 45 08 53 52 54 4d 08 00 20 50 55 44 4d  SRTE.SRTM.. PUDM
  17f0: 01 00 01 53 55 44 4d 01 00 0d 50 55 44 43 02 00  ...SUDM...PUDC..
  1800: 06 53 55 44 43 02 00 46 04 50 43 42 30 01 00 01  .SUDC..F.PCB0...
  1810: 53 43 42 30 01 00 01 50 43 53 30 01 50 43 53 31  SCB0...PCS0.PCS1
  1820: 01 53 43 53 30 01 53 43 53 31 01 00 02 50 50 5f  .SCS0.SCS1...PP_
  1830: 45 01 00 01 46 50 43 30 01 00 01 46 53 43 30 01  E...FPC0...FSC0.
  1840: 5b 81 10 49 44 45 43 01 00 40 2a 00 04 43 53 54  [..IDEC..@*..CST
  1850: 53 04 5b 82 40 4e 49 44 45 30 08 5f 41 44 52 0a  S.[.@NIDE0._ADR.
  1860: 00 14 09 5f 53 54 41 00 a4 0a 0f 14 18 5f 50 53  ..._STA......_PS
  1870: 30 00 70 0a 00 5c 2f 03 5f 53 42 5f 4d 45 4d 5f  0.p..\/._SB_MEM_
  1880: 50 50 53 43 14 18 5f 50 53 33 00 70 0a 01 5c 2f  PPSC.._PS3.p..\/
  1890: 03 5f 53 42 5f 4d 45 4d 5f 50 50 53 43 14 1f 5f  ._SB_MEM_PPSC.._
  18a0: 50 53 43 00 a0 13 5c 2f 03 5f 53 42 5f 4d 45 4d  PSC...\/._SB_MEM
  18b0: 5f 50 50 53 43 a4 0a 03 a1 04 a4 0a 00 14 49 1b  _PPSC.........I.
  18c0: 5f 53 54 4d 03 a2 13 93 5c 2f 03 5f 53 42 5f 4d  _STM....\/._SB_M
  18d0: 45 4d 5f 49 44 30 52 0a 00 70 0a 01 5c 2f 03 5f  EM_ID0R..p..\/._
  18e0: 53 42 5f 4d 45 4d 5f 48 54 4d 30 8a 68 0a 00 50  SB_MEM_HTM0.h..P
  18f0: 50 49 4f 8a 68 0a 04 50 44 4d 41 8a 68 0a 10 50  PIO.h..PDMA.h..P
  1900: 46 4c 47 70 50 50 49 4f 61 70 50 44 4d 41 62 70  FLGpPPIOapPDMAbp
  1910: 50 46 4c 47 63 70 0a 80 64 70 0a 00 67 a0 0e 92  PFLGcp..dp..g...
  1920: 94 61 0a 78 70 0a a3 64 70 0a 03 67 a1 21 a0 0e  .a.xp..dp..g.!..
  1930: 92 94 61 0a b4 70 0a a1 64 70 0a 03 67 a1 10 a0  ..a..p..dp..g...
  1940: 0e 92 94 61 0a f0 70 0a 90 64 70 0a 01 67 70 64  ...a..p..dp..gpd
  1950: 5c 2f 04 5f 53 42 5f 50 43 49 30 46 4e 43 31 50  \/._SB_PCI0FNC1P
  1960: 52 54 4d 70 0a 00 64 70 0a 00 65 70 0a 00 66 70  RTMp..dp..ep..fp
  1970: 0a 00 61 7b 63 0a 01 63 70 63 5c 2f 04 5f 53 42  ..a{c..cpc\/._SB
  1980: 5f 50 43 49 30 46 4e 43 31 50 55 44 4d a0 48 04  _PCI0FNC1PUDM.H.
  1990: 93 63 0a 01 70 0a 07 67 70 0a 01 61 a0 0e 92 94  .c..p..gp..a....
  19a0: 62 0a 14 70 0a 01 66 70 0a 01 64 a1 2a a0 0e 92  b..p..fp..d.*...
  19b0: 94 62 0a 1e 70 0a 02 64 70 0a 01 65 a1 19 a0 0a  .b..p..dp..e....
  19c0: 92 94 62 0a 3c 70 0a 02 64 a1 0c a0 0a 92 94 62  ..b.<p..d......b
  19d0: 0a 5a 70 0a 01 64 70 64 5c 2f 04 5f 53 42 5f 50  .Zp..dpd\/._SB_P
  19e0: 43 49 30 46 4e 43 31 50 55 44 43 70 65 5c 2f 04  CI0FNC1PUDCpe\/.
  19f0: 5f 53 42 5f 50 43 49 30 46 4e 43 31 50 43 42 30  _SB_PCI0FNC1PCB0
  1a00: 70 66 5c 2f 04 5f 53 42 5f 50 43 49 30 46 4e 43  pf\/._SB_PCI0FNC
  1a10: 31 46 50 43 30 70 67 5c 2f 04 5f 53 42 5f 50 43  1FPC0pg\/._SB_PC
  1a20: 49 30 46 4e 43 31 50 52 54 45 70 61 5c 2f 04 5f  I0FNC1PRTEpa\/._
  1a30: 53 42 5f 50 43 49 30 46 4e 43 31 50 43 53 30 70  SB_PCI0FNC1PCS0p
  1a40: 0a 01 61 70 5c 2f 04 5f 53 42 5f 50 43 49 30 46  ..ap\/._SB_PCI0F
  1a50: 4e 43 31 43 53 54 53 60 a0 09 93 60 0a 00 70 0a  NC1CSTS`...`..p.
  1a60: 00 61 70 61 5c 2f 04 5f 53 42 5f 50 43 49 30 46  .apa\/._SB_PCI0F
  1a70: 4e 43 31 50 50 5f 45 14 4f 16 5f 47 54 4d 00 a2  NC1PP_E.O._GTM..
  1a80: 13 93 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 49 44 30  ..\/._SB_MEM_ID0
  1a90: 52 0a 00 70 0a 01 5c 2f 03 5f 53 42 5f 4d 45 4d  R..p..\/._SB_MEM
  1aa0: 5f 48 54 4d 30 70 5c 2f 04 5f 53 42 5f 50 43 49  _HTM0p\/._SB_PCI
  1ab0: 30 46 4e 43 31 50 52 54 4d 60 70 0a fa 62 a0 09  0FNC1PRTM`p..b..
  1ac0: 93 60 0a a3 70 0a 78 62 a1 17 a0 09 93 60 0a a1  .`..p.xb.....`..
  1ad0: 70 0a b4 62 a1 0b a0 09 93 60 0a 90 70 0a f0 62  p..b.....`..p..b
  1ae0: 70 5c 2f 04 5f 53 42 5f 50 43 49 30 46 4e 43 31  p\/._SB_PCI0FNC1
  1af0: 50 55 44 43 61 70 0a 02 64 a0 42 07 93 5c 2f 04  PUDCap..d.B..\/.
  1b00: 5f 53 42 5f 50 43 49 30 46 4e 43 31 50 55 44 4d  _SB_PCI0FNC1PUDM
  1b10: 0a 01 70 0a 03 64 a0 1b 93 5c 2f 04 5f 53 42 5f  ..p..d...\/._SB_
  1b20: 50 43 49 30 46 4e 43 31 46 50 43 30 0a 01 70 0a  PCI0FNC1FPC0..p.
  1b30: 14 63 a1 39 a0 1b 93 5c 2f 04 5f 53 42 5f 50 43  .c.9...\/._SB_PC
  1b40: 49 30 46 4e 43 31 50 43 42 30 0a 01 70 0a 1e 63  I0FNC1PCB0..p..c
  1b50: a1 1b 70 0a 78 63 a0 09 93 61 0a 01 70 0a 5a 63  ..p.xc...a..p.Zc
  1b60: a1 0b a0 09 93 61 0a 02 70 0a 3c 63 a1 0f 70 0a  .....a..p.<c..p.
  1b70: b4 63 a0 09 93 60 0a a3 70 0a 78 63 08 42 55 46  .c...`..p.xc.BUF
  1b80: 46 11 03 0a 14 8a 42 55 46 46 0a 00 50 49 4f 31  F.....BUFF..PIO1
  1b90: 8a 42 55 46 46 0a 04 44 4d 41 31 8a 42 55 46 46  .BUFF..DMA1.BUFF
  1ba0: 0a 08 50 49 4f 32 8a 42 55 46 46 0a 0c 44 4d 41  ..PIO2.BUFF..DMA
  1bb0: 32 8a 42 55 46 46 0a 10 46 4c 47 53 70 62 50 49  2.BUFF..FLGSpbPI
  1bc0: 4f 31 70 63 44 4d 41 31 70 0c ff ff ff ff 50 49  O1pcDMA1p.....PI
  1bd0: 4f 32 70 0c ff ff ff ff 44 4d 41 32 70 64 46 4c  O2p.....DMA2pdFL
  1be0: 47 53 a4 42 55 46 46 5b 82 4b 14 48 44 5f 30 08  GS.BUFF[.K.HD_0.
  1bf0: 5f 41 44 52 0a 00 14 4d 13 5f 47 54 46 00 a2 13  _ADR...M._GTF...
  1c00: 93 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 49 44 30 52  .\/._SB_MEM_ID0R
  1c10: 0a 00 70 0a 01 5c 2f 03 5f 53 42 5f 4d 45 4d 5f  ..p..\/._SB_MEM_
  1c20: 48 54 4d 30 08 42 55 46 46 11 11 0a 0e 03 0c 00  HTM0.BUFF.......
  1c30: 00 00 00 ef 03 23 00 00 00 00 ef 8c 42 55 46 46  .....#......BUFF
  1c40: 0a 01 50 49 4f 4d 8c 42 55 46 46 0a 08 44 4d 41  ..PIOM.BUFF..DMA
  1c50: 4d 70 5c 2f 04 5f 53 42 5f 50 43 49 30 46 4e 43  Mp\/._SB_PCI0FNC
  1c60: 31 50 52 54 4d 60 70 0a 08 61 a0 09 93 60 0a a3  1PRTM`p..a...`..
  1c70: 70 0a 0c 61 a1 17 a0 09 93 60 0a a1 70 0a 0b 61  p..a.....`..p..a
  1c80: a1 0b a0 09 93 60 0a 90 70 0a 0a 61 70 5c 2f 04  .....`..p..ap\/.
  1c90: 5f 53 42 5f 50 43 49 30 46 4e 43 31 50 55 44 4d  _SB_PCI0FNC1PUDM
  1ca0: 62 a0 41 07 93 62 0a 01 70 5c 2f 04 5f 53 42 5f  b.A..b..p\/._SB_
  1cb0: 50 43 49 30 46 4e 43 31 50 55 44 43 64 a0 1b 93  PCI0FNC1PUDCd...
  1cc0: 5c 2f 04 5f 53 42 5f 50 43 49 30 46 4e 43 31 46  \/._SB_PCI0FNC1F
  1cd0: 50 43 30 0a 01 70 0a 45 63 a1 39 a0 1b 93 5c 2f  PC0..p.Ec.9...\/
  1ce0: 04 5f 53 42 5f 50 43 49 30 46 4e 43 31 50 43 42  ._SB_PCI0FNC1PCB
  1cf0: 30 0a 01 70 0a 44 63 a1 1b 70 0a 40 63 a0 09 93  0..p.Dc..p.@c...
  1d00: 64 0a 01 70 0a 41 63 a1 0b a0 09 93 64 0a 02 70  d..p.Ac.....d..p
  1d10: 0a 42 63 a1 0f 70 0a 21 63 a0 09 93 60 0a a3 70  .Bc..p.!c...`..p
  1d20: 0a 22 63 70 61 50 49 4f 4d 70 63 44 4d 41 4d a4  ."cpaPIOMpcDMAM.
  1d30: 42 55 46 46 5b 82 49 58 49 44 45 31 08 5f 41 44  BUFF[.IXIDE1._AD
  1d40: 52 0a 01 14 42 05 5f 50 53 30 00 a2 13 93 5c 2f  R...B._PS0....\/
  1d50: 03 5f 53 42 5f 4d 45 4d 5f 49 44 31 52 0a 00 53  ._SB_MEM_ID1R..S
  1d60: 4d 42 52 0b 00 fe 0a 14 0a 00 0a 00 0a b2 7b 5c  MBR...........{\
  1d70: 2f 03 5f 53 42 5f 4d 45 4d 5f 4f 45 43 58 0a 02  /._SB_MEM_OECX..
  1d80: 60 a0 14 60 70 0a 00 5c 2f 03 5f 53 42 5f 4d 45  `..`p..\/._SB_ME
  1d90: 4d 5f 53 50 53 43 14 42 05 5f 50 53 33 00 a2 13  M_SPSC.B._PS3...
  1da0: 93 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 49 44 31 52  .\/._SB_MEM_ID1R
  1db0: 0a 00 53 4d 42 52 0b 00 fe 0a 14 0a 00 0a 00 0a  ..SMBR..........
  1dc0: b2 7b 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 4f 45 43  .{\/._SB_MEM_OEC
  1dd0: 58 0a 02 60 a0 14 60 70 0a 01 5c 2f 03 5f 53 42  X..`..`p..\/._SB
  1de0: 5f 4d 45 4d 5f 53 50 53 43 14 4e 05 5f 50 53 43  _MEM_SPSC.N._PSC
  1df0: 00 a2 13 93 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 49  ....\/._SB_MEM_I
  1e00: 44 31 52 0a 00 53 4d 42 52 0b 00 fe 0a 14 0a 00  D1R..SMBR.......
  1e10: 0a 00 0a b2 7b 5c 2f 03 5f 53 42 5f 4d 45 4d 5f  ....{\/._SB_MEM_
  1e20: 4f 45 43 58 0a 02 60 a0 1b 60 a0 13 5c 2f 03 5f  OECX..`..`..\/._
  1e30: 53 42 5f 4d 45 4d 5f 53 50 53 43 a4 0a 03 a1 04  SB_MEM_SPSC.....
  1e40: a4 0a 00 a1 04 a4 0a 00 14 49 1b 5f 53 54 4d 03  .........I._STM.
  1e50: a2 13 93 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 49 44  ...\/._SB_MEM_ID
  1e60: 31 52 0a 00 70 0a 01 5c 2f 03 5f 53 42 5f 4d 45  1R..p..\/._SB_ME
  1e70: 4d 5f 48 54 4d 31 8a 68 0a 00 50 50 49 4f 8a 68  M_HTM1.h..PPIO.h
  1e80: 0a 04 50 44 4d 41 8a 68 0a 10 50 46 4c 47 70 50  ..PDMA.h..PFLGpP
  1e90: 50 49 4f 61 70 50 44 4d 41 62 70 50 46 4c 47 63  PIOapPDMAbpPFLGc
  1ea0: 70 0a 80 64 70 0a 00 67 a0 0e 92 94 61 0a 78 70  p..dp..g....a.xp
  1eb0: 0a a3 64 70 0a 03 67 a1 21 a0 0e 92 94 61 0a b4  ..dp..g.!....a..
  1ec0: 70 0a a1 64 70 0a 03 67 a1 10 a0 0e 92 94 61 0a  p..dp..g......a.
  1ed0: f0 70 0a 90 64 70 0a 01 67 70 64 5c 2f 04 5f 53  .p..dp..gpd\/._S
  1ee0: 42 5f 50 43 49 30 46 4e 43 31 53 52 54 4d 70 0a  B_PCI0FNC1SRTMp.
  1ef0: 00 64 70 0a 00 65 70 0a 00 66 70 0a 00 61 7b 63  .dp..ep..fp..a{c
  1f00: 0a 01 63 70 63 5c 2f 04 5f 53 42 5f 50 43 49 30  ..cpc\/._SB_PCI0
  1f10: 46 4e 43 31 53 55 44 4d a0 48 04 93 63 0a 01 70  FNC1SUDM.H..c..p
  1f20: 0a 07 67 70 0a 01 61 a0 0e 92 94 62 0a 14 70 0a  ..gp..a....b..p.
  1f30: 01 66 70 0a 01 64 a1 2a a0 0e 92 94 62 0a 1e 70  .fp..d.*....b..p
  1f40: 0a 02 64 70 0a 01 65 a1 19 a0 0a 92 94 62 0a 3c  ..dp..e......b.<
  1f50: 70 0a 02 64 a1 0c a0 0a 92 94 62 0a 5a 70 0a 01  p..d......b.Zp..
  1f60: 64 70 64 5c 2f 04 5f 53 42 5f 50 43 49 30 46 4e  dpd\/._SB_PCI0FN
  1f70: 43 31 53 55 44 43 70 65 5c 2f 04 5f 53 42 5f 50  C1SUDCpe\/._SB_P
  1f80: 43 49 30 46 4e 43 31 53 43 42 30 70 66 5c 2f 04  CI0FNC1SCB0pf\/.
  1f90: 5f 53 42 5f 50 43 49 30 46 4e 43 31 46 53 43 30  _SB_PCI0FNC1FSC0
  1fa0: 70 67 5c 2f 04 5f 53 42 5f 50 43 49 30 46 4e 43  pg\/._SB_PCI0FNC
  1fb0: 31 53 52 54 45 70 61 5c 2f 04 5f 53 42 5f 50 43  1SRTEpa\/._SB_PC
  1fc0: 49 30 46 4e 43 31 53 43 53 30 70 0a 01 61 70 5c  I0FNC1SCS0p..ap\
  1fd0: 2f 04 5f 53 42 5f 50 43 49 30 46 4e 43 31 43 53  /._SB_PCI0FNC1CS
  1fe0: 54 53 60 a0 09 93 60 0a 00 70 0a 00 61 70 61 5c  TS`...`..p..apa\
  1ff0: 2f 04 5f 53 42 5f 50 43 49 30 46 4e 43 31 50 50  /._SB_PCI0FNC1PP
  2000: 5f 45 14 4f 16 5f 47 54 4d 00 a2 13 93 5c 2f 03  _E.O._GTM....\/.
  2010: 5f 53 42 5f 4d 45 4d 5f 49 44 31 52 0a 00 70 0a  _SB_MEM_ID1R..p.
  2020: 01 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 48 54 4d 31  .\/._SB_MEM_HTM1
  2030: 70 5c 2f 04 5f 53 42 5f 50 43 49 30 46 4e 43 31  p\/._SB_PCI0FNC1
  2040: 53 52 54 4d 60 70 0a fa 62 a0 09 93 60 0a a3 70  SRTM`p..b...`..p
  2050: 0a 78 62 a1 17 a0 09 93 60 0a a1 70 0a b4 62 a1  .xb.....`..p..b.
  2060: 0b a0 09 93 60 0a 90 70 0a f0 62 70 5c 2f 04 5f  ....`..p..bp\/._
  2070: 53 42 5f 50 43 49 30 46 4e 43 31 53 55 44 43 61  SB_PCI0FNC1SUDCa
  2080: 70 0a 02 64 a0 42 07 93 5c 2f 04 5f 53 42 5f 50  p..d.B..\/._SB_P
  2090: 43 49 30 46 4e 43 31 53 55 44 4d 0a 01 70 0a 03  CI0FNC1SUDM..p..
  20a0: 64 a0 1b 93 5c 2f 04 5f 53 42 5f 50 43 49 30 46  d...\/._SB_PCI0F
  20b0: 4e 43 31 46 53 43 30 0a 01 70 0a 14 63 a1 39 a0  NC1FSC0..p..c.9.
  20c0: 1b 93 5c 2f 04 5f 53 42 5f 50 43 49 30 46 4e 43  ..\/._SB_PCI0FNC
  20d0: 31 53 43 42 30 0a 01 70 0a 1e 63 a1 1b 70 0a 78  1SCB0..p..c..p.x
  20e0: 63 a0 09 93 61 0a 01 70 0a 5a 63 a1 0b a0 09 93  c...a..p.Zc.....
  20f0: 61 0a 02 70 0a 3c 63 a1 0f 70 0a b4 63 a0 09 93  a..p.<c..p..c...
  2100: 60 0a a3 70 0a 78 63 08 42 55 46 46 11 03 0a 14  `..p.xc.BUFF....
  2110: 8a 42 55 46 46 0a 00 50 49 4f 31 8a 42 55 46 46  .BUFF..PIO1.BUFF
  2120: 0a 04 44 4d 41 31 8a 42 55 46 46 0a 08 50 49 4f  ..DMA1.BUFF..PIO
  2130: 32 8a 42 55 46 46 0a 0c 44 4d 41 32 8a 42 55 46  2.BUFF..DMA2.BUF
  2140: 46 0a 10 46 4c 47 53 70 62 50 49 4f 31 70 63 44  F..FLGSpbPIO1pcD
  2150: 4d 41 31 70 0c ff ff ff ff 50 49 4f 32 70 0c ff  MA1p.....PIO2p..
  2160: ff ff ff 44 4d 41 32 70 64 46 4c 47 53 a4 42 55  ...DMA2pdFLGS.BU
  2170: 46 46 5b 82 4b 14 48 44 5f 31 08 5f 41 44 52 0a  FF[.K.HD_1._ADR.
  2180: 00 14 4d 13 5f 47 54 46 00 a2 13 93 5c 2f 03 5f  ..M._GTF....\/._
  2190: 53 42 5f 4d 45 4d 5f 49 44 31 52 0a 00 70 0a 01  SB_MEM_ID1R..p..
  21a0: 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 48 54 4d 31 08  \/._SB_MEM_HTM1.
  21b0: 42 55 46 46 11 11 0a 0e 03 0c 00 00 00 00 ef 03  BUFF............
  21c0: 23 00 00 00 00 ef 8c 42 55 46 46 0a 01 50 49 4f  #......BUFF..PIO
  21d0: 4d 8c 42 55 46 46 0a 08 44 4d 41 4d 70 5c 2f 04  M.BUFF..DMAMp\/.
  21e0: 5f 53 42 5f 50 43 49 30 46 4e 43 31 53 52 54 4d  _SB_PCI0FNC1SRTM
  21f0: 60 70 0a 08 61 a0 09 93 60 0a a3 70 0a 0c 61 a1  `p..a...`..p..a.
  2200: 17 a0 09 93 60 0a a1 70 0a 0b 61 a1 0b a0 09 93  ....`..p..a.....
  2210: 60 0a 90 70 0a 0a 61 70 5c 2f 04 5f 53 42 5f 50  `..p..ap\/._SB_P
  2220: 43 49 30 46 4e 43 31 53 55 44 4d 62 a0 41 07 93  CI0FNC1SUDMb.A..
  2230: 62 0a 01 70 5c 2f 04 5f 53 42 5f 50 43 49 30 46  b..p\/._SB_PCI0F
  2240: 4e 43 31 53 55 44 43 64 a0 1b 93 5c 2f 04 5f 53  NC1SUDCd...\/._S
  2250: 42 5f 50 43 49 30 46 4e 43 31 46 53 43 30 0a 01  B_PCI0FNC1FSC0..
  2260: 70 0a 45 63 a1 39 a0 1b 93 5c 2f 04 5f 53 42 5f  p.Ec.9...\/._SB_
  2270: 50 43 49 30 46 4e 43 31 53 43 42 30 0a 01 70 0a  PCI0FNC1SCB0..p.
  2280: 44 63 a1 1b 70 0a 40 63 a0 09 93 64 0a 01 70 0a  Dc..p.@c...d..p.
  2290: 41 63 a1 0b a0 09 93 64 0a 02 70 0a 42 63 a1 0f  Ac.....d..p.Bc..
  22a0: 70 0a 21 63 a0 09 93 60 0a a3 70 0a 22 63 70 61  p.!c...`..p."cpa
  22b0: 50 49 4f 4d 70 63 44 4d 41 4d a4 42 55 46 46 5b  PIOMpcDMAM.BUFF[
  22c0: 82 4d 88 56 47 41 5f 08 5f 41 44 52 0c 00 00 02  .M.VGA_._ADR....
  22d0: 00 14 41 16 5f 50 53 30 08 a2 13 93 5c 2f 03 5f  ..A._PS0....\/._
  22e0: 53 42 5f 4d 45 4d 5f 56 47 41 52 0a 00 a0 4c 0a  SB_MEM_VGAR...L.
  22f0: 93 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 44 4f 53 32  .\/._SB_MEM_DOS2
  2300: 0a 00 a0 47 09 91 92 93 5c 2f 03 5f 53 42 5f 4d  ...G....\/._SB_M
  2310: 45 4d 5f 43 54 4c 41 5c 2f 03 5f 53 42 5f 4d 45  EM_CTLA\/._SB_ME
  2320: 4d 5f 4e 58 4c 41 91 92 93 5c 2f 03 5f 53 42 5f  M_NXLA...\/._SB_
  2330: 4d 45 4d 5f 43 54 43 41 5c 2f 03 5f 53 42 5f 4d  MEM_CTCA\/._SB_M
  2340: 45 4d 5f 4e 58 43 41 91 92 93 5c 2f 03 5f 53 42  EM_NXCA...\/._SB
  2350: 5f 4d 45 4d 5f 43 54 44 41 5c 2f 03 5f 53 42 5f  _MEM_CTDA\/._SB_
  2360: 4d 45 4d 5f 4e 58 44 41 92 93 5c 2f 03 5f 53 42  MEM_NXDA..\/._SB
  2370: 5f 4d 45 4d 5f 43 54 54 41 5c 2f 03 5f 53 42 5f  _MEM_CTTA\/._SB_
  2380: 4d 45 4d 5f 4e 58 54 41 86 5c 2f 03 5f 53 42 5f  MEM_NXTA.\/._SB_
  2390: 50 43 49 30 56 47 41 5f 0a 80 70 0a 01 5c 2f 03  PCI0VGA_..p..\/.
  23a0: 5f 53 42 5f 4d 45 4d 5f 49 45 53 49 70 0a 00 5c  _SB_MEM_IESIp..\
  23b0: 2f 03 5f 53 42 5f 4d 45 4d 5f 49 45 44 49 53 4d  /._SB_MEM_IEDISM
  23c0: 42 52 0b 00 fe 0a 23 0a 10 0a 00 0a b2 a0 45 06  BR....#.......E.
  23d0: 93 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 4f 45 41 58  .\/._SB_MEM_OEAX
  23e0: 0a 00 70 0a 01 5c 2f 03 5f 53 42 5f 4d 45 4d 5f  ..p..\/._SB_MEM_
  23f0: 49 45 53 49 70 0a 00 5c 2f 03 5f 53 42 5f 4d 45  IESIp..\/._SB_ME
  2400: 4d 5f 49 45 44 49 53 4d 42 52 0b 00 ff 0a 23 0a  M_IEDISMBR....#.
  2410: 10 0a 00 0a b2 57 50 53 58 0a 10 0a 01 0a 00 0a  .....WPSX.......
  2420: 00 70 0a 00 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 56  .p..\/._SB_MEM_V
  2430: 47 41 46 14 44 0b 5f 50 53 31 08 a2 13 93 5c 2f  GAF.D._PS1....\/
  2440: 03 5f 53 42 5f 4d 45 4d 5f 56 47 41 52 0a 00 70  ._SB_MEM_VGAR..p
  2450: 0a 01 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 49 45 53  ..\/._SB_MEM_IES
  2460: 49 70 0a 00 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 49  Ip..\/._SB_MEM_I
  2470: 45 44 49 53 4d 42 52 0b 00 fe 0a 23 0a 10 0a 00  EDISMBR....#....
  2480: 0a b2 a0 45 06 93 5c 2f 03 5f 53 42 5f 4d 45 4d  ...E..\/._SB_MEM
  2490: 5f 4f 45 41 58 0a 00 70 0a 01 5c 2f 03 5f 53 42  _OEAX..p..\/._SB
  24a0: 5f 4d 45 4d 5f 49 45 53 49 70 0a 00 5c 2f 03 5f  _MEM_IESIp..\/._
  24b0: 53 42 5f 4d 45 4d 5f 49 45 44 49 53 4d 42 52 0b  SB_MEM_IEDISMBR.
  24c0: 00 ff 0a 23 0a 10 0a 01 0a b2 57 50 53 58 0a 10  ...#......WPSX..
  24d0: 0a 01 0a 00 0a 01 70 0a 01 5c 2f 03 5f 53 42 5f  ......p..\/._SB_
  24e0: 4d 45 4d 5f 56 47 41 46 14 44 0b 5f 50 53 33 08  MEM_VGAF.D._PS3.
  24f0: a2 13 93 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 56 47  ...\/._SB_MEM_VG
  2500: 41 52 0a 00 70 0a 01 5c 2f 03 5f 53 42 5f 4d 45  AR..p..\/._SB_ME
  2510: 4d 5f 49 45 53 49 70 0a 00 5c 2f 03 5f 53 42 5f  M_IESIp..\/._SB_
  2520: 4d 45 4d 5f 49 45 44 49 53 4d 42 52 0b 00 fe 0a  MEM_IEDISMBR....
  2530: 23 0a 10 0a 00 0a b2 a0 45 06 93 5c 2f 03 5f 53  #.......E..\/._S
  2540: 42 5f 4d 45 4d 5f 4f 45 41 58 0a 00 70 0a 01 5c  B_MEM_OEAX..p..\
  2550: 2f 03 5f 53 42 5f 4d 45 4d 5f 49 45 53 49 70 0a  /._SB_MEM_IESIp.
  2560: 00 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 49 45 44 49  .\/._SB_MEM_IEDI
  2570: 53 4d 42 52 0b 00 ff 0a 23 0a 10 0a 03 0a b2 57  SMBR....#......W
  2580: 50 53 58 0a 10 0a 01 0a 00 0a 03 70 0a 01 5c 2f  PSX........p..\/
  2590: 03 5f 53 42 5f 4d 45 4d 5f 56 47 41 46 14 4e 05  ._SB_MEM_VGAF.N.
  25a0: 5f 50 53 43 00 a2 13 93 5c 2f 03 5f 53 42 5f 4d  _PSC....\/._SB_M
  25b0: 45 4d 5f 56 47 41 52 0a 00 70 0a 01 5c 2f 03 5f  EM_VGAR..p..\/._
  25c0: 53 42 5f 4d 45 4d 5f 49 45 53 49 70 0a 00 5c 2f  SB_MEM_IESIp..\/
  25d0: 03 5f 53 42 5f 4d 45 4d 5f 49 45 44 49 53 4d 42  ._SB_MEM_IEDISMB
  25e0: 52 0b 00 fe 0a 23 0a 10 0a 00 0a b2 a4 5c 2f 03  R....#.......\/.
  25f0: 5f 53 42 5f 4d 45 4d 5f 4f 45 44 58 14 4a 08 5f  _SB_MEM_OEDX.J._
  2600: 44 4f 53 01 a0 29 93 68 0a 00 70 0a 01 5c 2f 03  DOS..).h..p..\/.
  2610: 5f 53 42 5f 4d 45 4d 5f 44 43 53 54 70 0a 00 5c  _SB_MEM_DCSTp..\
  2620: 2f 03 5f 53 42 5f 4d 45 4d 5f 44 4f 53 32 a1 48  /._SB_MEM_DOS2.H
  2630: 05 a0 29 93 68 0a 01 70 0a 00 5c 2f 03 5f 53 42  ..).h..p..\/._SB
  2640: 5f 4d 45 4d 5f 44 43 53 54 70 0a 01 5c 2f 03 5f  _MEM_DCSTp..\/._
  2650: 53 42 5f 4d 45 4d 5f 44 4f 53 32 a1 2b a0 29 93  SB_MEM_DOS2.+.).
  2660: 68 0a 02 70 0a 01 5c 2f 03 5f 53 42 5f 4d 45 4d  h..p..\/._SB_MEM
  2670: 5f 44 43 53 54 70 0a 01 5c 2f 03 5f 53 42 5f 4d  _DCSTp..\/._SB_M
  2680: 45 4d 5f 44 4f 53 32 14 1c 5f 44 4f 44 00 08 42  EM_DOS2.._DOD..B
  2690: 55 46 46 12 0b 03 0b 00 04 0b 00 01 0b 00 02 a4  UFF.............
  26a0: 42 55 46 46 14 47 04 5f 52 4f 4d 02 72 68 0c 00  BUFF.G._ROM.rh..
  26b0: 00 0c 00 60 79 69 0a 03 61 08 42 55 46 46 11 02  ...`yi..a.BUFF..
  26c0: 69 10 1b 5c 00 5b 80 56 52 4f 4d 00 60 61 5b 81  i..\.[.VROM.`a[.
  26d0: 0d 56 52 4f 4d 01 52 4f 4d 49 80 00 10 70 5c 52  .VROM.ROMI...p\R
  26e0: 4f 4d 49 42 55 46 46 a4 42 55 46 46 5b 82 42 26  OMIBUFF.BUFF[.B&
  26f0: 4c 43 44 5f 08 5f 41 44 52 0b 00 04 14 1f 5f 44  LCD_._ADR....._D
  2700: 43 53 00 a0 13 5c 2f 03 5f 53 42 5f 4d 45 4d 5f  CS...\/._SB_MEM_
  2710: 43 54 4c 41 a4 0a 0f a1 04 a4 0a 0d 14 4e 0f 5f  CTLA.........N._
  2720: 44 44 43 01 a0 09 93 68 0a 01 70 0a 80 60 a1 10  DDC....h..p..`..
  2730: a0 0a 93 68 0a 02 70 0b 00 01 60 a1 03 a4 00 70  ...h..p...`....p
  2740: 0a 00 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 50 52 45  ..\/._SB_MEM_PRE
  2750: 53 79 68 0a 08 61 7d 61 0a 01 61 08 42 55 46 46  Syh..a}a..a.BUFF
  2760: 11 02 60 53 4d 42 52 0b 00 fe 0a 37 61 0c 00 f0  ..`SMBR....7a...
  2770: 0e 00 0a b2 7b 61 0b 00 ff 61 70 0b 00 01 5c 2f  ....{a...ap...\/
  2780: 03 5f 53 42 5f 4d 45 4d 5f 4f 45 43 58 a2 1e 5c  ._SB_MEM_OECX..\
  2790: 2f 03 5f 53 42 5f 4d 45 4d 5f 4f 45 43 58 53 4d  /._SB_MEM_OECXSM
  27a0: 42 52 0b 00 fe 0a 37 61 0a 00 0a b2 70 5c 2f 03  BR....7a....p\/.
  27b0: 5f 53 42 5f 4d 45 4d 5f 46 53 44 50 60 7d 60 0a  _SB_MEM_FSDP`}`.
  27c0: 22 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 46 53 44 50  "\/._SB_MEM_FSDP
  27d0: 74 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 46 53 44 50  t\/._SB_MEM_FSDP
  27e0: 60 60 74 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 45 44  ``t\/._SB_MEM_ED
  27f0: 43 4b 60 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 45 44  CK`\/._SB_MEM_ED
  2800: 43 4b 70 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 50 52  CKp\/._SB_MEM_PR
  2810: 45 53 42 55 46 46 a4 42 55 46 46 14 1d 5f 44 47  ESBUFF.BUFF.._DG
  2820: 53 00 a0 12 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 4e  S...\/._SB_MEM_N
  2830: 58 4c 41 a4 01 a1 03 a4 00 14 37 5f 44 53 53 01  XLA.......7_DSS.
  2840: 70 68 60 7b 60 0a 01 61 a0 14 61 70 0a 01 5c 2f  ph`{`..a..ap..\/
  2850: 03 5f 53 42 5f 4d 45 4d 5f 4e 58 4c 41 a1 13 70  ._SB_MEM_NXLA..p
  2860: 0a 00 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 4e 58 4c  ..\/._SB_MEM_NXL
  2870: 41 14 40 06 5f 42 43 4c 00 08 42 55 46 46 12 0c  A.@._BCL..BUFF..
  2880: 05 0a 64 0a 28 0a 00 0a 28 0a 64 a0 41 04 5c 2f  ..d.(...(.d.A.\/
  2890: 03 5f 53 42 5f 4d 45 4d 5f 48 50 53 55 70 5c 2f  ._SB_MEM_HPSUp\/
  28a0: 03 5f 53 42 5f 4d 45 4d 5f 42 43 4c 41 88 42 55  ._SB_MEM_BCLA.BU
  28b0: 46 46 0a 00 00 70 5c 2f 03 5f 53 42 5f 4d 45 4d  FF...p\/._SB_MEM
  28c0: 5f 42 43 4c 44 88 42 55 46 46 0a 01 00 a4 42 55  _BCLD.BUFF....BU
  28d0: 46 46 14 34 5f 42 43 4d 01 a0 2d 93 5c 2f 03 5f  FF.4_BCM..-.\/._
  28e0: 53 42 5f 4d 45 4d 5f 48 50 53 55 0a 00 77 68 0b  SB_MEM_HPSU..wh.
  28f0: ff ff 60 78 60 0a 64 00 60 53 4d 42 52 0b 00 ff  ..`x`.d.`SMBR...
  2900: 0a 2a 60 0a 00 0a b2 14 18 5f 50 53 30 08 70 0a  .*`......_PS0.p.
  2910: 00 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 4c 43 44 53  .\/._SB_MEM_LCDS
  2920: 14 18 5f 50 53 33 08 70 0a 03 5c 2f 03 5f 53 42  .._PS3.p..\/._SB
  2930: 5f 4d 45 4d 5f 4c 43 44 53 14 16 5f 50 53 43 08  _MEM_LCDS.._PSC.
  2940: a4 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 4c 43 44 53  .\/._SB_MEM_LCDS
  2950: 5b 82 46 17 43 52 54 5f 08 5f 41 44 52 0b 00 01  [.F.CRT_._ADR...
  2960: 14 1f 5f 44 43 53 00 a0 13 5c 2f 03 5f 53 42 5f  .._DCS...\/._SB_
  2970: 4d 45 4d 5f 43 54 43 41 a4 0a 0f a1 04 a4 0a 0d  MEM_CTCA........
  2980: 14 48 0a 5f 44 44 43 01 a0 09 93 68 0a 01 70 0a  .H._DDC....h..p.
  2990: 80 60 a1 10 a0 0a 93 68 0a 02 70 0b 00 01 60 a1  .`.....h..p...`.
  29a0: 03 a4 00 70 0a 00 5c 2f 03 5f 53 42 5f 4d 45 4d  ...p..\/._SB_MEM
  29b0: 5f 50 52 45 53 79 68 0a 08 61 7d 61 0a 02 61 08  _PRESyh..a}a..a.
  29c0: 42 55 46 46 11 02 60 53 4d 42 52 0b 00 fe 0a 37  BUFF..`SMBR....7
  29d0: 61 0c 00 f0 0e 00 0a b2 7b 61 0b 00 ff 61 70 0b  a.......{a...ap.
  29e0: 00 01 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 4f 45 43  ..\/._SB_MEM_OEC
  29f0: 58 a2 1e 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 4f 45  X..\/._SB_MEM_OE
  2a00: 43 58 53 4d 42 52 0b 00 fe 0a 37 61 0a 00 0a b2  CXSMBR....7a....
  2a10: 70 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 50 52 45 53  p\/._SB_MEM_PRES
  2a20: 42 55 46 46 a4 42 55 46 46 14 1d 5f 44 47 53 00  BUFF.BUFF.._DGS.
  2a30: a0 12 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 4e 58 43  ..\/._SB_MEM_NXC
  2a40: 41 a4 01 a1 03 a4 00 14 37 5f 44 53 53 01 70 68  A.......7_DSS.ph
  2a50: 60 7b 60 0a 01 61 a0 14 61 70 0a 01 5c 2f 03 5f  `{`..a..ap..\/._
  2a60: 53 42 5f 4d 45 4d 5f 4e 58 43 41 a1 13 70 0a 00  SB_MEM_NXCA..p..
  2a70: 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 4e 58 43 41 14  \/._SB_MEM_NXCA.
  2a80: 18 5f 50 53 30 08 70 0a 00 5c 2f 03 5f 53 42 5f  ._PS0.p..\/._SB_
  2a90: 4d 45 4d 5f 43 52 54 53 14 18 5f 50 53 33 08 70  MEM_CRTS.._PS3.p
  2aa0: 0a 03 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 43 52 54  ..\/._SB_MEM_CRT
  2ab0: 53 14 16 5f 50 53 43 08 a4 5c 2f 03 5f 53 42 5f  S.._PSC..\/._SB_
  2ac0: 4d 45 4d 5f 43 52 54 53 5b 82 44 08 54 56 5f 5f  MEM_CRTS[.D.TV__
  2ad0: 08 5f 41 44 52 0b 00 02 14 1f 5f 44 43 53 00 a0  ._ADR....._DCS..
  2ae0: 13 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 43 54 54 41  .\/._SB_MEM_CTTA
  2af0: a4 0a 0f a1 04 a4 0a 0d 14 1d 5f 44 47 53 00 a0  .........._DGS..
  2b00: 12 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 4e 58 54 41  .\/._SB_MEM_NXTA
  2b10: a4 01 a1 03 a4 00 14 37 5f 44 53 53 01 70 68 60  .......7_DSS.ph`
  2b20: 7b 60 0a 01 61 a0 14 61 70 0a 01 5c 2f 03 5f 53  {`..a..ap..\/._S
  2b30: 42 5f 4d 45 4d 5f 4e 58 54 41 a1 13 70 0a 00 5c  B_MEM_NXTA..p..\
  2b40: 2f 03 5f 53 42 5f 4d 45 4d 5f 4e 58 54 41 5b 82  /._SB_MEM_NXTA[.
  2b50: 46 07 55 53 42 31 08 5f 41 44 52 0c 00 00 1d 00  F.USB1._ADR.....
  2b60: 5b 82 28 48 55 42 31 08 5f 41 44 52 0a 00 5b 82  [.(HUB1._ADR..[.
  2b70: 0c 50 4f 54 31 08 5f 41 44 52 0a 01 5b 82 0c 50  .POT1._ADR..[..P
  2b80: 4f 54 32 08 5f 41 44 52 0a 02 08 5f 50 52 57 12  OT2._ADR..._PRW.
  2b90: 06 02 0a 03 0a 03 14 2f 5f 50 53 57 01 a0 14 68  ......./_PSW...h
  2ba0: 70 0a 01 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 57 45  p..\/._SB_MEM_WE
  2bb0: 44 33 a1 13 70 0a 00 5c 2f 03 5f 53 42 5f 4d 45  D3..p..\/._SB_ME
  2bc0: 4d 5f 57 45 44 33 5b 82 46 07 55 53 42 32 08 5f  M_WED3[.F.USB2._
  2bd0: 41 44 52 0c 01 00 1d 00 5b 82 28 48 55 42 32 08  ADR.....[.(HUB2.
  2be0: 5f 41 44 52 0a 00 5b 82 0c 50 4f 54 33 08 5f 41  _ADR..[..POT3._A
  2bf0: 44 52 0a 01 5b 82 0c 50 4f 54 34 08 5f 41 44 52  DR..[..POT4._ADR
  2c00: 0a 02 08 5f 50 52 57 12 06 02 0a 04 0a 03 14 2f  ..._PRW......../
  2c10: 5f 50 53 57 01 a0 14 68 70 0a 01 5c 2f 03 5f 53  _PSW...hp..\/._S
  2c20: 42 5f 4d 45 4d 5f 57 45 44 33 a1 13 70 0a 00 5c  B_MEM_WED3..p..\
  2c30: 2f 03 5f 53 42 5f 4d 45 4d 5f 57 45 44 33 5b 82  /._SB_MEM_WED3[.
  2c40: 43 09 55 53 42 34 08 5f 41 44 52 0c 07 00 1d 00  C.USB4._ADR.....
  2c50: 08 5f 50 52 57 12 06 02 0a 0d 0a 03 14 2f 5f 50  ._PRW......../_P
  2c60: 53 57 01 a0 14 68 70 0a 01 5c 2f 03 5f 53 42 5f  SW...hp..\/._SB_
  2c70: 4d 45 4d 5f 57 45 44 33 a1 13 70 0a 00 5c 2f 03  MEM_WED3..p..\/.
  2c80: 5f 53 42 5f 4d 45 4d 5f 57 45 44 33 5b 82 45 04  _SB_MEM_WED3[.E.
  2c90: 48 55 42 30 08 5f 41 44 52 0a 00 5b 82 0c 50 4f  HUB0._ADR..[..PO
  2ca0: 54 31 08 5f 41 44 52 0a 01 5b 82 0c 50 4f 54 32  T1._ADR..[..POT2
  2cb0: 08 5f 41 44 52 0a 02 5b 82 0c 50 4f 54 33 08 5f  ._ADR..[..POT3._
  2cc0: 41 44 52 0a 03 5b 82 0c 50 4f 54 34 08 5f 41 44  ADR..[..POT4._AD
  2cd0: 52 0a 04 5b 82 42 0b 41 4d 44 4d 08 5f 41 44 52  R..[.B.AMDM._ADR
  2ce0: 0c 06 00 1f 00 14 2c 5f 50 53 30 00 a2 13 93 5c  ......,_PS0....\
  2cf0: 2f 03 5f 53 42 5f 4d 45 4d 5f 41 43 4c 52 0a 00  /._SB_MEM_ACLR..
  2d00: 70 0a 00 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 50 4d  p..\/._SB_MEM_PM
  2d10: 44 4d 14 18 5f 50 53 33 00 70 0a 01 5c 2f 03 5f  DM.._PS3.p..\/._
  2d20: 53 42 5f 4d 45 4d 5f 50 4d 44 4d 14 1f 5f 50 53  SB_MEM_PMDM.._PS
  2d30: 43 00 a0 13 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 50  C...\/._SB_MEM_P
  2d40: 4d 44 4d a4 0a 03 a1 04 a4 0a 00 08 5f 50 52 57  MDM........._PRW
  2d50: 12 06 02 0a 05 0a 03 14 2f 5f 50 53 57 01 a0 14  ......../_PSW...
  2d60: 68 70 0a 01 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 57  hp..\/._SB_MEM_W
  2d70: 45 44 31 a1 13 70 0a 00 5c 2f 03 5f 53 42 5f 4d  ED1..p..\/._SB_M
  2d80: 45 4d 5f 57 45 44 31 5b 82 46 07 41 53 4e 44 08  EM_WED1[.F.ASND.
  2d90: 5f 41 44 52 0c 05 00 1f 00 14 2c 5f 50 53 30 00  _ADR......,_PS0.
  2da0: a2 13 93 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 41 43  ...\/._SB_MEM_AC
  2db0: 4c 52 0a 00 70 0a 00 5c 2f 03 5f 53 42 5f 4d 45  LR..p..\/._SB_ME
  2dc0: 4d 5f 50 53 4e 44 14 18 5f 50 53 33 00 70 0a 01  M_PSND.._PS3.p..
  2dd0: 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 50 53 4e 44 14  \/._SB_MEM_PSND.
  2de0: 1f 5f 50 53 43 00 a0 13 5c 2f 03 5f 53 42 5f 4d  ._PSC...\/._SB_M
  2df0: 45 4d 5f 50 53 4e 44 a4 0a 03 a1 04 a4 0a 00 14  EM_PSND.........
  2e00: 4f 19 5f 49 4e 49 00 70 5c 2f 03 5f 53 42 5f 4d  O._INI.p\/._SB_M
  2e10: 45 4d 5f 42 45 53 31 5c 2f 03 5f 53 42 5f 4d 45  EM_BES1\/._SB_ME
  2e20: 4d 5f 42 54 31 46 70 0a 00 5c 2f 03 5f 53 42 5f  M_BT1Fp..\/._SB_
  2e30: 4d 45 4d 5f 44 53 50 57 70 0a 00 5c 2f 03 5f 53  MEM_DSPWp..\/._S
  2e40: 42 5f 4d 45 4d 5f 56 47 41 46 70 0a 00 5c 2f 03  B_MEM_VGAFp..\/.
  2e50: 5f 53 42 5f 4d 45 4d 5f 56 57 45 30 70 0a 00 5c  _SB_MEM_VWE0p..\
  2e60: 2f 03 5f 53 42 5f 4d 45 4d 5f 56 57 45 31 70 0a  /._SB_MEM_VWE1p.
  2e70: 00 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 50 50 53 43  .\/._SB_MEM_PPSC
  2e80: 70 0a 00 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 53 50  p..\/._SB_MEM_SP
  2e90: 53 43 70 0a 00 5c 2f 03 5f 53 42 5f 4d 45 4d 5f  SCp..\/._SB_MEM_
  2ea0: 47 50 39 31 70 0a 00 60 a0 48 04 43 4d 50 53 5c  GP91p..`.H.CMPS\
  2eb0: 5f 4f 53 5f 0d 4d 69 63 72 6f 73 6f 66 74 20 57  _OS_.Microsoft W
  2ec0: 69 6e 64 6f 77 73 20 4e 54 00 70 0a 03 60 a0 22  indows NT.p..`."
  2ed0: 5b 12 5c 5f 4f 53 49 61 a0 18 5c 5f 4f 53 49 0d  [.\_OSIa..\_OSI.
  2ee0: 57 69 6e 64 6f 77 73 20 32 30 30 31 00 70 0a 04  Windows 2001.p..
  2ef0: 60 a1 4b 05 a0 21 43 4d 50 53 5c 5f 4f 53 5f 0d  `.K..!CMPS\_OS_.
  2f00: 4d 69 63 72 6f 73 6f 66 74 20 57 69 6e 64 6f 77  Microsoft Window
  2f10: 73 00 70 0a 01 60 a0 36 43 4d 50 53 5c 5f 4f 53  s.p..`.6CMPS\_OS
  2f20: 5f 0d 4d 69 63 72 6f 73 6f 66 74 20 57 69 6e 64  _.Microsoft Wind
  2f30: 6f 77 73 4d 45 3a 4d 69 6c 6c 65 6e 6e 69 75 6d  owsME:Millennium
  2f40: 20 45 64 69 74 69 6f 6e 00 70 0a 02 60 70 60 5c   Edition.p..`p`\
  2f50: 2f 03 5f 53 42 5f 4d 45 4d 5f 4f 53 49 44 44 49  /._SB_MEM_OSIDDI
  2f60: 53 5f 0a 14 53 4d 42 52 0b 00 ff 0a 1e 0a 01 0a  S_..SMBR........
  2f70: 00 0a b2 70 0a 01 5c 2f 03 5f 53 42 5f 4d 45 4d  ...p..\/._SB_MEM
  2f80: 5f 50 41 52 31 70 0a 60 5c 2f 05 5f 53 42 5f 50  _PAR1p.`\/._SB_P
  2f90: 43 49 30 46 4e 43 30 53 59 53 52 54 52 50 34 5b  CI0FNC0SYSRTRP4[
  2fa0: 82 46 06 4c 49 44 5f 08 5f 48 49 44 0c 41 d0 0c  .F.LID_._HID.A..
  2fb0: 0d 14 16 5f 4c 49 44 00 a4 5c 2f 03 5f 53 42 5f  ..._LID..\/._SB_
  2fc0: 4d 45 4d 5f 4c 49 44 53 08 5f 50 52 57 12 06 02  MEM_LIDS._PRW...
  2fd0: 0a 0b 0a 04 14 32 5f 50 53 57 01 a0 17 93 68 0a  .....2_PSW....h.
  2fe0: 00 70 0a 00 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 45  .p..\/._SB_MEM_E
  2ff0: 57 4c 44 a1 13 70 0a 01 5c 2f 03 5f 53 42 5f 4d  WLD..p..\/._SB_M
  3000: 45 4d 5f 45 57 4c 44 5b 82 4a 34 42 41 54 31 08  EM_EWLD[.J4BAT1.
  3010: 5f 48 49 44 0c 41 d0 0c 0a 08 5f 55 49 44 0a 01  _HID.A...._UID..
  3020: 08 5f 50 43 4c 12 07 01 5c 5f 53 42 5f 14 1f 5f  ._PCL...\_SB_.._
  3030: 53 54 41 00 a0 13 5c 2f 03 5f 53 42 5f 4d 45 4d  STA...\/._SB_MEM
  3040: 5f 42 45 53 31 a4 0a 1f a1 04 a4 0a 0f 14 42 19  _BES1.........B.
  3050: 5f 42 49 46 00 08 42 55 46 46 12 02 0d 70 0a 00  _BIF..BUFF...p..
  3060: 88 42 55 46 46 0a 00 00 70 5c 2f 03 5f 53 42 5f  .BUFF...p\/._SB_
  3070: 4d 45 4d 5f 42 44 56 31 62 77 5c 2f 03 5f 53 42  MEM_BDV1bw\/._SB
  3080: 5f 4d 45 4d 5f 42 44 43 31 62 60 78 60 0b e8 03  _MEM_BDC1b`x`...
  3090: 61 60 70 60 88 42 55 46 46 0a 01 00 77 5c 2f 03  a`p`.BUFF...w\/.
  30a0: 5f 53 42 5f 4d 45 4d 5f 42 4c 46 31 62 60 78 60  _SB_MEM_BLF1b`x`
  30b0: 0b e8 03 61 60 70 60 88 42 55 46 46 0a 02 00 70  ...a`p`.BUFF...p
  30c0: 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 42 54 43 31 88  \/._SB_MEM_BTC1.
  30d0: 42 55 46 46 0a 03 00 70 5c 2f 03 5f 53 42 5f 4d  BUFF...p\/._SB_M
  30e0: 45 4d 5f 42 44 56 31 88 42 55 46 46 0a 04 00 77  EM_BDV1.BUFF...w
  30f0: 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 42 43 57 31 62  \/._SB_MEM_BCW1b
  3100: 60 78 60 0b e8 03 61 60 70 60 88 42 55 46 46 0a  `x`...a`p`.BUFF.
  3110: 05 00 77 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 42 43  ..w\/._SB_MEM_BC
  3120: 4c 31 62 60 78 60 0b e8 03 61 60 70 60 88 42 55  L1b`x`...a`p`.BU
  3130: 46 46 0a 06 00 77 5c 2f 03 5f 53 42 5f 4d 45 4d  FF...w\/._SB_MEM
  3140: 5f 42 47 31 31 62 60 78 60 0b e8 03 61 60 70 60  _BG11b`x`...a`p`
  3150: 88 42 55 46 46 0a 07 00 77 5c 2f 03 5f 53 42 5f  .BUFF...w\/._SB_
  3160: 4d 45 4d 5f 42 47 32 31 62 60 78 60 0b e8 03 61  MEM_BG21b`x`...a
  3170: 60 70 60 88 42 55 46 46 0a 08 00 70 5c 2f 03 5f  `p`.BUFF...p\/._
  3180: 53 42 5f 4d 45 4d 5f 42 4d 4e 31 88 42 55 46 46  SB_MEM_BMN1.BUFF
  3190: 0a 09 00 70 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 42  ...p\/._SB_MEM_B
  31a0: 53 4e 31 88 42 55 46 46 0a 0a 00 70 5c 2f 03 5f  SN1.BUFF...p\/._
  31b0: 53 42 5f 4d 45 4d 5f 42 54 50 31 88 42 55 46 46  SB_MEM_BTP1.BUFF
  31c0: 0a 0b 00 70 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 42  ...p\/._SB_MEM_B
  31d0: 4f 49 31 88 42 55 46 46 0a 0c 00 a4 42 55 46 46  OI1.BUFF....BUFF
  31e0: 14 4d 12 5f 42 53 54 00 a0 49 06 5c 2f 03 5f 53  .M._BST..I.\/._S
  31f0: 42 5f 4d 45 4d 5f 42 45 53 32 7b 5c 2f 03 5f 53  B_MEM_BES2{\/._S
  3200: 42 5f 4d 45 4d 5f 42 53 54 31 0a 03 60 7b 5c 2f  B_MEM_BST1..`{\/
  3210: 03 5f 53 42 5f 4d 45 4d 5f 42 53 54 32 0a 03 61  ._SB_MEM_BST2..a
  3220: a0 2b 91 60 61 77 5c 2f 03 5f 53 42 5f 4d 45 4d  .+.`aw\/._SB_MEM
  3230: 5f 42 50 52 31 5c 2f 03 5f 53 42 5f 4d 45 4d 5f  _BPR1\/._SB_MEM_
  3240: 42 44 56 31 60 78 60 0b d0 07 61 60 a1 05 70 0a  BDV1`x`...a`..p.
  3250: 00 60 a1 43 04 a0 3a 90 5c 2f 03 5f 53 42 5f 4d  .`.C..:.\/._SB_M
  3260: 45 4d 5f 42 53 54 31 0a 03 77 5c 2f 03 5f 53 42  EM_BST1..w\/._SB
  3270: 5f 4d 45 4d 5f 42 50 52 31 5c 2f 03 5f 53 42 5f  _MEM_BPR1\/._SB_
  3280: 4d 45 4d 5f 42 44 56 31 60 78 60 0b e8 03 61 60  MEM_BDV1`x`...a`
  3290: a1 05 70 0a 00 60 08 42 55 46 46 12 02 04 70 5c  ..p..`.BUFF...p\
  32a0: 2f 03 5f 53 42 5f 4d 45 4d 5f 42 53 54 31 88 42  /._SB_MEM_BST1.B
  32b0: 55 46 46 0a 00 00 70 60 88 42 55 46 46 0a 01 00  UFF...p`.BUFF...
  32c0: 77 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 42 52 43 31  w\/._SB_MEM_BRC1
  32d0: 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 42 44 56 31 60  \/._SB_MEM_BDV1`
  32e0: 78 60 0b e8 03 61 60 70 60 88 42 55 46 46 0a 02  x`...a`p`.BUFF..
  32f0: 00 70 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 42 50 56  .p\/._SB_MEM_BPV
  3300: 31 88 42 55 46 46 0a 03 00 a4 42 55 46 46 14 44  1.BUFF....BUFF.D
  3310: 04 5f 42 54 50 01 70 0a 01 5c 2f 03 5f 53 42 5f  ._BTP.p..\/._SB_
  3320: 4d 45 4d 5f 50 41 52 31 70 68 5c 2f 03 5f 53 42  MEM_PAR1ph\/._SB
  3330: 5f 4d 45 4d 5f 50 41 52 32 70 0a 61 5c 2f 05 5f  _MEM_PAR2p.a\/._
  3340: 53 42 5f 50 43 49 30 46 4e 43 30 53 59 53 52 54  SB_PCI0FNC0SYSRT
  3350: 52 50 34 5b 82 22 50 57 52 42 08 5f 48 49 44 0c  RP4[."PWRB._HID.
  3360: 41 d0 0c 0c 08 5f 50 52 57 12 06 02 0a 08 0a 04  A...._PRW.......
  3370: 08 5f 53 54 41 0a 0b 5b 82 4a 04 41 44 50 31 08  ._STA..[.J.ADP1.
  3380: 5f 48 49 44 0d 41 43 50 49 30 30 30 33 00 08 5f  _HID.ACPI0003.._
  3390: 50 43 4c 12 11 02 5c 5f 53 42 5f 5c 2e 5f 53 42  PCL...\_SB_\._SB
  33a0: 5f 42 41 54 31 08 5f 53 54 41 0a 0f 14 16 5f 50  _BAT1._STA...._P
  33b0: 53 52 00 a4 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 41  SR..\/._SB_MEM_A
  33c0: 43 53 54 5b 82 43 8c 56 41 4c 5a 08 5f 48 49 44  CST[.C.VALZ._HID
  33d0: 0c 51 f3 62 08 08 5f 44 44 4e 0d 56 41 4c 5a 65  .Q.b.._DDN.VALZe
  33e0: 6e 65 72 61 6c 00 14 41 04 5f 53 54 41 00 a0 36  neral..A._STA..6
  33f0: 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 57 41 4b 53 a2  \/._SB_MEM_WAKS.
  3400: 13 93 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 41 43 56  ..\/._SB_MEM_ACV
  3410: 41 0a 00 70 0a 00 5c 2f 03 5f 53 42 5f 4d 45 4d  A..p..\/._SB_MEM
  3420: 5f 57 41 4b 53 a4 0a 0b 14 27 45 4e 41 42 00 70  _WAKS....'ENAB.p
  3430: 0a 01 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 56 41 4c  ..\/._SB_MEM_VAL
  3440: 46 53 4d 42 52 0b 00 ff 0a 16 0a 01 0a 00 0a b2  FSMBR...........
  3450: 14 4f 05 49 4e 46 4f 00 70 0a 00 5c 2f 03 5f 53  .O.INFO.p..\/._S
  3460: 42 5f 4d 45 4d 5f 4f 45 43 58 53 4d 42 52 0b 00  B_MEM_OECXSMBR..
  3470: fe 0a 16 0a 00 0a 00 0a b2 a0 26 92 93 5c 2f 03  ..........&..\/.
  3480: 5f 53 42 5f 4d 45 4d 5f 4f 45 41 58 0a 00 70 0a  _SB_MEM_OEAX..p.
  3490: 00 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 4f 45 43 58  .\/._SB_MEM_OECX
  34a0: a4 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 4f 45 43 58  .\/._SB_MEM_OECX
  34b0: 14 42 0b 47 48 43 49 0e 8a 68 0a 00 52 45 41 58  .B.GHCI..h..REAX
  34c0: 8b 69 0a 00 52 5f 42 58 7b 52 45 41 58 0b 00 ff  .i..R_BX{REAX...
  34d0: 60 a0 4f 04 93 60 0b 00 fe a0 17 93 52 5f 42 58  `.O..`......R_BX
  34e0: 0b 00 c0 a4 47 30 30 30 60 52 5f 42 58 6a 6b 6c  ....G000`R_BXjkl
  34f0: 6d a0 17 93 52 5f 42 58 0b 00 c8 a4 47 38 30 30  m...R_BX....G800
  3500: 60 52 5f 42 58 6a 6b 6c 6d a0 17 93 52 5f 42 58  `R_BXjklm...R_BX
  3510: 0b 01 c8 a4 47 38 30 31 60 52 5f 42 58 6a 6b 6c  ....G801`R_BXjkl
  3520: 6d a0 36 93 60 0b 00 ff a0 17 93 52 5f 42 58 0b  m.6.`......R_BX.
  3530: 00 c0 a4 47 30 30 30 60 52 5f 42 58 6a 6b 6c 6d  ...G000`R_BXjklm
  3540: a0 17 93 52 5f 42 58 0b 01 c8 a4 47 38 30 31 60  ...R_BX....G801`
  3550: 52 5f 42 58 6a 6b 6c 6d a4 47 43 48 30 68 69 6a  R_BXjklm.GCH0hij
  3560: 6b 6c 6d 14 40 0d 47 43 48 30 06 70 6c 5c 2f 03  klm.@.GCH0.pl\/.
  3570: 5f 53 42 5f 4d 45 4d 5f 49 45 53 49 70 6d 5c 2f  _SB_MEM_IESIpm\/
  3580: 03 5f 53 42 5f 4d 45 4d 5f 49 45 44 49 53 4d 42  ._SB_MEM_IEDISMB
  3590: 52 68 69 6a 6b 0a b2 08 42 55 46 46 12 02 06 70  Rhijk...BUFF...p
  35a0: 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 4f 45 41 58 88  \/._SB_MEM_OEAX.
  35b0: 42 55 46 46 0a 00 00 70 5c 2f 03 5f 53 42 5f 4d  BUFF...p\/._SB_M
  35c0: 45 4d 5f 4f 45 42 58 88 42 55 46 46 0a 01 00 70  EM_OEBX.BUFF...p
  35d0: 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 4f 45 43 58 88  \/._SB_MEM_OECX.
  35e0: 42 55 46 46 0a 02 00 70 5c 2f 03 5f 53 42 5f 4d  BUFF...p\/._SB_M
  35f0: 45 4d 5f 4f 45 44 58 88 42 55 46 46 0a 03 00 70  EM_OEDX.BUFF...p
  3600: 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 4f 45 53 49 88  \/._SB_MEM_OESI.
  3610: 42 55 46 46 0a 04 00 70 5c 2f 03 5f 53 42 5f 4d  BUFF...p\/._SB_M
  3620: 45 4d 5f 4f 45 44 49 88 42 55 46 46 0a 05 00 a4  EM_OEDI.BUFF....
  3630: 42 55 46 46 14 4f 2d 47 30 30 30 06 08 42 55 46  BUFF.O-G000..BUF
  3640: 46 12 02 06 8a 6a 0a 00 52 45 43 58 8a 6b 0a 00  F....j..RECX.k..
  3650: 52 45 44 58 8a 6c 0a 00 52 45 53 49 8a 6d 0a 00  REDX.l..RESI.m..
  3660: 52 45 44 49 8c 6a 0a 00 52 5f 43 4c 70 0a 00 88  REDI.j..R_CLp...
  3670: 42 55 46 46 0a 00 00 70 69 88 42 55 46 46 0a 01  BUFF...pi.BUFF..
  3680: 00 70 52 45 43 58 88 42 55 46 46 0a 02 00 70 52  .pRECX.BUFF...pR
  3690: 45 44 58 88 42 55 46 46 0a 03 00 70 52 45 53 49  EDX.BUFF...pRESI
  36a0: 88 42 55 46 46 0a 04 00 70 52 45 44 49 88 42 55  .BUFF...pREDI.BU
  36b0: 46 46 0a 05 00 a0 4b 24 5c 2f 03 5f 53 42 5f 4d  FF....K$\/._SB_M
  36c0: 45 4d 5f 47 43 56 53 a0 40 0b 93 68 0b 00 fe a0  EM_GCVS.@..h....
  36d0: 23 93 52 5f 43 4c 0a 00 70 5c 2f 03 5f 53 42 5f  #.R_CL..p\/._SB_
  36e0: 4d 45 4d 5f 54 4e 56 53 60 70 60 88 42 55 46 46  MEM_TNVS`p`.BUFF
  36f0: 0a 02 00 a1 44 08 a0 4d 05 90 92 95 52 5f 43 4c  ....D..M....R_CL
  3700: 0a 01 92 94 52 5f 43 4c 0a 04 70 52 5f 43 4c 60  ....R_CL..pR_CL`
  3710: 7d 60 0b 00 30 60 53 4d 42 52 0b 00 fa 60 0a 00  }`..0`SMBR...`..
  3720: 0a 00 0a b2 70 5c 2f 03 5f 53 42 5f 4d 45 4d 5f  ....p\/._SB_MEM_
  3730: 4f 45 43 58 88 42 55 46 46 0a 02 00 70 5c 2f 03  OECX.BUFF...p\/.
  3740: 5f 53 42 5f 4d 45 4d 5f 4f 45 44 58 88 42 55 46  _SB_MEM_OEDX.BUF
  3750: 46 0a 03 00 a1 23 a0 13 93 52 5f 43 4c 0a 05 70  F....#...R_CL..p
  3760: 0a 21 88 42 55 46 46 0a 02 00 a1 0d 70 0b 00 83  .!.BUFF.....p...
  3770: 88 42 55 46 46 0a 00 00 a1 48 18 8b 6b 0a 00 52  .BUFF....H..k..R
  3780: 5f 44 58 a0 37 93 52 5f 43 4c 0a 00 a0 1a 93 52  _DX.7.R_CL.....R
  3790: 5f 44 58 0a 00 70 0a 00 5c 2f 03 5f 53 42 5f 4d  _DX..p..\/._SB_M
  37a0: 45 4d 5f 54 4e 56 53 a1 13 70 0a 01 5c 2f 03 5f  EM_TNVS..p..\/._
  37b0: 53 42 5f 4d 45 4d 5f 54 4e 56 53 a1 45 14 a0 24  SB_MEM_TNVS.E..$
  37c0: 93 52 5f 43 4c 0a 01 70 52 5f 43 4c 60 7d 60 0b  .R_CL..pR_CL`}`.
  37d0: 80 30 60 53 4d 42 52 0b 00 fa 60 52 5f 44 58 0a  .0`SMBR...`R_DX.
  37e0: 00 0a b2 a1 4d 11 a0 4c 10 93 52 5f 43 4c 0a 02  ....M..L..R_CL..
  37f0: 82 52 5f 44 58 60 70 60 5c 2f 03 5f 53 42 5f 4d  .R_DX`p`\/._SB_M
  3800: 45 4d 5f 4e 58 44 44 a0 47 0d 95 5c 2f 03 5f 53  EM_NXDD.G..\/._S
  3810: 42 5f 4d 45 4d 5f 4f 53 49 44 0a 03 7d 60 0b 00  B_MEM_OSID..}`..
  3820: 01 60 53 4d 42 52 0b 00 ff 0a 1c 60 0a 00 0a b2  .`SMBR.....`....
  3830: 7b 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 4f 45 41 58  {\/._SB_MEM_OEAX
  3840: 0b 00 ff 60 a0 4a 09 93 60 0a 00 70 0a 80 60 a2  ...`.J..`..p..`.
  3850: 27 93 60 0a 80 53 4d 42 52 0b 00 fe 0a 1c 0a 00  '.`..SMBR.......
  3860: 0a 00 0a b2 7b 5c 2f 03 5f 53 42 5f 4d 45 4d 5f  ....{\/._SB_MEM_
  3870: 4f 45 43 58 0a 80 60 a0 47 06 5c 2f 03 5f 53 42  OECX..`.G.\/._SB
  3880: 5f 4d 45 4d 5f 43 54 4c 41 a0 45 05 93 5c 2f 03  _MEM_CTLA.E..\/.
  3890: 5f 53 42 5f 4d 45 4d 5f 4c 43 44 53 0a 00 53 4d  _SB_MEM_LCDS..SM
  38a0: 42 52 0b 00 ff 0a 02 0a 01 0a 00 0a b2 70 0a 01  BR...........p..
  38b0: 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 4f 45 44 58 a2  \/._SB_MEM_OEDX.
  38c0: 1f 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 4f 45 44 58  .\/._SB_MEM_OEDX
  38d0: 53 4d 42 52 0b 00 fe 0a 02 0a 00 0a 00 0a b2 a1  SMBR............
  38e0: 13 86 5c 2f 03 5f 53 42 5f 50 43 49 30 56 47 41  ..\/._SB_PCI0VGA
  38f0: 5f 0a 80 a1 0d 70 0b 00 83 88 42 55 46 46 0a 00  _....p....BUFF..
  3900: 00 a1 0d 70 0b 00 80 88 42 55 46 46 0a 00 00 a4  ...p....BUFF....
  3910: 42 55 46 46 14 43 08 47 38 30 30 06 70 5c 2f 03  BUFF.C.G800.p\/.
  3920: 5f 53 42 5f 4d 45 4d 5f 4f 53 50 43 60 08 42 55  _SB_MEM_OSPC`.BU
  3930: 46 46 12 02 06 8a 6b 0a 00 52 45 44 58 8a 6c 0a  FF....k..REDX.l.
  3940: 00 52 45 53 49 8a 6d 0a 00 52 45 44 49 70 0a 00  .RESI.m..REDIp..
  3950: 88 42 55 46 46 0a 00 00 70 69 88 42 55 46 46 0a  .BUFF...pi.BUFF.
  3960: 01 00 70 60 88 42 55 46 46 0a 02 00 70 52 45 44  ..p`.BUFF...pRED
  3970: 58 88 42 55 46 46 0a 03 00 70 52 45 53 49 88 42  X.BUFF...pRESI.B
  3980: 55 46 46 0a 04 00 70 52 45 44 49 88 42 55 46 46  UFF...pREDI.BUFF
  3990: 0a 05 00 a4 42 55 46 46 14 40 16 47 38 30 31 06  ....BUFF.@.G801.
  39a0: 8a 6a 0a 00 52 45 43 58 8a 6b 0a 00 52 45 44 58  .j..RECX.k..REDX
  39b0: 8a 6c 0a 00 52 45 53 49 8a 6d 0a 00 52 45 44 49  .l..RESI.m..REDI
  39c0: 70 0b 00 83 60 70 52 45 43 58 61 a0 4d 06 93 52  p...`pRECXa.M..R
  39d0: 45 44 58 0a 01 70 0a 00 60 a0 31 93 68 0b 00 fe  EDX..p..`.1.h...
  39e0: 70 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 50 55 4c 44  p\/._SB_MEM_PULD
  39f0: 61 70 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 50 55 4c  ap\/._SB_MEM_PUL
  3a00: 41 62 79 62 0a 08 62 7d 61 62 61 a1 2d 7b 61 0a  Abyb..b}aba.-{a.
  3a10: ff 62 7a 61 0a 08 63 70 62 5c 2f 03 5f 53 42 5f  .bza..cpb\/._SB_
  3a20: 4d 45 4d 5f 50 55 4c 44 70 63 5c 2f 03 5f 53 42  MEM_PULDpc\/._SB
  3a30: 5f 4d 45 4d 5f 50 55 4c 41 a0 4d 06 93 52 45 44  _MEM_PULA.M..RED
  3a40: 58 0a 02 70 0a 00 60 a0 31 93 68 0b 00 fe 70 5c  X..p..`.1.h...p\
  3a50: 2f 03 5f 53 42 5f 4d 45 4d 5f 42 43 4c 44 61 70  /._SB_MEM_BCLDap
  3a60: 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 42 43 4c 41 62  \/._SB_MEM_BCLAb
  3a70: 79 62 0a 08 62 7d 61 62 61 a1 2d 7b 61 0a ff 62  yb..b}aba.-{a..b
  3a80: 7a 61 0a 08 63 70 62 5c 2f 03 5f 53 42 5f 4d 45  za..cpb\/._SB_ME
  3a90: 4d 5f 42 43 4c 44 70 63 5c 2f 03 5f 53 42 5f 4d  M_BCLDpc\/._SB_M
  3aa0: 45 4d 5f 42 43 4c 41 08 42 55 46 46 12 02 06 70  EM_BCLA.BUFF...p
  3ab0: 60 88 42 55 46 46 0a 00 00 70 69 88 42 55 46 46  `.BUFF...pi.BUFF
  3ac0: 0a 01 00 70 61 88 42 55 46 46 0a 02 00 70 52 45  ...pa.BUFF...pRE
  3ad0: 44 58 88 42 55 46 46 0a 03 00 70 52 45 53 49 88  DX.BUFF...pRESI.
  3ae0: 42 55 46 46 0a 04 00 70 52 45 44 49 88 42 55 46  BUFF...pREDI.BUF
  3af0: 46 0a 05 00 a4 42 55 46 46 14 4c 04 56 4e 54 46  F....BUFF.L.VNTF
  3b00: 01 7b 68 0b ff ff 60 7a 68 0a 10 61 a0 39 93 61  .{h...`zh..a.9.a
  3b10: 0a 01 a0 21 92 93 5c 2f 03 5f 53 42 5f 4d 45 4d  ...!..\/._SB_MEM
  3b20: 5f 48 54 54 45 0a 01 86 5c 2e 5f 50 52 5f 43 50  _HTTE...\._PR_CP
  3b30: 55 30 0a 80 a1 11 53 4d 42 52 0b 00 fa 0b 00 32  U0....SMBR.....2
  3b40: 0a 00 0a 00 0a b2 14 41 14 45 48 53 53 00 08 42  .......A.EHSS..B
  3b50: 55 46 46 11 23 0a 20 07 00 00 00 5a 00 00 00 32  UFF.#. ....Z...2
  3b60: 00 00 00 05 00 00 00 03 00 00 00 e8 03 00 00 3c  ...............<
  3b70: 00 00 00 05 00 00 00 a0 4b 10 92 93 5c 2f 03 5f  ........K...\/._
  3b80: 53 42 5f 4d 45 4d 5f 4d 53 50 30 0a 00 8b 42 55  SB_MEM_MSP0...BU
  3b90: 46 46 0a 00 49 4e 46 30 8a 42 55 46 46 0a 04 53  FF..INF0.BUFF..S
  3ba0: 53 50 30 8a 42 55 46 46 0a 08 53 53 50 31 8a 42  SP0.BUFF..SSP1.B
  3bb0: 55 46 46 0a 0c 53 53 43 48 8a 42 55 46 46 0a 10  UFF..SSCH.BUFF..
  3bc0: 53 53 43 4c 8a 42 55 46 46 0a 14 53 53 53 49 8a  SSCL.BUFF..SSSI.
  3bd0: 42 55 46 46 0a 18 53 53 53 30 8a 42 55 46 46 0a  BUFF..SSS0.BUFF.
  3be0: 1c 53 53 52 30 78 87 42 55 46 46 0a 04 61 60 76  .SSR0x.BUFF..a`v
  3bf0: 60 70 60 49 4e 46 30 70 5c 2f 03 5f 53 42 5f 4d  `p`INF0p\/._SB_M
  3c00: 45 4d 5f 4d 53 50 30 53 53 50 30 70 5c 2f 03 5f  EM_MSP0SSP0p\/._
  3c10: 53 42 5f 4d 45 4d 5f 4d 53 50 31 53 53 50 31 70  SB_MEM_MSP1SSP1p
  3c20: 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 4d 53 43 30 53  \/._SB_MEM_MSC0S
  3c30: 53 43 48 70 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 4d  SCHp\/._SB_MEM_M
  3c40: 53 43 31 53 53 43 4c 70 5c 2f 03 5f 53 42 5f 4d  SC1SSCLp\/._SB_M
  3c50: 45 4d 5f 4d 53 53 49 53 53 53 49 70 5c 2f 03 5f  EM_MSSISSSIp\/._
  3c60: 53 42 5f 4d 45 4d 5f 4d 53 53 53 53 53 53 30 70  SB_MEM_MSSSSSS0p
  3c70: 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 4d 53 53 52 53  \/._SB_MEM_MSSRS
  3c80: 53 52 30 a4 42 55 46 46 10 48 1a 5c 5f 54 5a 5f  SR0.BUFF.H.\_TZ_
  3c90: 5b 84 46 06 50 46 41 4e 00 00 00 14 2e 5f 53 54  [.F.PFAN....._ST
  3ca0: 41 00 53 4d 42 52 0b 00 fa 0b 01 22 0a 00 0a 00  A.SMBR....."....
  3cb0: 0a b2 a0 12 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 4f  ....\/._SB_MEM_O
  3cc0: 45 43 58 a4 01 a1 04 a4 0a 00 14 16 5f 4f 4e 5f  ECX........._ON_
  3cd0: 08 53 4d 42 52 0b 00 fa 0b 00 22 0a ff 0a 00 0a  .SMBR.....".....
  3ce0: b2 14 16 5f 4f 46 46 08 53 4d 42 52 0b 00 fa 0b  ..._OFF.SMBR....
  3cf0: 00 22 0a 00 0a 00 0a b2 5b 82 21 46 41 4e 5f 08  ."......[.!FAN_.
  3d00: 5f 48 49 44 0c 41 d0 0c 0b 08 5f 50 52 30 12 0c  _HID.A...._PR0..
  3d10: 01 5c 2e 5f 54 5a 5f 50 46 41 4e 5b 85 44 11 54  .\._TZ_PFAN[.D.T
  3d20: 48 52 4d 14 45 06 5f 54 4d 50 00 a0 2c 92 94 5c  HRM.E._TMP..,..\
  3d30: 2f 03 5f 53 42 5f 4d 45 4d 5f 54 4d 50 31 0b 4c  /._SB_MEM_TMP1.L
  3d40: 0b 70 0b 4c 0b 5c 2f 03 5f 53 42 5f 4d 45 4d 5f  .p.L.\/._SB_MEM_
  3d50: 41 53 54 31 a4 0b 4c 0b a1 30 70 5c 2f 03 5f 53  AST1..L..0p\/._S
  3d60: 42 5f 4d 45 4d 5f 54 4d 50 31 5c 2f 03 5f 53 42  B_MEM_TMP1\/._SB
  3d70: 5f 4d 45 4d 5f 41 53 54 31 a4 5c 2f 03 5f 53 42  _MEM_AST1.\/._SB
  3d80: 5f 4d 45 4d 5f 54 4d 50 31 14 16 5f 41 43 30 00  _MEM_TMP1.._AC0.
  3d90: a4 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 41 43 30 31  .\/._SB_MEM_AC01
  3da0: 14 16 5f 41 43 31 00 a4 5c 2f 03 5f 53 42 5f 4d  .._AC1..\/._SB_M
  3db0: 45 4d 5f 41 43 31 31 08 5f 41 4c 30 12 0c 01 5c  EM_AC11._AL0...\
  3dc0: 2e 5f 54 5a 5f 46 41 4e 5f 08 5f 41 4c 31 12 0c  ._TZ_FAN_._AL1..
  3dd0: 01 5c 2e 5f 54 5a 5f 46 41 4e 5f 14 16 5f 50 53  .\._TZ_FAN_.._PS
  3de0: 56 00 a4 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 50 53  V..\/._SB_MEM_PS
  3df0: 56 31 08 5f 50 53 4c 12 0c 01 5c 2e 5f 50 52 5f  V1._PSL...\._PR_
  3e00: 43 50 55 30 14 16 5f 43 52 54 00 a4 5c 2f 03 5f  CPU0.._CRT..\/._
  3e10: 53 42 5f 4d 45 4d 5f 43 52 54 31 08 5f 54 43 31  SB_MEM_CRT1._TC1
  3e20: 0a 09 08 5f 54 43 32 0a 02 08 5f 54 53 50 0b 08  ..._TC2..._TSP..
  3e30: 07 10 4f 51 5c 5f 47 50 45 14 2a 5f 4c 30 33 08  ..OQ\_GPE.*_L03.
  3e40: 86 5c 2f 03 5f 53 42 5f 50 43 49 30 55 53 42 31  .\/._SB_PCI0USB1
  3e50: 0a 02 70 0a 00 5c 2f 03 5f 53 42 5f 4d 45 4d 5f  ..p..\/._SB_MEM_
  3e60: 47 50 37 35 14 2a 5f 4c 30 34 08 86 5c 2f 03 5f  GP75.*_L04..\/._
  3e70: 53 42 5f 50 43 49 30 55 53 42 32 0a 02 70 0a 00  SB_PCI0USB2..p..
  3e80: 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 47 50 37 35 14  \/._SB_MEM_GP75.
  3e90: 3b 5f 4c 30 35 08 a0 34 5c 2f 03 5f 53 42 5f 4d  ;_L05..4\/._SB_M
  3ea0: 45 4d 5f 47 50 37 33 70 0a 00 5c 2f 03 5f 53 42  EM_GP73p..\/._SB
  3eb0: 5f 4d 45 4d 5f 47 50 37 33 86 5c 2f 03 5f 53 42  _MEM_GP73.\/._SB
  3ec0: 5f 50 43 49 30 41 4d 44 4d 0a 02 14 49 38 5f 4c  _PCI0AMDM...I8_L
  3ed0: 30 38 08 70 5c 2f 04 5f 53 42 5f 50 43 49 30 50  08.p\/._SB_PCI0P
  3ee0: 43 49 42 42 52 47 42 60 79 60 0a 18 60 7d 60 0c  CIBBRGB`y`..`}`.
  3ef0: 0b b1 20 00 60 70 0a af 5c 2f 03 5f 53 42 5f 4d  .. .`p..\/._SB_M
  3f00: 45 4d 5f 49 45 44 49 53 4d 42 52 0b 00 ff 60 0a  EM_IEDISMBR...`.
  3f10: 00 0a 00 0a b2 a2 4f 33 91 5c 2f 03 5f 53 42 5f  ......O3.\/._SB_
  3f20: 4d 45 4d 5f 47 50 35 30 91 5c 2f 03 5f 53 42 5f  MEM_GP50.\/._SB_
  3f30: 4d 45 4d 5f 47 50 35 32 91 5c 2f 03 5f 53 42 5f  MEM_GP52.\/._SB_
  3f40: 4d 45 4d 5f 47 50 35 33 91 5c 2f 03 5f 53 42 5f  MEM_GP53.\/._SB_
  3f50: 4d 45 4d 5f 47 50 35 34 91 5c 2f 03 5f 53 42 5f  MEM_GP54.\/._SB_
  3f60: 4d 45 4d 5f 47 50 35 36 91 5c 2f 03 5f 53 42 5f  MEM_GP56.\/._SB_
  3f70: 4d 45 4d 5f 47 50 37 30 5c 2f 03 5f 53 42 5f 4d  MEM_GP70\/._SB_M
  3f80: 45 4d 5f 47 50 37 31 a0 44 06 5c 2f 03 5f 53 42  EM_GP71.D.\/._SB
  3f90: 5f 4d 45 4d 5f 47 50 35 30 70 0a 00 5c 2f 03 5f  _MEM_GP50p..\/._
  3fa0: 53 42 5f 4d 45 4d 5f 47 50 35 30 86 5c 2e 5f 53  SB_MEM_GP50.\._S
  3fb0: 42 5f 41 44 50 31 0a 80 a0 21 92 93 5c 2f 03 5f  B_ADP1...!..\/._
  3fc0: 53 42 5f 4d 45 4d 5f 48 54 54 45 0a 01 86 5c 2e  SB_MEM_HTTE...\.
  3fd0: 5f 50 52 5f 43 50 55 30 0a 80 a1 11 53 4d 42 52  _PR_CPU0....SMBR
  3fe0: 0b 00 fa 0b 00 32 0a 00 0a 00 0a b2 a0 40 0a 5c  .....2.......@.\
  3ff0: 2f 03 5f 53 42 5f 4d 45 4d 5f 47 50 35 32 70 0a  /._SB_MEM_GP52p.
  4000: 00 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 47 50 35 32  .\/._SB_MEM_GP52
  4010: a0 2d 93 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 42 45  .-.\/._SB_MEM_BE
  4020: 53 31 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 42 54 31  S1\/._SB_MEM_BT1
  4030: 46 86 5c 2e 5f 53 42 5f 42 41 54 31 0a 80 a1 4e  F.\._SB_BAT1...N
  4040: 04 70 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 42 45 53  .p\/._SB_MEM_BES
  4050: 31 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 42 54 31 46  1\/._SB_MEM_BT1F
  4060: a0 1d 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 42 45 53  ..\/._SB_MEM_BES
  4070: 31 86 5c 2e 5f 53 42 5f 42 41 54 31 0a 00 a1 0e  1.\._SB_BAT1....
  4080: 86 5c 2e 5f 53 42 5f 42 41 54 31 0a 01 a0 42 05  .\._SB_BAT1...B.
  4090: 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 47 50 35 33 70  \/._SB_MEM_GP53p
  40a0: 0a 00 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 47 50 35  ..\/._SB_MEM_GP5
  40b0: 33 a0 2e 92 93 5c 2f 03 5f 53 42 5f 4d 45 4d 5f  3....\/._SB_MEM_
  40c0: 54 4d 50 31 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 41  TMP1\/._SB_MEM_A
  40d0: 53 54 31 86 5c 2e 5f 54 5a 5f 54 48 52 4d 0a 80  ST1.\._TZ_THRM..
  40e0: a0 4c 05 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 47 50  .L.\/._SB_MEM_GP
  40f0: 35 34 70 0a 00 5c 2f 03 5f 53 42 5f 4d 45 4d 5f  54p..\/._SB_MEM_
  4100: 47 50 35 34 a0 38 5c 2f 03 5f 53 42 5f 4d 45 4d  GP54.8\/._SB_MEM
  4110: 5f 4c 41 4e 41 70 0a 00 5c 2f 03 5f 53 42 5f 4d  _LANAp..\/._SB_M
  4120: 45 4d 5f 4c 41 4e 41 86 5c 2f 04 5f 53 42 5f 50  EM_LANA.\/._SB_P
  4130: 43 49 30 50 43 49 42 4c 41 4e 5f 0a 01 a0 2f 5c  CI0PCIBLAN_.../\
  4140: 2f 03 5f 53 42 5f 4d 45 4d 5f 47 50 35 36 70 0a  /._SB_MEM_GP56p.
  4150: 00 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 47 50 35 36  .\/._SB_MEM_GP56
  4160: 86 5c 2e 5f 53 42 5f 42 41 54 31 0a 80 a0 47 0b  .\._SB_BAT1...G.
  4170: 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 47 50 37 30 70  \/._SB_MEM_GP70p
  4180: 0a 00 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 47 50 37  ..\/._SB_MEM_GP7
  4190: 30 a0 1d 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 56 41  0..\/._SB_MEM_VA
  41a0: 4c 46 86 5c 2e 5f 53 42 5f 56 41 4c 5a 0a 80 a0  LF.\._SB_VALZ...
  41b0: 26 93 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 48 4b 43  &.\/._SB_MEM_HKC
  41c0: 44 0a 3d 54 52 41 50 5c 2f 03 5f 53 42 5f 4d 45  D.=TRAP\/._SB_ME
  41d0: 4d 5f 48 4b 43 44 a0 4e 04 93 5c 2f 03 5f 53 42  M_HKCD.N..\/._SB
  41e0: 5f 4d 45 4d 5f 44 4f 53 32 0a 00 a0 39 93 5c 2f  _MEM_DOS2...9.\/
  41f0: 03 5f 53 42 5f 4d 45 4d 5f 48 4b 43 44 0a 3f a0  ._SB_MEM_HKCD.?.
  4200: 25 93 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 54 4e 56  %.\/._SB_MEM_TNV
  4210: 53 0a 00 86 5c 2f 03 5f 53 42 5f 50 43 49 30 56  S...\/._SB_PCI0V
  4220: 47 41 5f 0a 80 a0 2f 5c 2f 03 5f 53 42 5f 4d 45  GA_.../\/._SB_ME
  4230: 4d 5f 47 50 37 31 70 0a 00 5c 2f 03 5f 53 42 5f  M_GP71p..\/._SB_
  4240: 4d 45 4d 5f 47 50 37 31 86 5c 2e 5f 53 42 5f 4c  MEM_GP71.\._SB_L
  4250: 49 44 5f 0a 80 14 4f 0b 5f 4c 30 42 08 a0 45 05  ID_...O._L0B..E.
  4260: 92 93 5c 2f 05 5f 53 42 5f 50 43 49 30 50 43 49  ..\/._SB_PCI0PCI
  4270: 42 4c 41 4e 5f 50 4c 56 49 0b ff ff 7b 5c 2f 05  BLAN_PLVI...{\/.
  4280: 5f 53 42 5f 50 43 49 30 50 43 49 42 4c 41 4e 5f  _SB_PCI0PCIBLAN_
  4290: 50 4d 45 53 0a 80 60 a0 1b 93 60 0a 80 86 5c 2f  PMES..`...`...\/
  42a0: 04 5f 53 42 5f 50 43 49 30 50 43 49 42 4c 41 4e  ._SB_PCI0PCIBLAN
  42b0: 5f 0a 02 a2 41 06 5c 2f 03 5f 53 42 5f 4d 45 4d  _...A.\/._SB_MEM
  42c0: 5f 47 50 37 34 a0 4f 04 5c 2f 03 5f 53 42 5f 4d  _GP74.O.\/._SB_M
  42d0: 45 4d 5f 47 50 37 34 70 0a 00 5c 2f 03 5f 53 42  EM_GP74p..\/._SB
  42e0: 5f 4d 45 4d 5f 47 50 37 34 86 5c 2f 04 5f 53 42  _MEM_GP74.\/._SB
  42f0: 5f 50 43 49 30 46 4e 43 30 50 43 43 30 0a 02 86  _PCI0FNC0PCC0...
  4300: 5c 2f 04 5f 53 42 5f 50 43 49 30 50 43 49 42 56  \/._SB_PCI0PCIBV
  4310: 49 59 30 0a 02 14 3b 5f 4c 30 44 08 a0 34 5c 2f  IY0...;_L0D..4\/
  4320: 03 5f 53 42 5f 4d 45 4d 5f 47 50 37 37 70 0a 00  ._SB_MEM_GP77p..
  4330: 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 47 50 37 37 86  \/._SB_MEM_GP77.
  4340: 5c 2f 03 5f 53 42 5f 50 43 49 30 55 53 42 34 0a  \/._SB_PCI0USB4.
  4350: 02 14 45 0c 5f 50 54 53 01 a0 43 04 91 91 5c 2f  ..E._PTS..C...\/
  4360: 03 5f 53 42 5f 4d 45 4d 5f 56 57 45 30 5c 2f 03  ._SB_MEM_VWE0\/.
  4370: 5f 53 42 5f 4d 45 4d 5f 56 57 45 31 5c 2f 03 5f  _SB_MEM_VWE1\/._
  4380: 53 42 5f 4d 45 4d 5f 56 57 45 32 70 0a 01 5c 2f  SB_MEM_VWE2p..\/
  4390: 03 5f 53 42 5f 4d 45 4d 5f 57 45 44 32 a1 13 70  ._SB_MEM_WED2..p
  43a0: 0a 00 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 57 45 44  ..\/._SB_MEM_WED
  43b0: 32 a0 46 04 90 92 95 68 0a 01 92 94 68 0a 04 70  2.F....h....h..p
  43c0: 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 45 57 4c 44 5c  \/._SB_MEM_EWLD\
  43d0: 2f 03 5f 53 42 5f 4d 45 4d 5f 50 41 52 31 70 0a  /._SB_MEM_PAR1p.
  43e0: 60 5c 2f 05 5f 53 42 5f 50 43 49 30 46 4e 43 30  `\/._SB_PCI0FNC0
  43f0: 53 59 53 52 54 52 50 34 70 5c 2f 03 5f 53 42 5f  SYSRTRP4p\/._SB_
  4400: 4d 45 4d 5f 41 43 53 54 5c 2f 03 5f 53 42 5f 4d  MEM_ACST\/._SB_M
  4410: 45 4d 5f 41 43 42 4b 14 4b 16 5f 57 41 4b 01 86  EM_ACBK.K._WAK..
  4420: 5c 2f 03 5f 53 42 5f 50 43 49 30 55 53 42 31 0a  \/._SB_PCI0USB1.
  4430: 00 44 49 53 5f 0a 14 53 4d 42 52 0b 00 ff 0a 1e  .DIS_..SMBR.....
  4440: 0a 01 0a 00 0a b2 a0 28 92 94 5c 2f 03 5f 53 42  .......(..\/._SB
  4450: 5f 4d 45 4d 5f 4f 53 49 44 0a 03 a2 13 93 5c 2f  _MEM_OSID.....\/
  4460: 03 5f 53 42 5f 4d 45 4d 5f 4b 42 43 52 0a 00 70  ._SB_MEM_KBCR..p
  4470: 0a 01 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 57 41 4b  ..\/._SB_MEM_WAK
  4480: 53 70 0a 01 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 50  Sp..\/._SB_MEM_P
  4490: 41 52 31 70 0a 60 5c 2f 05 5f 53 42 5f 50 43 49  AR1p.`\/._SB_PCI
  44a0: 30 46 4e 43 30 53 59 53 52 54 52 50 34 a0 46 05  0FNC0SYSRTRP4.F.
  44b0: 92 93 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 41 43 53  ..\/._SB_MEM_ACS
  44c0: 54 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 41 43 42 4b  T\/._SB_MEM_ACBK
  44d0: a0 21 92 93 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 48  .!..\/._SB_MEM_H
  44e0: 54 54 45 0a 01 86 5c 2e 5f 50 52 5f 43 50 55 30  TTE...\._PR_CPU0
  44f0: 0a 80 a1 11 53 4d 42 52 0b 00 fa 0b 00 32 0a 00  ....SMBR.....2..
  4500: 0a 00 0a b2 08 42 55 46 46 12 06 02 0a 00 0a 01  .....BUFF.......
  4510: a0 37 93 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 41 43  .7.\/._SB_MEM_AC
  4520: 53 54 0a 00 7b 5c 2f 03 5f 53 42 5f 4d 45 4d 5f  ST..{\/._SB_MEM_
  4530: 42 53 54 31 0a 04 60 a0 10 93 60 0a 04 70 0a 01  BST1..`...`..p..
  4540: 88 42 55 46 46 0a 00 00 a0 35 5c 2f 03 5f 53 42  .BUFF....5\/._SB
  4550: 5f 4d 45 4d 5f 47 50 39 31 70 0a 00 5c 2f 03 5f  _MEM_GP91p..\/._
  4560: 53 42 5f 4d 45 4d 5f 47 50 39 31 a0 12 93 68 0a  SB_MEM_GP91...h.
  4570: 04 86 5c 2e 5f 53 42 5f 50 57 52 42 0a 02 a4 42  ..\._SB_PWRB...B
  4580: 55 46 46 14 17 5f 50 49 43 01 70 68 5c 2f 03 5f  UFF.._PIC.ph\/._
  4590: 53 42 5f 4d 45 4d 5f 50 49 43 4d 14 0f 54 52 41  SB_MEM_PICM..TRA
  45a0: 50 01 72 68 0c 00 00 34 12 5b 31 14 44 06 53 4d  P.rh...4.[1.D.SM
  45b0: 42 52 05 70 68 5c 2f 03 5f 53 42 5f 4d 45 4d 5f  BR.ph\/._SB_MEM_
  45c0: 49 45 41 58 70 69 5c 2f 03 5f 53 42 5f 4d 45 4d  IEAXpi\/._SB_MEM
  45d0: 5f 49 45 42 58 70 6a 5c 2f 03 5f 53 42 5f 4d 45  _IEBXpj\/._SB_ME
  45e0: 4d 5f 49 45 43 58 70 6b 5c 2f 03 5f 53 42 5f 4d  M_IECXpk\/._SB_M
  45f0: 45 4d 5f 49 45 44 58 70 6c 5c 2f 05 5f 53 42 5f  EM_IEDXpl\/._SB_
  4600: 50 43 49 30 46 4e 43 30 53 59 53 52 54 52 50 34  PCI0FNC0SYSRTRP4
  4610: 14 4c 09 53 54 41 5f 01 70 68 5c 2f 03 5f 53 42  .L.STA_.ph\/._SB
  4620: 5f 4d 45 4d 5f 50 41 52 31 70 0a 00 5c 2f 03 5f  _MEM_PAR1p..\/._
  4630: 53 42 5f 4d 45 4d 5f 50 41 52 32 70 0a 00 5c 2f  SB_MEM_PAR2p..\/
  4640: 03 5f 53 42 5f 4d 45 4d 5f 50 41 52 33 70 0a 00  ._SB_MEM_PAR3p..
  4650: 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 50 41 52 34 70  \/._SB_MEM_PAR4p
  4660: 0a 00 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 50 41 52  ..\/._SB_MEM_PAR
  4670: 35 70 0a 00 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 50  5p..\/._SB_MEM_P
  4680: 41 52 36 70 0a 01 5c 2f 05 5f 53 42 5f 50 43 49  AR6p..\/._SB_PCI
  4690: 30 46 4e 43 30 53 59 53 52 54 52 50 34 a4 5c 2f  0FNC0SYSRTRP4.\/
  46a0: 03 5f 53 42 5f 4d 45 4d 5f 50 41 52 34 14 46 0d  ._SB_MEM_PAR4.F.
  46b0: 43 52 53 5f 01 70 68 5c 2f 03 5f 53 42 5f 4d 45  CRS_.ph\/._SB_ME
  46c0: 4d 5f 50 41 52 31 70 0a 00 5c 2f 03 5f 53 42 5f  M_PAR1p..\/._SB_
  46d0: 4d 45 4d 5f 50 41 52 32 70 0a 00 5c 2f 03 5f 53  MEM_PAR2p..\/._S
  46e0: 42 5f 4d 45 4d 5f 50 41 52 33 70 0a 00 5c 2f 03  B_MEM_PAR3p..\/.
  46f0: 5f 53 42 5f 4d 45 4d 5f 50 41 52 34 70 0a 00 5c  _SB_MEM_PAR4p..\
  4700: 2f 03 5f 53 42 5f 4d 45 4d 5f 50 41 52 35 70 0a  /._SB_MEM_PAR5p.
  4710: 00 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 50 41 52 36  .\/._SB_MEM_PAR6
  4720: 70 0a 01 5c 2f 05 5f 53 42 5f 50 43 49 30 46 4e  p..\/._SB_PCI0FN
  4730: 43 30 53 59 53 52 54 52 50 34 a0 1a 93 5c 2f 03  C0SYSRTRP4...\/.
  4740: 5f 53 42 5f 4d 45 4d 5f 50 41 52 33 0a 00 a4 11  _SB_MEM_PAR3....
  4750: 05 0a 02 79 00 08 42 55 46 46 11 10 5c 2f 03 5f  ...y..BUFF..\/._
  4760: 53 42 5f 4d 45 4d 5f 50 41 52 33 70 5c 2f 03 5f  SB_MEM_PAR3p\/._
  4770: 53 42 5f 4d 45 4d 5f 50 52 45 53 42 55 46 46 a4  SB_MEM_PRESBUFF.
  4780: 42 55 46 46 14 46 0d 50 52 53 5f 01 70 68 5c 2f  BUFF.F.PRS_.ph\/
  4790: 03 5f 53 42 5f 4d 45 4d 5f 50 41 52 31 70 0a 01  ._SB_MEM_PAR1p..
  47a0: 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 50 41 52 32 70  \/._SB_MEM_PAR2p
  47b0: 0a 00 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 50 41 52  ..\/._SB_MEM_PAR
  47c0: 33 70 0a 00 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 50  3p..\/._SB_MEM_P
  47d0: 41 52 34 70 0a 00 5c 2f 03 5f 53 42 5f 4d 45 4d  AR4p..\/._SB_MEM
  47e0: 5f 50 41 52 35 70 0a 00 5c 2f 03 5f 53 42 5f 4d  _PAR5p..\/._SB_M
  47f0: 45 4d 5f 50 41 52 36 70 0a 01 5c 2f 05 5f 53 42  EM_PAR6p..\/._SB
  4800: 5f 50 43 49 30 46 4e 43 30 53 59 53 52 54 52 50  _PCI0FNC0SYSRTRP
  4810: 34 a0 1a 93 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 50  4...\/._SB_MEM_P
  4820: 41 52 33 0a 00 a4 11 05 0a 02 79 00 08 42 55 46  AR3.......y..BUF
  4830: 46 11 10 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 50 41  F..\/._SB_MEM_PA
  4840: 52 33 70 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 50 52  R3p\/._SB_MEM_PR
  4850: 45 53 42 55 46 46 a4 42 55 46 46 14 4d 09 53 52  ESBUFF.BUFF.M.SR
  4860: 53 5f 02 70 68 5c 2f 03 5f 53 42 5f 4d 45 4d 5f  S_.ph\/._SB_MEM_
  4870: 50 41 52 31 70 0a 00 5c 2f 03 5f 53 42 5f 4d 45  PAR1p..\/._SB_ME
  4880: 4d 5f 50 41 52 32 70 0a 00 5c 2f 03 5f 53 42 5f  M_PAR2p..\/._SB_
  4890: 4d 45 4d 5f 50 41 52 33 70 0a 00 5c 2f 03 5f 53  MEM_PAR3p..\/._S
  48a0: 42 5f 4d 45 4d 5f 50 41 52 34 70 0a 00 5c 2f 03  B_MEM_PAR4p..\/.
  48b0: 5f 53 42 5f 4d 45 4d 5f 50 41 52 35 70 0a 00 5c  _SB_MEM_PAR5p..\
  48c0: 2f 03 5f 53 42 5f 4d 45 4d 5f 50 41 52 36 70 69  /._SB_MEM_PAR6pi
  48d0: 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 50 52 45 53 70  \/._SB_MEM_PRESp
  48e0: 0a 02 5c 2f 05 5f 53 42 5f 50 43 49 30 46 4e 43  ..\/._SB_PCI0FNC
  48f0: 30 53 59 53 52 54 52 50 34 14 4c 08 44 49 53 5f  0SYSRTRP4.L.DIS_
  4900: 01 70 68 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 50 41  .ph\/._SB_MEM_PA
  4910: 52 31 70 0a 00 5c 2f 03 5f 53 42 5f 4d 45 4d 5f  R1p..\/._SB_MEM_
  4920: 50 41 52 32 70 0a 00 5c 2f 03 5f 53 42 5f 4d 45  PAR2p..\/._SB_ME
  4930: 4d 5f 50 41 52 33 70 0a 00 5c 2f 03 5f 53 42 5f  M_PAR3p..\/._SB_
  4940: 4d 45 4d 5f 50 41 52 34 70 0a 00 5c 2f 03 5f 53  MEM_PAR4p..\/._S
  4950: 42 5f 4d 45 4d 5f 50 41 52 35 70 0a 00 5c 2f 03  B_MEM_PAR5p..\/.
  4960: 5f 53 42 5f 4d 45 4d 5f 50 41 52 36 70 0a 03 5c  _SB_MEM_PAR6p..\
  4970: 2f 05 5f 53 42 5f 50 43 49 30 46 4e 43 30 53 59  /._SB_PCI0FNC0SY
  4980: 53 52 54 52 50 34 14 46 06 50 53 30 5f 01 70 0a  SRTRP4.F.PS0_.p.
  4990: 00 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 49 45 53 49  .\/._SB_MEM_IESI
  49a0: 53 4d 42 52 0b 00 fe 0a 23 68 0a 00 0a b2 a0 3e  SMBR....#h.....>
  49b0: 93 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 4f 45 41 58  .\/._SB_MEM_OEAX
  49c0: 0a 00 70 0a 00 5c 2f 03 5f 53 42 5f 4d 45 4d 5f  ..p..\/._SB_MEM_
  49d0: 49 45 53 49 53 4d 42 52 0b 00 ff 0a 23 68 0a 00  IESISMBR....#h..
  49e0: 0a b2 57 50 53 58 68 0a 00 0a 00 0a 00 14 46 06  ..WPSXh.......F.
  49f0: 50 53 33 5f 01 70 0a 00 5c 2f 03 5f 53 42 5f 4d  PS3_.p..\/._SB_M
  4a00: 45 4d 5f 49 45 53 49 53 4d 42 52 0b 00 fe 0a 23  EM_IESISMBR....#
  4a10: 68 0a 00 0a b2 a0 3e 93 5c 2f 03 5f 53 42 5f 4d  h.....>.\/._SB_M
  4a20: 45 4d 5f 4f 45 41 58 0a 00 70 0a 00 5c 2f 03 5f  EM_OEAX..p..\/._
  4a30: 53 42 5f 4d 45 4d 5f 49 45 53 49 53 4d 42 52 0b  SB_MEM_IESISMBR.
  4a40: 00 ff 0a 23 68 0a 03 0a b2 57 50 53 58 68 0a 00  ...#h....WPSXh..
  4a50: 0a 00 0a 03 14 4d 07 57 50 53 58 04 70 69 5c 2f  .....M.WPSX.pi\/
  4a60: 03 5f 53 42 5f 4d 45 4d 5f 49 45 53 49 70 6a 5c  ._SB_MEM_IESIpj\
  4a70: 2f 03 5f 53 42 5f 4d 45 4d 5f 49 45 44 49 53 4d  /._SB_MEM_IEDISM
  4a80: 42 52 0b 00 fe 0a 23 68 0a 00 0a b2 a2 45 04 92  BR....#h.....E..
  4a90: 93 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 4f 45 43 58  .\/._SB_MEM_OECX
  4aa0: 0a 00 70 69 5c 2f 03 5f 53 42 5f 4d 45 4d 5f 49  ..pi\/._SB_MEM_I
  4ab0: 45 53 49 70 6a 5c 2f 03 5f 53 42 5f 4d 45 4d 5f  ESIpj\/._SB_MEM_
  4ac0: 49 45 44 49 53 4d 42 52 0b 00 fe 0a 23 68 0a 00  IEDISMBR....#h..
  4ad0: 0a b2 14 36 50 53 43 5f 01 70 0a 00 5c 2f 03 5f  ...6PSC_.p..\/._
  4ae0: 53 42 5f 4d 45 4d 5f 49 45 53 49 53 4d 42 52 0b  SB_MEM_IESISMBR.
  4af0: 00 fe 0a 23 68 0a 00 0a b2 a4 5c 2f 03 5f 53 42  ...#h.....\/._SB
  4b00: 5f 4d 45 4d 5f 4f 45 44 58 14 13 43 4d 50 53 02  _MEM_OEDX..CMPS.
  4b10: a0 08 93 87 68 87 69 a4 01 a1 03 a4 00 14 14 53  ....h.i........S
  4b20: 54 41 4c 01 a0 08 93 68 0a 80 a4 0a 09 a1 04 a4  TAL....h........
  4b30: 0a 0b 14 38 43 52 53 4c 01 08 49 52 51 42 11 09  ...8CRSL..IRQB..
  4b40: 0a 06 23 00 00 18 79 00 8b 49 52 51 42 0a 01 49  ..#...y..IRQB..I
  4b50: 4e 54 58 a0 12 95 68 0a 10 7b 68 0a 0f 60 79 0a  NTX...h..{h..`y.
  4b60: 01 60 49 4e 54 58 a4 49 52 51 42 5b 01 4d 54 45  .`INTX.IRQB[.MTE
  4b70: 58 00                                            X.

FACS @ 0xeee00
  0000: 46 41 43 53 40 00 00 00 00 00 00 00 00 00 00 00  FACS@...........
  0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
  0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
  0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................

FACP @ 0x1ef40060
  0000: 46 41 43 50 84 00 00 00 02 8c 54 4f 53 48 49 42  FACP......TOSHIB
  0010: 37 35 30 20 20 20 20 20 01 01 03 20 54 41 53 4d  750     ... TASM
  0020: 00 00 01 04 00 ee 0e 00 58 05 f4 1e 00 00 09 00  ........X.......
  0030: b2 00 00 00 71 70 00 83 00 d8 00 00 00 00 00 00  ....qp..........
  0040: 04 d8 00 00 00 00 00 00 20 d8 00 00 08 d8 00 00  ........ .......
  0050: 28 d8 00 00 00 00 00 00 04 02 01 04 08 00 00 00  (...............
  0060: 01 00 55 00 00 00 00 00 01 00 0d 7e 00 03 00 00  ..U........~....
  0070: a5 04 00 00 01 08 00 00 b2 00 00 00 00 00 00 00  ................
  0080: fe 00 00 00                                      ....

SSDT @ 0x1ef402ca
  0000: 53 53 44 54 82 00 00 00 01 5c 54 4f 53 48 49 42  SSDT.....\TOSHIB
  0010: 41 30 30 30 43 20 20 20 17 09 03 20 4d 53 46 54  A000C   ... MSFT
  0020: 0e 00 00 01 10 4d 05 5c 5f 50 52 5f 5b 83 44 05  .....M.\_PR_[.D.
  0030: 43 50 55 30 00 10 d8 00 00 06 14 09 5f 50 50 43  CPU0........_PPC
  0040: 00 a4 0a 00 08 5f 50 43 54 12 2c 02 11 14 0a 11  ....._PCT.,.....
  0050: 82 0c 00 01 08 00 00 b2 00 00 00 00 00 00 00 79  ...............y
  0060: 00 11 14 0a 11 82 0c 00 01 10 00 00 a0 d8 00 00  ................
  0070: 00 00 00 00 79 00 14 0b 5f 50 53 53 00 a4 54 50  ....y..._PSS..TP
  0080: 53 53                                            SS

DBGP @ 0x1ef400e4
  0000: 44 42 47 50 34 00 00 00 01 d2 54 4f 53 48 49 42  DBGP4.....TOSHIB
  0010: 37 35 30 20 20 20 20 20 14 08 97 00 54 41 53 4d  750     ....TASM
  0020: 00 00 01 04 00 00 00 00 01 08 00 00 e0 01 00 00  ................
  0030: 00 00 00 00                                      ....

BOOT @ 0x1ef40038
  0000: 42 4f 4f 54 28 00 00 00 01 35 54 4f 53 48 49 42  BOOT(....5TOSHIB
  0010: 37 35 30 20 20 20 20 20 14 08 97 00 54 41 53 4d  750     ....TASM
  0020: 00 00 01 04 7c 00 00 00                          ....|...

APIC @ 0x1ef40118
  0000: 41 50 49 43 62 00 00 00 01 87 54 4f 53 48 49 42  APICb.....TOSHIB
  0010: 37 35 30 20 20 20 20 20 14 08 97 00 54 41 53 4d  750     ....TASM
  0020: 00 00 01 04 00 00 e0 fe 01 00 00 00 00 08 00 00  ................
  0030: 01 00 00 00 00 08 01 01 00 00 00 00 01 0c 01 00  ................
  0040: 00 00 c0 fe 00 00 00 00 02 0a 00 00 02 00 00 00  ................
  0050: 00 00 02 0a 00 09 09 00 00 00 0d 00 04 06 00 05  ................
  0060: 00 01                                            ..

RSDT @ 0x1ef40000
  0000: 52 53 44 54 38 00 00 00 01 dd 54 4f 53 48 49 42  RSDT8.....TOSHIB
  0010: 37 35 30 20 20 20 20 20 14 08 97 00 54 41 53 4d  750     ....TASM
  0020: 00 00 01 04 60 00 f4 1e ca 02 f4 1e e4 00 f4 1e  ....`...........
  0030: 38 00 f4 1e 18 01 f4 1e                          8.......

RSD PTR @ 0xf0180
  0000: 52 53 44 20 50 54 52 20 06 54 4f 53 48 49 42 00  RSD PTR .TOSHIB.
  0010: 00 00 f4 1e                                      ....


^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH 1/2] toshiba-acpi: Add support for hotkey notifications
  2009-04-13 19:28     ` Frans Pop
@ 2009-04-13 19:43       ` Matthew Garrett
  2009-04-13 20:38         ` Frans Pop
  0 siblings, 1 reply; 30+ messages in thread
From: Matthew Garrett @ 2009-04-13 19:43 UTC (permalink / raw)
  To: Frans Pop; +Cc: linux-acpi, dsilvers, toshiba_acpi, linux-kernel, lenb

Hm. Do you get events for the multimedia keys without this patch and 
using the old interface?

-- 
Matthew Garrett | mjg59@srcf.ucam.org

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH 1/2] toshiba-acpi: Add support for hotkey notifications
  2009-04-13 19:43       ` Matthew Garrett
@ 2009-04-13 20:38         ` Frans Pop
  2009-04-13 21:18           ` Matthew Garrett
  0 siblings, 1 reply; 30+ messages in thread
From: Frans Pop @ 2009-04-13 20:38 UTC (permalink / raw)
  To: Matthew Garrett; +Cc: linux-acpi, dsilvers, toshiba_acpi, linux-kernel, lenb

On Monday 13 April 2009, Matthew Garrett wrote:
> Hm. Do you get events for the multimedia keys without this patch and
> using the old interface?

Yes, 2.6.28 gives in /proc/acpi/toshiba/keys as value for 'hotkey':
previous track:	0x0b31
next track:	0x0b32
play/pause:	0x0b33
stop:		0x0b30

And fnfx-client in debug mode shows the four keys as well.

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH 1/2] toshiba-acpi: Add support for hotkey notifications
  2009-04-13 20:38         ` Frans Pop
@ 2009-04-13 21:18           ` Matthew Garrett
  2009-04-13 21:26             ` Frans Pop
  0 siblings, 1 reply; 30+ messages in thread
From: Matthew Garrett @ 2009-04-13 21:18 UTC (permalink / raw)
  To: Frans Pop; +Cc: linux-acpi, dsilvers, toshiba_acpi, linux-kernel, lenb

On Mon, Apr 13, 2009 at 10:38:09PM +0200, Frans Pop wrote:
> On Monday 13 April 2009, Matthew Garrett wrote:
> > Hm. Do you get events for the multimedia keys without this patch and
> > using the old interface?
> 
> Yes, 2.6.28 gives in /proc/acpi/toshiba/keys as value for 'hotkey':
> previous track:	0x0b31
> next track:	0x0b32
> play/pause:	0x0b33
> stop:		0x0b30

Without running any software, does hitting these keys cause the acpi 
interrupt in /proc/interrupts to increment?

-- 
Matthew Garrett | mjg59@srcf.ucam.org

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH 1/2] toshiba-acpi: Add support for hotkey notifications
  2009-04-13 21:18           ` Matthew Garrett
@ 2009-04-13 21:26             ` Frans Pop
  2009-04-13 21:31               ` Matthew Garrett
  0 siblings, 1 reply; 30+ messages in thread
From: Frans Pop @ 2009-04-13 21:26 UTC (permalink / raw)
  To: Matthew Garrett; +Cc: linux-acpi, dsilvers, toshiba_acpi, linux-kernel, lenb

On Monday 13 April 2009, Matthew Garrett wrote:
> On Mon, Apr 13, 2009 at 10:38:09PM +0200, Frans Pop wrote:
> > On Monday 13 April 2009, Matthew Garrett wrote:
> > > Hm. Do you get events for the multimedia keys without this patch
> > > and using the old interface?
> >
> > Yes, 2.6.28 gives in /proc/acpi/toshiba/keys as value for 'hotkey':
> > previous track:	0x0b31
> > next track:	0x0b32
> > play/pause:	0x0b33
> > stop:		0x0b30
>
> Without running any software, does hitting these keys cause the acpi
> interrupt in /proc/interrupts to increment?

Yes (with 2.6.28; fnfx* purged before system boot).

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH 1/2] toshiba-acpi: Add support for hotkey notifications
  2009-04-13 21:26             ` Frans Pop
@ 2009-04-13 21:31               ` Matthew Garrett
  0 siblings, 0 replies; 30+ messages in thread
From: Matthew Garrett @ 2009-04-13 21:31 UTC (permalink / raw)
  To: Frans Pop; +Cc: linux-acpi, dsilvers, toshiba_acpi, linux-kernel

On Mon, Apr 13, 2009 at 11:26:34PM +0200, Frans Pop wrote:
> On Monday 13 April 2009, Matthew Garrett wrote:
> > On Mon, Apr 13, 2009 at 10:38:09PM +0200, Frans Pop wrote:
> > > On Monday 13 April 2009, Matthew Garrett wrote:
> > > > Hm. Do you get events for the multimedia keys without this patch
> > > > and using the old interface?
> > >
> > > Yes, 2.6.28 gives in /proc/acpi/toshiba/keys as value for 'hotkey':
> > > previous track:	0x0b31
> > > next track:	0x0b32
> > > play/pause:	0x0b33
> > > stop:		0x0b30
> >
> > Without running any software, does hitting these keys cause the acpi
> > interrupt in /proc/interrupts to increment?
> 
> Yes (with 2.6.28; fnfx* purged before system boot).

Ok - can you build with ACPI debugging, set /proc/acpi/debug_level and 
debug_layer to 0xffff, hit one of the keys, turn the debugging back off 
and then send me the log? Easiest is to do something like:

echo 0xffff >/proc/acpi/debug_level; echo 0xffff 
>/proc/acpi/debug_layer; sleep 3; echo 0 blah blah

so you don't have to try to disable them while stuff's appearing all 
over your screen. There'll be a lot of output, so if you could send it 
to me rather than the list then that would be great.

-- 
Matthew Garrett | mjg59@srcf.ucam.org

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH 1/2] toshiba-acpi: Add support for hotkey notifications
  2009-03-31 21:45 [PATCH 1/2] toshiba-acpi: Add support for hotkey notifications Matthew Garrett
                   ` (3 preceding siblings ...)
  2009-04-11 23:06 ` Benoit Izac
@ 2009-04-18  4:01 ` Len Brown
  2009-04-18  5:47   ` Andrey Borzenkov
  4 siblings, 1 reply; 30+ messages in thread
From: Len Brown @ 2009-04-18  4:01 UTC (permalink / raw)
  To: Matthew Garrett
  Cc: linux-acpi, dsilvers, toshiba_acpi, Linux Kernel Mailing List

[-- Attachment #1: Type: TEXT/PLAIN, Size: 267 bytes --]

drivers/platform/x86/toshiba_acpi.c:854: warning: passing argument 3 of 
‘acpi_install_notify_handler’ from incompatible pointer type
drivers/platform/x86/toshiba_acpi.c:903: warning: passing argument 3 of 
‘acpi_remove_notify_handler’ from incompatible pointer type

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH 1/2] toshiba-acpi: Add support for hotkey notifications
  2009-04-18  4:01 ` Len Brown
@ 2009-04-18  5:47   ` Andrey Borzenkov
  0 siblings, 0 replies; 30+ messages in thread
From: Andrey Borzenkov @ 2009-04-18  5:47 UTC (permalink / raw)
  To: Len Brown, mjg59, linux-kernel, linux-acpi

Len Brown wrote:

> drivers/platform/x86/toshiba_acpi.c:854: warning: passing argument 3 of
> ‘acpi_install_notify_handler’ from incompatible pointer type
> drivers/platform/x86/toshiba_acpi.c:903: warning: passing argument 3 of
> ‘acpi_remove_notify_handler’ from incompatible pointer type

Patch was here:

http://marc.info/?l=linux-acpi&m=123636477425172&w=2
--
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

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH 2/2] toshiba-acpi: Support TOS1900-type devices
  2009-04-01 17:13                   ` Azael Avalos
@ 2009-06-02 14:03                     ` Matthew Garrett
  2009-06-09 16:42                       ` Azael Avalos
  0 siblings, 1 reply; 30+ messages in thread
From: Matthew Garrett @ 2009-06-02 14:03 UTC (permalink / raw)
  To: Azael Avalos; +Cc: linux-acpi, dsilvers, toshiba_acpi, linux-kernel

Ok. From looking at your DSDT I'm still a little bit confused, but 
anyway. As far as I can tell the correct way to drive TOS1900-type 
devices is to call ENAB (which doesn't do anything on your machine) and 
then call the INFO method when we receive notifications. Your DSDT 
includes a NTFY method that doesn't appear to be called from anywhere. 
The path that we should be following is the one triggered by the _Q43 
EC query, which then generates a notification and flags that there's a 
hotkey waiting. The INFO method then unflags that, saves the value of 
TOHK and writes a zero into there.

So, from what I can tell, the following patch should work for you 
(against clean upstream). If it doesn't then we need to figure out 
what's happening when you press a hotkey in the first place.

commit 6edd24bf5ef664e8ac8d5f53774cb9ada8b11a37
Author: Matthew Garrett <mjg@redhat.com>
Date:   Fri Mar 6 00:25:45 2009 +0000

    toshiba-acpi: Add support for hotkey notifications
    
    Calling the ENAB method on Toshiba laptops results in notifications being
    sent when laptop hotkeys are pressed. This patch simply calls that method
    and sets up an input device if it's successful.
    
    Signed-off-by: Matthew Garrett <mjg@redhat.com>

diff --git a/drivers/platform/x86/toshiba_acpi.c b/drivers/platform/x86/toshiba_acpi.c
index 9f18726..45c1fb0 100644
--- a/drivers/platform/x86/toshiba_acpi.c
+++ b/drivers/platform/x86/toshiba_acpi.c
@@ -46,6 +46,7 @@
 #include <linux/platform_device.h>
 #include <linux/rfkill.h>
 #include <linux/input-polldev.h>
+#include <linux/input.h>
 
 #include <asm/uaccess.h>
 
@@ -62,9 +63,10 @@ MODULE_LICENSE("GPL");
 
 /* Toshiba ACPI method paths */
 #define METHOD_LCD_BRIGHTNESS	"\\_SB_.PCI0.VGA_.LCD_._BCM"
-#define METHOD_HCI_1		"\\_SB_.VALD.GHCI"
-#define METHOD_HCI_2		"\\_SB_.VALZ.GHCI"
+#define TOSH_INTERFACE_1	"\\_SB_.VALD"
+#define TOSH_INTERFACE_2	"\\_SB_.VALZ"
 #define METHOD_VIDEO_OUT	"\\_SB_.VALX.DSSX"
+#define GHCI_METHOD		".GHCI"
 
 /* Toshiba HCI interface definitions
  *
@@ -116,6 +118,37 @@ static const struct acpi_device_id toshiba_device_ids[] = {
 };
 MODULE_DEVICE_TABLE(acpi, toshiba_device_ids);
 
+struct key_entry {
+	char type;
+	u16 code;
+	u16 keycode;
+};
+
+enum {KE_KEY, KE_END};
+
+static struct key_entry toshiba_acpi_keymap[]  = {
+	{KE_KEY, 0x101, KEY_MUTE},
+	{KE_KEY, 0x13b, KEY_COFFEE},
+	{KE_KEY, 0x13c, KEY_BATTERY},
+	{KE_KEY, 0x13d, KEY_SLEEP},
+	{KE_KEY, 0x13e, KEY_SUSPEND},
+	{KE_KEY, 0x13f, KEY_SWITCHVIDEOMODE},
+	{KE_KEY, 0x140, KEY_BRIGHTNESSDOWN},
+	{KE_KEY, 0x141, KEY_BRIGHTNESSUP},
+	{KE_KEY, 0x142, KEY_WLAN},
+	{KE_KEY, 0x143, KEY_PROG1},
+	{KE_KEY, 0x17f, KEY_BRIGHTNESSDOWN},
+	{KE_KEY, 0xb05, KEY_PROG2},
+	{KE_KEY, 0xb06, KEY_WWW},
+	{KE_KEY, 0xb07, KEY_MAIL},
+	{KE_KEY, 0xb30, KEY_STOP},
+	{KE_KEY, 0xb31, KEY_PREVIOUSSONG},
+	{KE_KEY, 0xb32, KEY_NEXTSONG},
+	{KE_KEY, 0xb33, KEY_PLAYPAUSE},
+	{KE_KEY, 0xb5a, KEY_MEDIA},
+	{KE_END, 0, 0},
+};
+
 /* utility
  */
 
@@ -252,6 +285,8 @@ struct toshiba_acpi_dev {
 	struct platform_device *p_dev;
 	struct rfkill *rfk_dev;
 	struct input_polled_dev *poll_dev;
+	struct input_dev *hotkey_dev;
+	acpi_handle handle;
 
 	const char *bt_name;
 	const char *rfk_name;
@@ -700,6 +735,154 @@ static struct backlight_ops toshiba_backlight_data = {
         .update_status  = set_lcd_status,
 };
 
+static struct key_entry *toshiba_acpi_get_entry_by_scancode(int code)
+{
+	struct key_entry *key;
+
+	for (key = toshiba_acpi_keymap; key->type != KE_END; key++)
+		if (code == key->code)
+			return key;
+
+	return NULL;
+}
+
+static struct key_entry *toshiba_acpi_get_entry_by_keycode(int code)
+{
+	struct key_entry *key;
+
+	for (key = toshiba_acpi_keymap; key->type != KE_END; key++)
+		if (code == key->keycode && key->type == KE_KEY)
+			return key;
+
+	return NULL;
+}
+
+static int toshiba_acpi_getkeycode(struct input_dev *dev, int scancode,
+				   int *keycode)
+{
+	struct key_entry *key = toshiba_acpi_get_entry_by_scancode(scancode);
+
+	if (key && key->type == KE_KEY) {
+		*keycode = key->keycode;
+		return 0;
+	}
+
+	return -EINVAL;
+}
+
+static int toshiba_acpi_setkeycode(struct input_dev *dev, int scancode,
+				   int keycode)
+{
+	struct key_entry *key;
+	int old_keycode;
+
+	if (keycode < 0 || keycode > KEY_MAX)
+		return -EINVAL;
+
+	key = toshiba_acpi_get_entry_by_scancode(scancode);
+	if (key && key->type == KE_KEY) {
+		old_keycode = key->keycode;
+		key->keycode = keycode;
+		set_bit(keycode, dev->keybit);
+		if (!toshiba_acpi_get_entry_by_keycode(old_keycode))
+			clear_bit(old_keycode, dev->keybit);
+		return 0;
+	}
+
+	return -EINVAL;
+}
+
+static void toshiba_acpi_notify(acpi_handle handle, u32 event, void **data)
+{
+	u32 hci_result, value;
+	struct key_entry *key;
+
+	if (event != 0x80)
+		return;
+	do {
+		hci_read1(HCI_SYSTEM_EVENT, &value, &hci_result);
+		if (hci_result == HCI_SUCCESS) {
+			if (value == 0x100)
+				continue;
+			else if (!(value & 0x80)) {
+				key = toshiba_acpi_get_entry_by_scancode
+					(value);
+				if (!key) {
+					printk(MY_INFO "Unknown key %x\n",
+					       value);
+					continue;
+				}
+				input_report_key(toshiba_acpi.hotkey_dev,
+						 key->keycode, 1);
+				input_sync(toshiba_acpi.hotkey_dev);
+				input_report_key(toshiba_acpi.hotkey_dev,
+						 key->keycode, 0);
+				input_sync(toshiba_acpi.hotkey_dev);
+			}
+		} else if (hci_result == HCI_NOT_SUPPORTED) {
+			/* This is a workaround for an unresolved issue on
+			 * some machines where system events sporadically
+			 * become disabled. */
+			hci_write1(HCI_SYSTEM_EVENT, 1, &hci_result);
+			printk(MY_NOTICE "Re-enabled hotkeys\n");
+		}
+	} while (hci_result != HCI_EMPTY);
+}
+
+static int toshiba_acpi_setup_keyboard(char *device)
+{
+	acpi_status status;
+	acpi_handle handle;
+	int result;
+	const struct key_entry *key;
+
+	status = acpi_get_handle(NULL, device, &handle);
+	if (ACPI_FAILURE(status)) {
+		printk(MY_INFO "Unable to get notification device\n");
+		return -ENODEV;
+	}
+
+	toshiba_acpi.handle = handle;
+
+	status = acpi_evaluate_object(handle, "ENAB", NULL, NULL);
+	if (ACPI_FAILURE(status)) {
+		printk(MY_INFO "Unable to enable hotkeys\n");
+		return -ENODEV;
+	}
+
+	status = acpi_install_notify_handler (handle, ACPI_DEVICE_NOTIFY,
+					      toshiba_acpi_notify, NULL);
+	if (ACPI_FAILURE(status)) {
+		printk(MY_INFO "Unable to install hotkey notification\n");
+		return -ENODEV;
+	}
+
+	toshiba_acpi.hotkey_dev = input_allocate_device();
+	if (!toshiba_acpi.hotkey_dev) {
+		printk(MY_INFO "Unable to register input device\n");
+		return -ENOMEM;
+	}
+
+	toshiba_acpi.hotkey_dev->name = "Toshiba input device";
+	toshiba_acpi.hotkey_dev->phys = device;
+	toshiba_acpi.hotkey_dev->id.bustype = BUS_HOST;
+	toshiba_acpi.hotkey_dev->getkeycode = toshiba_acpi_getkeycode;
+	toshiba_acpi.hotkey_dev->setkeycode = toshiba_acpi_setkeycode;
+
+	for (key = toshiba_acpi_keymap; key->type != KE_END; key++) {
+		set_bit(EV_KEY, toshiba_acpi.hotkey_dev->evbit);
+		set_bit(key->keycode, toshiba_acpi.hotkey_dev->keybit);
+	}
+
+	result = input_register_device(toshiba_acpi.hotkey_dev);
+	if (result) {
+		printk(MY_INFO "Unable to register input device\n");
+		return result;
+	}
+
+	return 0;
+}
+
 static void toshiba_acpi_exit(void)
 {
 	if (toshiba_acpi.poll_dev) {
@@ -707,12 +890,18 @@ static void toshiba_acpi_exit(void)
 		input_free_polled_device(toshiba_acpi.poll_dev);
 	}
 
+	if (toshiba_acpi.hotkey_dev)
+		input_unregister_device(toshiba_acpi.hotkey_dev);
+
 	if (toshiba_acpi.rfk_dev)
 		rfkill_unregister(toshiba_acpi.rfk_dev);
 
 	if (toshiba_backlight_device)
 		backlight_device_unregister(toshiba_backlight_device);
 
+	acpi_remove_notify_handler(toshiba_acpi.handle, ACPI_DEVICE_NOTIFY,
+				   toshiba_acpi_notify);
+
 	remove_device();
 
 	if (toshiba_proc_dir)
@@ -736,11 +925,15 @@ static int __init toshiba_acpi_init(void)
 		return -ENODEV;
 
 	/* simple device detection: look for HCI method */
-	if (is_valid_acpi_path(METHOD_HCI_1))
-		method_hci = METHOD_HCI_1;
-	else if (is_valid_acpi_path(METHOD_HCI_2))
-		method_hci = METHOD_HCI_2;
-	else
+	if (is_valid_acpi_path(TOSH_INTERFACE_1 GHCI_METHOD)) {
+		method_hci = TOSH_INTERFACE_1 GHCI_METHOD;
+		if (toshiba_acpi_setup_keyboard(TOSH_INTERFACE_1))
+			printk(MY_INFO "Unable to activate hotkeys\n");
+	} else if (is_valid_acpi_path(TOSH_INTERFACE_2 GHCI_METHOD)) {
+		method_hci = TOSH_INTERFACE_2 GHCI_METHOD;
+		if (toshiba_acpi_setup_keyboard(TOSH_INTERFACE_2))
+			printk(MY_INFO "Unable to activate hotkeys\n");
+	} else
 		return -ENODEV;
 
 	printk(MY_INFO "Toshiba Laptop ACPI Extras version %s\n",

-- 
Matthew Garrett | mjg59@srcf.ucam.org

^ permalink raw reply related	[flat|nested] 30+ messages in thread

* Re: [PATCH 2/2] toshiba-acpi: Support TOS1900-type devices
  2009-06-02 14:03                     ` Matthew Garrett
@ 2009-06-09 16:42                       ` Azael Avalos
  2009-06-09 16:45                         ` Matthew Garrett
  0 siblings, 1 reply; 30+ messages in thread
From: Azael Avalos @ 2009-06-09 16:42 UTC (permalink / raw)
  To: Matthew Garrett; +Cc: linux-acpi, dsilvers, toshiba_acpi, linux-kernel

Hi there:

Sorry for the late reply, lotsa work lately.

On Tue, Jun 2, 2009 at 8:03 AM, Matthew Garrett<mjg59@srcf.ucam.org> wrote:
> Ok. From looking at your DSDT I'm still a little bit confused, but
> anyway. As far as I can tell the correct way to drive TOS1900-type
> devices is to call ENAB (which doesn't do anything on your machine) and
> then call the INFO method when we receive notifications. Your DSDT
> includes a NTFY method that doesn't appear to be called from anywhere.
> The path that we should be following is the one triggered by the _Q43
> EC query, which then generates a notification and flags that there's a
> hotkey waiting. The INFO method then unflags that, saves the value of
> TOHK and writes a zero into there.
>

Indeed, thats how I managed to see where the hotkeys were being "stored"
in my first attempts at getting hotkeys working on my Toshiba model.

However, everytime you poll the INFO method, the TECF variable receives
a zero, so the next time you want to poll the INFO method, you
receive a zero also, unless you "activate" the TECF variable again
perhaps tru' _Q43 or by directly writing a one into it.

> So, from what I can tell, the following patch should work for you
> (against clean upstream). If it doesn't then we need to figure out
> what's happening when you press a hotkey in the first place.
>

Not at all, the patch per se doesn't do anything on my model, even if
I activate the HCI Hotkey Events call 0x1E.

Just when I activate that HCI command the hotkeys start being "stored"
on the TOHK variable, however, not even w/ that patch you sent I'm
not able to get any events reported.


So, in my point of view and the experiments w/ the code I've been
doing here's the workflow that I found to be partially working:

1. Activate Hotkey Events call 0x1E.
2. It activates something internally causing Hotkey Events being
   stored in TOHK.
3. Whenever I press an Fn-Key combo let's say Fn-Esc, the actual key gets
   stored in TOHK, in this case 0x101, but just lasting a couple seconds
   (or even less...), it seems it's volatile.
4. Polling TOHK via the INFO method or directly gets me the actual hotkey,
   but again, must real quick since it will disappear (I used 100 ms polling).
5. Figure out a way of getting those Hotkey Events in a nice manner...
   I managed to get them, but sometimes I got them repeated due to the
   polling timer...


Saludos
Azael


> commit 6edd24bf5ef664e8ac8d5f53774cb9ada8b11a37
> Author: Matthew Garrett <mjg@redhat.com>
> Date:   Fri Mar 6 00:25:45 2009 +0000
>
>    toshiba-acpi: Add support for hotkey notifications
>
>    Calling the ENAB method on Toshiba laptops results in notifications being
>    sent when laptop hotkeys are pressed. This patch simply calls that method
>    and sets up an input device if it's successful.
>
>    Signed-off-by: Matthew Garrett <mjg@redhat.com>
>
> diff --git a/drivers/platform/x86/toshiba_acpi.c b/drivers/platform/x86/toshiba_acpi.c
> index 9f18726..45c1fb0 100644
> --- a/drivers/platform/x86/toshiba_acpi.c
> +++ b/drivers/platform/x86/toshiba_acpi.c
> @@ -46,6 +46,7 @@
>  #include <linux/platform_device.h>
>  #include <linux/rfkill.h>
>  #include <linux/input-polldev.h>
> +#include <linux/input.h>
>
>  #include <asm/uaccess.h>
>
> @@ -62,9 +63,10 @@ MODULE_LICENSE("GPL");
>
>  /* Toshiba ACPI method paths */
>  #define METHOD_LCD_BRIGHTNESS  "\\_SB_.PCI0.VGA_.LCD_._BCM"
> -#define METHOD_HCI_1           "\\_SB_.VALD.GHCI"
> -#define METHOD_HCI_2           "\\_SB_.VALZ.GHCI"
> +#define TOSH_INTERFACE_1       "\\_SB_.VALD"
> +#define TOSH_INTERFACE_2       "\\_SB_.VALZ"
>  #define METHOD_VIDEO_OUT       "\\_SB_.VALX.DSSX"
> +#define GHCI_METHOD            ".GHCI"
>
>  /* Toshiba HCI interface definitions
>  *
> @@ -116,6 +118,37 @@ static const struct acpi_device_id toshiba_device_ids[] = {
>  };
>  MODULE_DEVICE_TABLE(acpi, toshiba_device_ids);
>
> +struct key_entry {
> +       char type;
> +       u16 code;
> +       u16 keycode;
> +};
> +
> +enum {KE_KEY, KE_END};
> +
> +static struct key_entry toshiba_acpi_keymap[]  = {
> +       {KE_KEY, 0x101, KEY_MUTE},
> +       {KE_KEY, 0x13b, KEY_COFFEE},
> +       {KE_KEY, 0x13c, KEY_BATTERY},
> +       {KE_KEY, 0x13d, KEY_SLEEP},
> +       {KE_KEY, 0x13e, KEY_SUSPEND},
> +       {KE_KEY, 0x13f, KEY_SWITCHVIDEOMODE},
> +       {KE_KEY, 0x140, KEY_BRIGHTNESSDOWN},
> +       {KE_KEY, 0x141, KEY_BRIGHTNESSUP},
> +       {KE_KEY, 0x142, KEY_WLAN},
> +       {KE_KEY, 0x143, KEY_PROG1},
> +       {KE_KEY, 0x17f, KEY_BRIGHTNESSDOWN},
> +       {KE_KEY, 0xb05, KEY_PROG2},
> +       {KE_KEY, 0xb06, KEY_WWW},
> +       {KE_KEY, 0xb07, KEY_MAIL},
> +       {KE_KEY, 0xb30, KEY_STOP},
> +       {KE_KEY, 0xb31, KEY_PREVIOUSSONG},
> +       {KE_KEY, 0xb32, KEY_NEXTSONG},
> +       {KE_KEY, 0xb33, KEY_PLAYPAUSE},
> +       {KE_KEY, 0xb5a, KEY_MEDIA},
> +       {KE_END, 0, 0},
> +};
> +
>  /* utility
>  */
>
> @@ -252,6 +285,8 @@ struct toshiba_acpi_dev {
>        struct platform_device *p_dev;
>        struct rfkill *rfk_dev;
>        struct input_polled_dev *poll_dev;
> +       struct input_dev *hotkey_dev;
> +       acpi_handle handle;
>
>        const char *bt_name;
>        const char *rfk_name;
> @@ -700,6 +735,154 @@ static struct backlight_ops toshiba_backlight_data = {
>         .update_status  = set_lcd_status,
>  };
>
> +static struct key_entry *toshiba_acpi_get_entry_by_scancode(int code)
> +{
> +       struct key_entry *key;
> +
> +       for (key = toshiba_acpi_keymap; key->type != KE_END; key++)
> +               if (code == key->code)
> +                       return key;
> +
> +       return NULL;
> +}
> +
> +static struct key_entry *toshiba_acpi_get_entry_by_keycode(int code)
> +{
> +       struct key_entry *key;
> +
> +       for (key = toshiba_acpi_keymap; key->type != KE_END; key++)
> +               if (code == key->keycode && key->type == KE_KEY)
> +                       return key;
> +
> +       return NULL;
> +}
> +
> +static int toshiba_acpi_getkeycode(struct input_dev *dev, int scancode,
> +                                  int *keycode)
> +{
> +       struct key_entry *key = toshiba_acpi_get_entry_by_scancode(scancode);
> +
> +       if (key && key->type == KE_KEY) {
> +               *keycode = key->keycode;
> +               return 0;
> +       }
> +
> +       return -EINVAL;
> +}
> +
> +static int toshiba_acpi_setkeycode(struct input_dev *dev, int scancode,
> +                                  int keycode)
> +{
> +       struct key_entry *key;
> +       int old_keycode;
> +
> +       if (keycode < 0 || keycode > KEY_MAX)
> +               return -EINVAL;
> +
> +       key = toshiba_acpi_get_entry_by_scancode(scancode);
> +       if (key && key->type == KE_KEY) {
> +               old_keycode = key->keycode;
> +               key->keycode = keycode;
> +               set_bit(keycode, dev->keybit);
> +               if (!toshiba_acpi_get_entry_by_keycode(old_keycode))
> +                       clear_bit(old_keycode, dev->keybit);
> +               return 0;
> +       }
> +
> +       return -EINVAL;
> +}
> +
> +static void toshiba_acpi_notify(acpi_handle handle, u32 event, void **data)
> +{
> +       u32 hci_result, value;
> +       struct key_entry *key;
> +
> +       if (event != 0x80)
> +               return;
> +       do {
> +               hci_read1(HCI_SYSTEM_EVENT, &value, &hci_result);
> +               if (hci_result == HCI_SUCCESS) {
> +                       if (value == 0x100)
> +                               continue;
> +                       else if (!(value & 0x80)) {
> +                               key = toshiba_acpi_get_entry_by_scancode
> +                                       (value);
> +                               if (!key) {
> +                                       printk(MY_INFO "Unknown key %x\n",
> +                                              value);
> +                                       continue;
> +                               }
> +                               input_report_key(toshiba_acpi.hotkey_dev,
> +                                                key->keycode, 1);
> +                               input_sync(toshiba_acpi.hotkey_dev);
> +                               input_report_key(toshiba_acpi.hotkey_dev,
> +                                                key->keycode, 0);
> +                               input_sync(toshiba_acpi.hotkey_dev);
> +                       }
> +               } else if (hci_result == HCI_NOT_SUPPORTED) {
> +                       /* This is a workaround for an unresolved issue on
> +                        * some machines where system events sporadically
> +                        * become disabled. */
> +                       hci_write1(HCI_SYSTEM_EVENT, 1, &hci_result);
> +                       printk(MY_NOTICE "Re-enabled hotkeys\n");
> +               }
> +       } while (hci_result != HCI_EMPTY);
> +}
> +
> +static int toshiba_acpi_setup_keyboard(char *device)
> +{
> +       acpi_status status;
> +       acpi_handle handle;
> +       int result;
> +       const struct key_entry *key;
> +
> +       status = acpi_get_handle(NULL, device, &handle);
> +       if (ACPI_FAILURE(status)) {
> +               printk(MY_INFO "Unable to get notification device\n");
> +               return -ENODEV;
> +       }
> +
> +       toshiba_acpi.handle = handle;
> +
> +       status = acpi_evaluate_object(handle, "ENAB", NULL, NULL);
> +       if (ACPI_FAILURE(status)) {
> +               printk(MY_INFO "Unable to enable hotkeys\n");
> +               return -ENODEV;
> +       }
> +
> +       status = acpi_install_notify_handler (handle, ACPI_DEVICE_NOTIFY,
> +                                             toshiba_acpi_notify, NULL);
> +       if (ACPI_FAILURE(status)) {
> +               printk(MY_INFO "Unable to install hotkey notification\n");
> +               return -ENODEV;
> +       }
> +
> +       toshiba_acpi.hotkey_dev = input_allocate_device();
> +       if (!toshiba_acpi.hotkey_dev) {
> +               printk(MY_INFO "Unable to register input device\n");
> +               return -ENOMEM;
> +       }
> +
> +       toshiba_acpi.hotkey_dev->name = "Toshiba input device";
> +       toshiba_acpi.hotkey_dev->phys = device;
> +       toshiba_acpi.hotkey_dev->id.bustype = BUS_HOST;
> +       toshiba_acpi.hotkey_dev->getkeycode = toshiba_acpi_getkeycode;
> +       toshiba_acpi.hotkey_dev->setkeycode = toshiba_acpi_setkeycode;
> +
> +       for (key = toshiba_acpi_keymap; key->type != KE_END; key++) {
> +               set_bit(EV_KEY, toshiba_acpi.hotkey_dev->evbit);
> +               set_bit(key->keycode, toshiba_acpi.hotkey_dev->keybit);
> +       }
> +
> +       result = input_register_device(toshiba_acpi.hotkey_dev);
> +       if (result) {
> +               printk(MY_INFO "Unable to register input device\n");
> +               return result;
> +       }
> +
> +       return 0;
> +}
> +
>  static void toshiba_acpi_exit(void)
>  {
>        if (toshiba_acpi.poll_dev) {
> @@ -707,12 +890,18 @@ static void toshiba_acpi_exit(void)
>                input_free_polled_device(toshiba_acpi.poll_dev);
>        }
>
> +       if (toshiba_acpi.hotkey_dev)
> +               input_unregister_device(toshiba_acpi.hotkey_dev);
> +
>        if (toshiba_acpi.rfk_dev)
>                rfkill_unregister(toshiba_acpi.rfk_dev);
>
>        if (toshiba_backlight_device)
>                backlight_device_unregister(toshiba_backlight_device);
>
> +       acpi_remove_notify_handler(toshiba_acpi.handle, ACPI_DEVICE_NOTIFY,
> +                                  toshiba_acpi_notify);
> +
>        remove_device();
>
>        if (toshiba_proc_dir)
> @@ -736,11 +925,15 @@ static int __init toshiba_acpi_init(void)
>                return -ENODEV;
>
>        /* simple device detection: look for HCI method */
> -       if (is_valid_acpi_path(METHOD_HCI_1))
> -               method_hci = METHOD_HCI_1;
> -       else if (is_valid_acpi_path(METHOD_HCI_2))
> -               method_hci = METHOD_HCI_2;
> -       else
> +       if (is_valid_acpi_path(TOSH_INTERFACE_1 GHCI_METHOD)) {
> +               method_hci = TOSH_INTERFACE_1 GHCI_METHOD;
> +               if (toshiba_acpi_setup_keyboard(TOSH_INTERFACE_1))
> +                       printk(MY_INFO "Unable to activate hotkeys\n");
> +       } else if (is_valid_acpi_path(TOSH_INTERFACE_2 GHCI_METHOD)) {
> +               method_hci = TOSH_INTERFACE_2 GHCI_METHOD;
> +               if (toshiba_acpi_setup_keyboard(TOSH_INTERFACE_2))
> +                       printk(MY_INFO "Unable to activate hotkeys\n");
> +       } else
>                return -ENODEV;
>
>        printk(MY_INFO "Toshiba Laptop ACPI Extras version %s\n",
>
> --
> Matthew Garrett | mjg59@srcf.ucam.org
>



-- 
-- El mundo apesta y vosotros apestais tambien --
--
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

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH 2/2] toshiba-acpi: Support TOS1900-type devices
  2009-06-09 16:42                       ` Azael Avalos
@ 2009-06-09 16:45                         ` Matthew Garrett
  2009-06-10  0:18                           ` Azael Avalos
  0 siblings, 1 reply; 30+ messages in thread
From: Matthew Garrett @ 2009-06-09 16:45 UTC (permalink / raw)
  To: Azael Avalos; +Cc: linux-acpi, dsilvers, toshiba_acpi, linux-kernel

On Tue, Jun 09, 2009 at 10:42:00AM -0600, Azael Avalos wrote:

> However, everytime you poll the INFO method, the TECF variable receives
> a zero, so the next time you want to poll the INFO method, you
> receive a zero also, unless you "activate" the TECF variable again
> perhaps tru' _Q43 or by directly writing a one into it.

Right, but _Q43 should be called when you hit a hotkey. The fact that 
it's not is what's causing the problem here.

> 1. Activate Hotkey Events call 0x1E.
> 2. It activates something internally causing Hotkey Events being
>    stored in TOHK.
> 3. Whenever I press an Fn-Key combo let's say Fn-Esc, the actual key gets
>    stored in TOHK, in this case 0x101, but just lasting a couple seconds
>    (or even less...), it seems it's volatile.
> 4. Polling TOHK via the INFO method or directly gets me the actual hotkey,
>    but again, must real quick since it will disappear (I used 100 ms polling).
> 5. Figure out a way of getting those Hotkey Events in a nice manner...
>    I managed to get them, but sometimes I got them repeated due to the
>    polling timer...

When you hit a hotkey, what happens in /proc/interrupts? Do you see an 
i8042 event or an acpi event?
-- 
Matthew Garrett | mjg59@srcf.ucam.org

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH 2/2] toshiba-acpi: Support TOS1900-type devices
  2009-06-09 16:45                         ` Matthew Garrett
@ 2009-06-10  0:18                           ` Azael Avalos
  2009-06-10  0:22                             ` Matthew Garrett
  0 siblings, 1 reply; 30+ messages in thread
From: Azael Avalos @ 2009-06-10  0:18 UTC (permalink / raw)
  To: Matthew Garrett; +Cc: linux-acpi, dsilvers, toshiba_acpi, linux-kernel

On Tue, Jun 9, 2009 at 10:45 AM, Matthew Garrett<mjg59@srcf.ucam.org> wrote:

> When you hit a hotkey, what happens in /proc/interrupts? Do you see an
> i8042 event or an acpi event?

Indeed an i8042 event pops up, actually dmesg shows the following
regardless of the hotkey pressed, even by only pressing the Fn key:

atkbd.c: Unknown key released (translated set 2, code 0x6e on isa0060/serio0).
atkbd.c: Use 'setkeycodes 6e <keycode>' to make it known.


Saludos
Azael


-- 
-- El mundo apesta y vosotros apestais tambien --

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH 2/2] toshiba-acpi: Support TOS1900-type devices
  2009-06-10  0:18                           ` Azael Avalos
@ 2009-06-10  0:22                             ` Matthew Garrett
  2009-06-10  0:29                               ` Azael Avalos
  0 siblings, 1 reply; 30+ messages in thread
From: Matthew Garrett @ 2009-06-10  0:22 UTC (permalink / raw)
  To: Azael Avalos; +Cc: linux-acpi, dsilvers, toshiba_acpi, linux-kernel

On Tue, Jun 09, 2009 at 06:18:59PM -0600, Azael Avalos wrote:

> Indeed an i8042 event pops up, actually dmesg shows the following
> regardless of the hotkey pressed, even by only pressing the Fn key:
> 
> atkbd.c: Unknown key released (translated set 2, code 0x6e on isa0060/serio0).
> atkbd.c: Use 'setkeycodes 6e <keycode>' to make it known.

On press or on release? We could potentially grab that inside 
toshiba_acpi and use that to trigger the poll, but we'd still need to 
clear the value again. That's kind of ugly. The _Q43 method is clearly 
what should be being executed, so maybe there's another call we can make 
that enables it. I'll dig into your DSDT some more.

-- 
Matthew Garrett | mjg59@srcf.ucam.org

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH 2/2] toshiba-acpi: Support TOS1900-type devices
  2009-06-10  0:22                             ` Matthew Garrett
@ 2009-06-10  0:29                               ` Azael Avalos
  2009-06-18  0:35                                 ` Azael Avalos
  0 siblings, 1 reply; 30+ messages in thread
From: Azael Avalos @ 2009-06-10  0:29 UTC (permalink / raw)
  To: Matthew Garrett; +Cc: linux-acpi, dsilvers, toshiba_acpi, linux-kernel

On Tue, Jun 9, 2009 at 6:22 PM, Matthew Garrett<mjg59@srcf.ucam.org> wrote:
> On Tue, Jun 09, 2009 at 06:18:59PM -0600, Azael Avalos wrote:
>
>> Indeed an i8042 event pops up, actually dmesg shows the following
>> regardless of the hotkey pressed, even by only pressing the Fn key:
>>
>> atkbd.c: Unknown key released (translated set 2, code 0x6e on isa0060/serio0).
>> atkbd.c: Use 'setkeycodes 6e <keycode>' to make it known.
>
> On press or on release? We could potentially grab that inside
> toshiba_acpi and use that to trigger the poll, but we'd still need to
> clear the value again.

On both actually

> That's kind of ugly. The _Q43 method is clearly
> what should be being executed, so maybe there's another call we can make
> that enables it. I'll dig into your DSDT some more.
>

Cool, hopefully you can find something useful there that I missed,
which by the way, that DSDT is incomplete, I can't compile it w/
Intel's compiler...


Saludos
Azael


-- 
-- El mundo apesta y vosotros apestais tambien --

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH 2/2] toshiba-acpi: Support TOS1900-type devices
  2009-06-10  0:29                               ` Azael Avalos
@ 2009-06-18  0:35                                 ` Azael Avalos
  0 siblings, 0 replies; 30+ messages in thread
From: Azael Avalos @ 2009-06-18  0:35 UTC (permalink / raw)
  To: Matthew Garrett; +Cc: linux-acpi, dsilvers, toshiba_acpi, linux-kernel

I've been playing w/ the omnibook module these days and I got hotkeys
"working".

I don't know why _Q43 is not being triggered, however I got the NTFY
method to activate the TECF variable and so I can finally poll the TOHK
variable to get the hotkey. I'm not sure is this is the correct way of doing
things but we are in business.

Basically this is what I did:

1. Activate HCI Hotkey Events call 0x1E
2. Pressing a hotkey generates an i8042 event (0x6e)
3. Evaluate NTFY method, so TECF is at one
4. Poll INFO method to get last pressed hotkey (once ;-) )
5. Generate keycode for that hotkey

Here's the output of the omnibook module while pressing Fn alone
and then Fn-Esc:

atkbd.c: Unknown key released (translated set 2, code 0x6e on isa0060/serio0).
atkbd.c: Use 'setkeycodes 6e <keycode>' to make it known.
omnibook: detected scancode 0x100.
omnibook: generating keycode 464.
atkbd.c: Unknown key released (translated set 2, code 0x6e on isa0060/serio0).
atkbd.c: Use 'setkeycodes 6e <keycode>' to make it known.
omnibook: detected scancode 0x17f.
omnibook: generating keycode 464.
atkbd.c: Unknown key released (translated set 2, code 0x6e on isa0060/serio0).
atkbd.c: Use 'setkeycodes 6e <keycode>' to make it known.
omnibook: detected scancode 0x100.
omnibook: generating keycode 464.
atkbd.c: Unknown key released (translated set 2, code 0x6e on isa0060/serio0).
atkbd.c: Use 'setkeycodes 6e <keycode>' to make it known.
omnibook: detected scancode 0x17f.
omnibook: generating keycode 464.
atkbd.c: Unknown key released (translated set 2, code 0x6e on isa0060/serio0).
atkbd.c: Use 'setkeycodes 6e <keycode>' to make it known.
omnibook: detected scancode 0x101.
omnibook: generating keycode 113.
atkbd.c: Unknown key released (translated set 2, code 0x6e on isa0060/serio0).
atkbd.c: Use 'setkeycodes 6e <keycode>' to make it known.
omnibook: detected scancode 0x101.
omnibook: generating keycode 113.
atkbd.c: Unknown key released (translated set 2, code 0x6e on isa0060/serio0).
atkbd.c: Use 'setkeycodes 6e <keycode>' to make it known.
omnibook: detected scancode 0x100.
omnibook: generating keycode 464.


Saludos
Azael


-- 
-- El mundo apesta y vosotros apestais tambien --

^ permalink raw reply	[flat|nested] 30+ messages in thread

end of thread, other threads:[~2009-06-18  0:35 UTC | newest]

Thread overview: 30+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-03-31 21:45 [PATCH 1/2] toshiba-acpi: Add support for hotkey notifications Matthew Garrett
2009-03-31 21:47 ` [PATCH 2/2] toshiba-acpi: Support TOS1900-type devices Matthew Garrett
2009-03-31 22:06   ` Azael Avalos
2009-03-31 22:11     ` Matthew Garrett
2009-03-31 22:19       ` Azael Avalos
2009-03-31 23:02         ` Matthew Garrett
2009-04-01 16:50           ` Azael Avalos
2009-04-01 16:53             ` Matthew Garrett
2009-04-01 17:03               ` Azael Avalos
2009-04-01 17:07                 ` Matthew Garrett
2009-04-01 17:13                   ` Azael Avalos
2009-06-02 14:03                     ` Matthew Garrett
2009-06-09 16:42                       ` Azael Avalos
2009-06-09 16:45                         ` Matthew Garrett
2009-06-10  0:18                           ` Azael Avalos
2009-06-10  0:22                             ` Matthew Garrett
2009-06-10  0:29                               ` Azael Avalos
2009-06-18  0:35                                 ` Azael Avalos
2009-04-08  5:44 ` [PATCH 1/2] toshiba-acpi: Add support for hotkey notifications Len Brown
2009-04-11 19:50 ` Frans Pop
2009-04-13 14:50   ` Matthew Garrett
2009-04-13 19:28     ` Frans Pop
2009-04-13 19:43       ` Matthew Garrett
2009-04-13 20:38         ` Frans Pop
2009-04-13 21:18           ` Matthew Garrett
2009-04-13 21:26             ` Frans Pop
2009-04-13 21:31               ` Matthew Garrett
2009-04-11 23:06 ` Benoit Izac
2009-04-18  4:01 ` Len Brown
2009-04-18  5:47   ` Andrey Borzenkov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).