* acpi on new gateway laptops
@ 2003-11-12 23:23 William Morgan
[not found] ` <20031112232315.GD430-xW3KcqxHEMnk1uMJSBkQmQ@public.gmane.org>
0 siblings, 1 reply; 16+ messages in thread
From: William Morgan @ 2003-11-12 23:23 UTC (permalink / raw)
To: Casey Harkins; +Cc: acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f
It looks like the Gateway support site contains nothing about the 200X
or 200XL models. Great. Do they support ACPI 1.0 or 2.0 or what? No
idea... I'm assuming ACPI 1.0.
I started looking at the ACPI spec. It contains two pages specifically
about the ECDT, pp128--129.
I don't quite understand the text of the first page:
"This optional table provides the processor-relative, translated
resources of an Embedded Controller. The presence of this table allows
OSPM to provide Embedded Controller operation region space access
before the namespace has been evaluated. If this table is not
provided, the Embedded Controller region space will not be available
until the Embedded Controller device in the AML namespace has been
discovered and enumerated. The availability of the region space can be
detected by providing a _REG method object underneath the Embedded
Controller device."
(that's the entirety of it.)
It seems like having an ECDT is an optional feature? If that's so, then
what's the problem? Why isn't Linux simply "discovering and enumerating"
the "Embedded Controller device in the AML namespace"?
(BTW, it looks like ECDT actually stands for "Embedded Controller Boot
Resources Table". Hm.)
The next page describes the contents of the table. Basically it involves
a bunch of deep hardware information, like "The bit assignment of the
SCI interrupt within the GPEx_STS register of a GPE block described in
the FADT that the embedded controller triggers."
It goes on to state that "ACPI 1.0 OSPM implementation will not
recognize or make use of the ECDT".
Shaohua Li said something that I didn't quite get either, in his first
response:
> The reason is BIOS of Gateway 400VTX lacks ECDT table. And before
> initialize EC device, DSDT use ec space region when execute some ASL
> init methods. This will cause that battery can't be initializing.
So, what I *think* is happening, based on that, and on pp.203--204, is:
There's an Embedded Controller region (In the BIOS? In the DSDT?). One
cannot access a region until registering it, by calling
_REG(RegionSpace, 1). There's an exception to this, however, when using
an ECDT, which describes "controllers" (?) to access the Embedded
Controller region. If you have an ECDT you can then access this region
before registering it. So I think that's what the DSDT is doing, but
without providing an ECDT?
Re-examining the dmesg output, I *think* this makes sense.
So. This implies that rather than provide an ECDT, we can alternately
try and fix the DSDT. Since it's buggy anyways, that might conserve some
effort, and has the nice advantage of not forcing an upgrade to ACPI 2.0.
(Assuming I am ACPI 1.0 like you.)
I may send some of this to acpi-devel, if only to harass them.
--
William <wmorgan-xW3KcqxHEMnk1uMJSBkQmQ@public.gmane.org>
-------------------------------------------------------
This SF.Net email sponsored by: ApacheCon 2003,
16-19 November in Las Vegas. Learn firsthand the latest
developments in Apache, PHP, Perl, XML, Java, MySQL,
WebDAV, and more! http://www.apachecon.com/
^ permalink raw reply [flat|nested] 16+ messages in thread[parent not found: <20031112232315.GD430-xW3KcqxHEMnk1uMJSBkQmQ@public.gmane.org>]
* Re: acpi on new gateway laptops [not found] ` <20031112232315.GD430-xW3KcqxHEMnk1uMJSBkQmQ@public.gmane.org> @ 2003-11-12 23:33 ` William Morgan [not found] ` <20031112233328.GE430-xW3KcqxHEMnk1uMJSBkQmQ@public.gmane.org> 2003-11-17 18:25 ` Nate Lawson 1 sibling, 1 reply; 16+ messages in thread From: William Morgan @ 2003-11-12 23:33 UTC (permalink / raw) To: acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f Heh. Didn't mean to hit send quite so fast. :) For context, the two threads are: http://sourceforge.net/mailarchive/message.php?msg_id=6229363 and http://sourceforge.net/mailarchive/message.php?msg_id=6319180 In both cases /proc/battery is empty and it has been suggested that we are missing an ECDT table and should (somehow) provide one. For those in the know about ACPI, comments would be greatly appreciated on these two issues: First: [According to the ACPI spec] It seems like having an ECDT is an optional feature? If that's so, then what's the problem? Why isn't Linux simply "discovering and enumerating" the "Embedded Controller device in the AML namespace"? Second, does this scenario make any sense: There's an Embedded Controller region (In the BIOS? In the DSDT?). One cannot access a region until registering it, by calling _REG(RegionSpace, 1). There's an exception to this, however, when using an ECDT, which describes "controllers" (?) to access the Embedded Controller region. If you have an ECDT you can then access this region before registering it. So I think that's what the DSDT is doing, but without providing an ECDT? Third, would this solution work? Rather than provide an ECDT, we can alternately try and fix the DSDT. Since it's buggy anyways, that might conserve some effort, and has the nice advantage of not forcing an upgrade to ACPI 2.0. Sorry for all the clutter. My thanks in advance. -- William ------------------------------------------------------- This SF.Net email sponsored by: ApacheCon 2003, 16-19 November in Las Vegas. Learn firsthand the latest developments in Apache, PHP, Perl, XML, Java, MySQL, WebDAV, and more! http://www.apachecon.com/ ^ permalink raw reply [flat|nested] 16+ messages in thread
[parent not found: <20031112233328.GE430-xW3KcqxHEMnk1uMJSBkQmQ@public.gmane.org>]
* Re: Re: acpi on new gateway laptops [not found] ` <20031112233328.GE430-xW3KcqxHEMnk1uMJSBkQmQ@public.gmane.org> @ 2003-11-13 0:10 ` Ducrot Bruno [not found] ` <20031113001013.GE32464-kk6yZipjEM5g9hUCZPvPmw@public.gmane.org> 0 siblings, 1 reply; 16+ messages in thread From: Ducrot Bruno @ 2003-11-13 0:10 UTC (permalink / raw) To: acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f On Wed, Nov 12, 2003 at 06:33:28PM -0500, William Morgan wrote: > Heh. Didn't mean to hit send quite so fast. :) > > For context, the two threads are: > http://sourceforge.net/mailarchive/message.php?msg_id=6229363 and > http://sourceforge.net/mailarchive/message.php?msg_id=6319180 > > In both cases /proc/battery is empty and it has been suggested that we > are missing an ECDT table and should (somehow) provide one. > > For those in the know about ACPI, comments would be greatly appreciated > on these two issues: > > First: > > [According to the ACPI spec] It seems like having an ECDT is an > optional feature? yes. ECDT do not exist in ACPI 1.0, and ACPI 2.0 claims to be compatible. Then ECDT can only be optional. > If that's so, then what's the problem? Why isn't > Linux simply "discovering and enumerating" the "Embedded Controller > device in the AML namespace"? because you can not use EC when _STA nor _INI. Or if you know already that you have an EC (but without ECDT), then you have already executed the _STA associated to the EC. Chick-and-egg problem. > Second, does this scenario make any sense: > > There's an Embedded Controller region (In the BIOS? In the DSDT?). One > cannot access a region until registering it, by calling > _REG(RegionSpace, 1). There's an exception to this, however, when using > an ECDT, which describes "controllers" (?) to access the Embedded > Controller region. If you have an ECDT you can then access this region > before registering it. So I think that's what the DSDT is doing, but > without providing an ECDT? The DSDT does nothing. This is only a table that contain a language. ECDT is a table, also. It is not in DSDT. > Third, would this solution work? > > Rather than provide an ECDT, we can alternately try and fix the DSDT. Most of ACPI 1.0 compliant system (before ACPI 2.0) implement a _REG method which basically make a kind of boolean. Then you look if that boolean is true, or false. This have though some incorrect behaviour, like 'discovering' at boot that there are 2 batteries fully charged for example. Note also that thinkpad does actually the two, and check the \_REV in a _INI method to see if it is a ACPI 2, or not. Im not sure that is a good idea from IBM. I think that we should do a fake ECDT option. That is straightforward to implement anyway. -- Ducrot Bruno -- Which is worse: ignorance or apathy? -- Don't know. Don't care. ------------------------------------------------------- This SF.Net email sponsored by: ApacheCon 2003, 16-19 November in Las Vegas. Learn firsthand the latest developments in Apache, PHP, Perl, XML, Java, MySQL, WebDAV, and more! http://www.apachecon.com/ ^ permalink raw reply [flat|nested] 16+ messages in thread
[parent not found: <20031113001013.GE32464-kk6yZipjEM5g9hUCZPvPmw@public.gmane.org>]
* Re: Re: acpi on new gateway laptops [not found] ` <20031113001013.GE32464-kk6yZipjEM5g9hUCZPvPmw@public.gmane.org> @ 2003-11-13 17:03 ` William Morgan [not found] ` <20031113170333.GA2336-xW3KcqxHEMnk1uMJSBkQmQ@public.gmane.org> 0 siblings, 1 reply; 16+ messages in thread From: William Morgan @ 2003-11-13 17:03 UTC (permalink / raw) To: acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f Hi Ducrot, Excerpts (reformatted) from Ducrot Bruno's mail of 12 Nov 2003 (EST): > I think that we should do a fake ECDT option. That is straightforward > to implement anyway. I'm happy to hear you say this is straightforward, but I have no idea how to do this. What do I put in the fake ECDT? Thanks, -- William ------------------------------------------------------- This SF.Net email sponsored by: ApacheCon 2003, 16-19 November in Las Vegas. Learn firsthand the latest developments in Apache, PHP, Perl, XML, Java, MySQL, WebDAV, and more! http://www.apachecon.com/ ^ permalink raw reply [flat|nested] 16+ messages in thread
[parent not found: <20031113170333.GA2336-xW3KcqxHEMnk1uMJSBkQmQ@public.gmane.org>]
* Re: Re: acpi on new gateway laptops [not found] ` <20031113170333.GA2336-xW3KcqxHEMnk1uMJSBkQmQ@public.gmane.org> @ 2003-11-18 15:11 ` Ducrot Bruno [not found] ` <20031118151139.GA32464-kk6yZipjEM5g9hUCZPvPmw@public.gmane.org> 0 siblings, 1 reply; 16+ messages in thread From: Ducrot Bruno @ 2003-11-18 15:11 UTC (permalink / raw) To: William Morgan; +Cc: acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f [-- Attachment #1: Type: text/plain, Size: 1603 bytes --] On Thu, Nov 13, 2003 at 12:03:33PM -0500, William Morgan wrote: > Hi Ducrot, > > Excerpts (reformatted) from Ducrot Bruno's mail of 12 Nov 2003 (EST): > > I think that we should do a fake ECDT option. That is straightforward > > to implement anyway. > > I'm happy to hear you say this is straightforward, but I have no idea > how to do this. > > What do I put in the fake ECDT? > Well, I forgot that ECDT support is somewhat still buggy. Here is anyway a patch, but for 2.4.23-rc1. It sucks like hell, though, but it should work. I needed to get a patch from Shaohua, but I needed to look a little bit inside, due to compilation warnings. Then the patch for faking an ECDT can be done. The attachement include both patchs. When Shaohua work will be included in 2.4 mainstream, I will go for a bit more cleaner patch. I don't request this patch being in mainstream, because it is more an hack, and need therefore to be rewrotten. On boot, supply something like that: ecdt_fake=0x66:0x62:5:-1:\\_SB.PCI0.PIB.EC0 where 0x66 is for the command port, 0x62, the data one, 5 is the gpe_bit number, -1 is the uid (when there is no uid in the DSDT, then just pass -1), and the full path to the EC (for me, it is \_SB.PCI0.PIB.EC0). Note that the double \\, needed for lilo. I must admit I don't know if that's true for grub. On lilo, I make something like that: append="ecdt_fake=0x66:0x62:5:-1:\\_SB.PCI0.PIB.EC0" Of course, you need at first to get the info from your DSDT at really first. Cheers, -- Ducrot Bruno -- Which is worse: ignorance or apathy? -- Don't know. Don't care. [-- Attachment #2: 10_fake_ecdt.diff --] [-- Type: text/plain, Size: 10708 bytes --] --- orig/linux-2.4.23-rc1/drivers/acpi//acpi_ksyms.c 2003-08-25 13:44:40.000000000 +0200 +++ linux-2.4.23-rc1/drivers/acpi//acpi_ksyms.c 2003-11-18 15:24:32.000000000 +0100 @@ -102,7 +102,7 @@ EXPORT_SYMBOL(acpi_os_create_semaphore); EXPORT_SYMBOL(acpi_os_delete_semaphore); EXPORT_SYMBOL(acpi_os_wait_semaphore); - +EXPORT_SYMBOL(acpi_os_wait_events_complete); EXPORT_SYMBOL(acpi_os_read_pci_configuration); /* ACPI Utilities (acpi_utils.c) */ --- orig/linux-2.4.23-rc1/drivers/acpi//ec.c 2003-11-18 15:53:02.000000000 +0100 +++ linux-2.4.23-rc1/drivers/acpi//ec.c 2003-11-18 15:50:00.000000000 +0100 @@ -1,5 +1,5 @@ /* - * acpi_ec.c - ACPI Embedded Controller Driver ($Revision: 36 $) + * acpi_ec.c - ACPI Embedded Controller Driver ($Revision: 1.1 $) * * Copyright (C) 2001, 2002 Andy Grover <andrew.grover-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org> * Copyright (C) 2001, 2002 Paul Diefenbaugh <paul.s.diefenbaugh-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org> @@ -87,6 +87,11 @@ /* If we find an EC via the ECDT, we need to keep a ptr to its context */ static struct acpi_ec *ec_ecdt; +/* Fake an ECDT, if the BIOS do not provide one, but we need it though */ +static int is_ecdt_fake = 0; +static struct acpi_ec ecdt_fake; +static char ecdt_fake_id[255]; + /* External interfaces use first EC only, so remember */ static struct acpi_device *first_ec; @@ -585,12 +590,16 @@ we now have the *real* EC info, so kill the makeshift one.*/ acpi_evaluate_integer(ec->handle, "_UID", NULL, &uid); if (ec_ecdt && ec_ecdt->uid == uid) { + acpi_disable_gpe(NULL, ec_ecdt->gpe_bit, ACPI_NOT_ISR); + acpi_os_wait_events_complete(ec_ecdt); acpi_remove_address_space_handler(ACPI_ROOT_OBJECT, ACPI_ADR_SPACE_EC, &acpi_ec_space_handler); acpi_remove_gpe_handler(NULL, ec_ecdt->gpe_bit, &acpi_ec_gpe_handler); - kfree(ec_ecdt); + if (!is_ecdt_fake) + kfree(ec_ecdt); + ec_ecdt = NULL; } /* Get GPE bit assignment (EC events). */ @@ -747,6 +756,9 @@ ec = acpi_driver_data(device); + acpi_disable_gpe(NULL, ec->gpe_bit, ACPI_NOT_ISR); + acpi_os_wait_events_complete(ec); + status = acpi_remove_address_space_handler(ec->handle, ACPI_ADR_SPACE_EC, &acpi_ec_space_handler); if (ACPI_FAILURE(status)) @@ -766,31 +778,38 @@ acpi_status status; struct acpi_table_ecdt *ecdt_ptr; - status = acpi_get_firmware_table("ECDT", 1, ACPI_LOGICAL_ADDRESSING, - (struct acpi_table_header **) &ecdt_ptr); - if (ACPI_FAILURE(status)) - return 0; + if (!is_ecdt_fake) { + status = acpi_get_firmware_table("ECDT", 1, ACPI_LOGICAL_ADDRESSING, + (struct acpi_table_header **) &ecdt_ptr); + if (ACPI_FAILURE(status)) + return 0; - printk(KERN_INFO PREFIX "Found ECDT\n"); + printk(KERN_INFO PREFIX "Found ECDT\n"); - /* - * Generate a temporary ec context to use until the namespace is scanned - */ - ec_ecdt = kmalloc(sizeof(struct acpi_ec), GFP_KERNEL); - if (!ec_ecdt) - return -ENOMEM; - memset(ec_ecdt, 0, sizeof(struct acpi_ec)); - - ec_ecdt->command_addr = ecdt_ptr->ec_control; - ec_ecdt->status_addr = ecdt_ptr->ec_control; - ec_ecdt->data_addr = ecdt_ptr->ec_data; - ec_ecdt->gpe_bit = ecdt_ptr->gpe_bit; - ec_ecdt->lock = SPIN_LOCK_UNLOCKED; - /* use the GL just to be safe */ - ec_ecdt->global_lock = TRUE; - ec_ecdt->uid = ecdt_ptr->uid; + /* + * Generate a temporary ec context to use until the namespace is scanned + */ + ec_ecdt = kmalloc(sizeof(struct acpi_ec), GFP_KERNEL); + if (!ec_ecdt) + return -ENOMEM; + memset(ec_ecdt, 0, sizeof(struct acpi_ec)); + + ec_ecdt->command_addr = ecdt_ptr->ec_control; + ec_ecdt->status_addr = ecdt_ptr->ec_control; + ec_ecdt->data_addr = ecdt_ptr->ec_data; + ec_ecdt->gpe_bit = ecdt_ptr->gpe_bit; + ec_ecdt->lock = SPIN_LOCK_UNLOCKED; + /* use the GL just to be safe */ + ec_ecdt->global_lock = TRUE; + ec_ecdt->uid = ecdt_ptr->uid; + } else { + if (ec_ecdt) + printk(KERN_INFO PREFIX "Faking ECDT\n"); + else + printk(KERN_INFO PREFIX "Can't fake ECDT. Bug?\n"); + } - status = acpi_get_handle(NULL, ecdt_ptr->ec_id, &ec_ecdt->handle); + status = acpi_get_handle(NULL, is_ecdt_fake ? ecdt_fake_id : ecdt_ptr->ec_id, &ec_ecdt->handle); if (ACPI_FAILURE(status)) { goto error; } @@ -818,7 +837,8 @@ error: printk(KERN_ERR PREFIX "Could not use ECDT\n"); - kfree(ec_ecdt); + if (!is_ecdt_fake) + kfree(ec_ecdt); ec_ecdt = NULL; return -ENODEV; @@ -845,6 +865,89 @@ return_VALUE(0); } +int __init +acpi_fake_ecdt_setup(char *str) +{ + u64 control; + u64 data; + unsigned long gpe_bit; + unsigned long uid; +// char *handle; + struct acpi_generic_address reg; + + if (!str || !*str) + return 0; + + control = simple_strtoull(str, &str, 0); + if (!control || !str || *str != ':') + return 0; + str++; + + data = simple_strtoull(str, &str, 0); + if (!data || !str || *str != ':') + return 0; + str++; + + gpe_bit = simple_strtoul(str, &str, 0); + if (!str || *str != ':') + return 0; + str++; + + /* uid made be -1 */ + uid = simple_strtol(str, &str, 0); + if (!str || *str != ':') + return 0; + str++; + + memset(ecdt_fake_id, 0, 255); + strncpy(ecdt_fake_id, str, strlen(str)); +#if 0 + handle = kmalloc(strlen(str)+1, GFP_KERNEL); + if (!handle) + return 0; + strncpy(handle, str, strlen(str)); +#endif + // strncpy(ecdt_fake_handle, str, strlen(str)); + +#if 0 + ec_ecdt = kmalloc(sizeof(struct acpi_ec), GFP_KERNEL); + if (!ec_ecdt) { + kfree(handle); + return 0; + } +#endif + + ec_ecdt = &ecdt_fake; + memset(ec_ecdt, 0, sizeof(struct acpi_ec)); + + memset(®, 0, sizeof(reg)); + reg.address_space_id = ACPI_ADR_SPACE_SYSTEM_IO; + reg.register_bit_width = 8; + reg.register_bit_offset = 0; + + memcpy(&ec_ecdt->command_addr, ®, sizeof(reg)); + memcpy(&ec_ecdt->status_addr, ®, sizeof(reg)); + memcpy(&ec_ecdt->data_addr, ®, sizeof(reg)); + + ec_ecdt->command_addr.address = control; + ec_ecdt->status_addr.address = control; + ec_ecdt->data_addr.address = data; + ec_ecdt->gpe_bit = gpe_bit; + ec_ecdt->lock = SPIN_LOCK_UNLOCKED; + /* use the GL just to be safe */ + ec_ecdt->global_lock = TRUE; + ec_ecdt->uid = uid; + // ec_ecdt->handle = handle; + + is_ecdt_fake = 1; + + return 1; + +} + +__setup("ecdt_fake=", acpi_fake_ecdt_setup); + + /* EC can't be unloaded atm, so don't compile these */ #if 0 void __exit --- orig/linux-2.4.23-rc1/drivers/acpi//osl.c 2003-08-25 13:44:41.000000000 +0200 +++ linux-2.4.23-rc1/drivers/acpi//osl.c 2003-11-18 15:35:27.000000000 +0100 @@ -54,6 +54,7 @@ { OSD_EXECUTION_CALLBACK function; void *context; + struct list_head next; }; @@ -611,25 +612,36 @@ #endif /*CONFIG_ACPI_PCI*/ -static void -acpi_os_execute_deferred ( - void *context) -{ - struct acpi_os_dpc *dpc = NULL; - - ACPI_FUNCTION_TRACE ("os_execute_deferred"); - - dpc = (struct acpi_os_dpc *) context; - if (!dpc) { - ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Invalid (NULL) context.\n")); - return_VOID; +/* + * ACPI use kernel thread to handle SCI interrupt. Every SCI interrupt will add + * a new entry in the acpi events queue. And keventd will execute the queue.The + * purpose to implement the new queue is to provide a mechanism in which we can + * wait for completing SCI interrupt handling. In this way, before EC replaced + * ECDT, it can guarantee all SCI interrupts with ECDT as its context complete. + */ +static LIST_HEAD(acpi_events_list); +static spinlock_t acpi_events_list_spinlock = SPIN_LOCK_UNLOCKED; +static struct tq_struct task; +static int first_acpi_event = 1; + +static void +do_acpi_task_queue(void *dummy) +{ + struct list_head *p; + struct acpi_os_dpc *dpc; + unsigned long flags = 0; + + spin_lock_irqsave(&acpi_events_list_spinlock, flags); + while (!list_empty(&acpi_events_list)) { + p = acpi_events_list.next; /* get first item */ + dpc = (struct acpi_os_dpc *)list_entry(p, struct acpi_os_dpc, next); + list_del(p); + spin_unlock_irqrestore(&acpi_events_list_spinlock, flags); + dpc->function(dpc->context); + kfree(dpc); + spin_lock_irqsave(&acpi_events_list_spinlock, flags); } - - dpc->function(dpc->context); - - kfree(dpc); - - return_VOID; + spin_unlock_irqrestore(&acpi_events_list_spinlock, flags); } acpi_status @@ -639,45 +651,63 @@ void *context) { acpi_status status = AE_OK; - struct acpi_os_dpc *dpc = NULL; - struct tq_struct *task; + struct acpi_os_dpc *dpc; - ACPI_FUNCTION_TRACE ("os_queue_for_execution"); + ACPI_FUNCTION_TRACE ("acpi_os_queue_for_execution"); ACPI_DEBUG_PRINT ((ACPI_DB_EXEC, "Scheduling function [%p(%p)] for deferred execution.\n", function, context)); if (!function) return_ACPI_STATUS (AE_BAD_PARAMETER); - - /* - * Allocate/initialize DPC structure. Note that this memory will be - * freed by the callee. The kernel handles the tq_struct list in a - * way that allows us to also free its memory inside the callee. - * Because we may want to schedule several tasks with different - * parameters we can't use the approach some kernel code uses of - * having a static tq_struct. - * We can save time and code by allocating the DPC and tq_structs - * from the same memory. - */ - dpc = kmalloc(sizeof(struct acpi_os_dpc)+sizeof(struct tq_struct), GFP_ATOMIC); + dpc = kmalloc(sizeof(struct acpi_os_dpc), GFP_ATOMIC); if (!dpc) return_ACPI_STATUS (AE_NO_MEMORY); dpc->function = function; dpc->context = context; - - task = (void *)(dpc+1); - INIT_TQUEUE(task, acpi_os_execute_deferred, (void*)dpc); - - if (!schedule_task(task)) { - ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Call to schedule_task() failed.\n")); - kfree(dpc); - status = AE_ERROR; + INIT_LIST_HEAD(&dpc->next); + + spin_lock(&acpi_events_list_spinlock); + list_add_tail(&dpc->next, &acpi_events_list); + if (first_acpi_event || (!task.sync)) { + INIT_TQUEUE(&task, do_acpi_task_queue, NULL); + if (!schedule_task(&task)) { + ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, "Call to schedule_work() failed.\n")); + kfree(dpc); + status = AE_ERROR; + } + first_acpi_event = 0; } + spin_unlock(&acpi_events_list_spinlock); return_ACPI_STATUS (status); } +void acpi_os_wait_events_complete( + void * context) +{ + unsigned long flags; + int over = 0; + struct list_head * node, * next; + + while (!over) { + over = 1; + spin_lock_irqsave(&acpi_events_list_spinlock, flags); + list_for_each_safe(node, next, &acpi_events_list) { + struct acpi_os_dpc *dpc = list_entry(node, struct acpi_os_dpc, next); + if (dpc->context == context) { + over = 0; + break; + } + } + + spin_unlock_irqrestore(&acpi_events_list_spinlock, flags); + if (over) + return; + do_acpi_task_queue(NULL); + } +} + /* * Allocate the memory for a spinlock and initialize it. */ ^ permalink raw reply [flat|nested] 16+ messages in thread
[parent not found: <20031118151139.GA32464-kk6yZipjEM5g9hUCZPvPmw@public.gmane.org>]
* Re: Re: acpi on new gateway laptops [not found] ` <20031118151139.GA32464-kk6yZipjEM5g9hUCZPvPmw@public.gmane.org> @ 2003-11-20 21:42 ` William Morgan 0 siblings, 0 replies; 16+ messages in thread From: William Morgan @ 2003-11-20 21:42 UTC (permalink / raw) To: acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f Excerpts (reformatted) from Ducrot Bruno's mail of 18 Nov 2003 (EST): > Well, I forgot that ECDT support is somewhat still buggy. Here is anyway > a patch, but for 2.4.23-rc1. Ducrot, Thanks for the patch. I will try it presently. In the mean time I've hacked up an ECDT and tried inserting it at boot time by saying, in drivers/acpi/osl.c: *new_table = NULL; if (strncmp(existing_table->signature,"ECDT",4) != 0) { printk(KERN_INFO PREFIX "overriding ECDT definition\n"); *new_table = (struct acpi_table_header *)ecdt_table; } However, at boot time, I get the following in dmesg: ACPI: overriding ECDT definition tbget-0292: *** Info: Table [ECDT] replaced by host OS tbrsdt-0227: *** Error: Invalid signature where RSDP indicates RSDT/XSDT should be located RSDT/XSDT signature at 1F6E7D39 (1f6e7d39) is invalid So obviously I'm doing something wrong. The ECDT looks like this: /* * ECDT table for Gateway laptops circa 2003 * * header: * signature "ECDT" * length: 86 * revision: 0x1 * checksum: 0x74 * oem_id: "mkecdt" * oem_table_id: "ecdt0001" * oem_revision: 0x1 * asl_compiler_id: "none" * asl_compiler_revision: 0 * ec_control: * address_space_id: 0x1 * address_space_bit_width: 0x8 * register_bit_offset: 0 * reserved (should be 0): 0 * address: 0x66 * ec_data: * address_space_id: 0x1 * address_space_bit_width: 0x8 * register_bit_offset: 0 * reserved (should be 0): 0 * address: 0x62 * uid: 0 * gpe: 0x1c * ec_id: "\_SB_.PCI0.LPCB.H_EC" * compute checksum: passed */ unsigned char ecdt_table[]= { 0x45, 0x43, 0x44, 0x54, 0x56, 0x00, 0x00, 0x00, 0x01, 0x74, 0x6d, 0x6b, 0x65, 0x63, 0x64, 0x74, 0x65, 0x63, 0x64, 0x74, 0x30, 0x30, 0x30, 0x31, 0x01, 0x00, 0x00, 0x00, 0x6e, 0x6f, 0x6e, 0x65, 0x00, 0x00, 0x00, 0x00, 0x01, 0x08, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x08, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x5c, 0x5f, 0x53, 0x42, 0x5f, 0x2e, 0x50, 0x43, 0x49, 0x30, 0x2e, 0x4c, 0x50, 0x43, 0x42, 0x2e, 0x48, 0x5f, 0x45, 0x43, 0x00, }; So maybe I'll just try your patch. -- William ------------------------------------------------------- This SF.net email is sponsored by: SF.net Giveback Program. Does SourceForge.net help you be more productive? Does it help you create better code? SHARE THE LOVE, and help us help YOU! Click Here: http://sourceforge.net/donate/ ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: acpi on new gateway laptops [not found] ` <20031112232315.GD430-xW3KcqxHEMnk1uMJSBkQmQ@public.gmane.org> 2003-11-12 23:33 ` William Morgan @ 2003-11-17 18:25 ` Nate Lawson [not found] ` <20031117183900.GA32570@masanjin.net> 1 sibling, 1 reply; 16+ messages in thread From: Nate Lawson @ 2003-11-17 18:25 UTC (permalink / raw) To: William Morgan; +Cc: Casey Harkins, acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f On Wed, 12 Nov 2003, William Morgan wrote: > It seems like having an ECDT is an optional feature? If that's so, then > what's the problem? Why isn't Linux simply "discovering and enumerating" > the "Embedded Controller device in the AML namespace"? Yes, it's optional. > > The reason is BIOS of Gateway 400VTX lacks ECDT table. And before > > initialize EC device, DSDT use ec space region when execute some ASL > > init methods. This will cause that battery can't be initializing. > > So, what I *think* is happening, based on that, and on pp.203--204, is: > > There's an Embedded Controller region (In the BIOS? In the DSDT?). One in the DSDT > cannot access a region until registering it, by calling > _REG(RegionSpace, 1). There's an exception to this, however, when using > an ECDT, which describes "controllers" (?) to access the Embedded > Controller region. If you have an ECDT you can then access this region > before registering it. So I think that's what the DSDT is doing, but > without providing an ECDT? > > So. This implies that rather than provide an ECDT, we can alternately > try and fix the DSDT. Since it's buggy anyways, that might conserve some > effort, and has the nice advantage of not forcing an upgrade to ACPI 2.0. > (Assuming I am ACPI 1.0 like you.) Your DSDT attempts to access regions before there is an attached EC to service the calls to that space, yes. So the two approaches are to provide an ECDT or change the DSDT to not reference those spaces early in boot. The problem with the latter option is that those accesses may be crucial to initializing your laptop. So if you remove them, it may start up in a partially initialized state. It's probably cleaner to provide an ECDT. -Nate ------------------------------------------------------- This SF. Net email is sponsored by: GoToMyPC GoToMyPC is the fast, easy and secure way to access your computer from any Web browser or wireless device. Click here to Try it Free! https://www.gotomypc.com/tr/OSDN/AW/Q4_2003/t/g22lp?Target=mm/g22lp.tmpl ^ permalink raw reply [flat|nested] 16+ messages in thread
[parent not found: <20031117183900.GA32570@masanjin.net>]
[parent not found: <20031117183900.GA32570-xW3KcqxHEMnk1uMJSBkQmQ@public.gmane.org>]
* Re: acpi on new gateway laptops [not found] ` <20031117183900.GA32570-xW3KcqxHEMnk1uMJSBkQmQ@public.gmane.org> @ 2003-11-17 18:54 ` Nate Lawson [not found] ` <20031117104936.N60907-Y6VGUYTwhu0@public.gmane.org> 0 siblings, 1 reply; 16+ messages in thread From: Nate Lawson @ 2003-11-17 18:54 UTC (permalink / raw) To: William Morgan; +Cc: acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f On Mon, 17 Nov 2003, William Morgan wrote: > Excerpts (reformatted) from Nate Lawson's mail of 17 Nov 2003 (EST): > > Your DSDT attempts to access regions before there is an attached EC to > > service the calls to that space, yes. So the two approaches are to > > provide an ECDT or change the DSDT to not reference those spaces early > > in boot. The problem with the latter option is that those accesses > > may be crucial to initializing your laptop. So if you remove them, it > > may start up in a partially initialized state. It's probably cleaner > > to provide an ECDT. > > Thanks for your reply! That's the sentiment others have expressed as > well---the easiest thing to do is provide an ECDT. Unfortunately, we're > not really sure how to do this, and no one seems able (or willing!) to > say. > > The ACPI spec describes the contents of the table, but it's not clear to > me how, exactly, what the "processor relative address of the embedded > controller command/status register, in generic address structure format" > is supposed to be. How can we discover all these gory details about the > EC? Get the data from the DSDT. Dump it with acpidmp, search for PNP0C09, then write down the resources. Mine is below: Device (EC) { Name (_HID, EisaId ("PNP0C09")) Name (_UID, 0x00) Name (_GPE, 0x1C) ... Name (_CRS, ResourceTemplate () { IO (Decode16, 0x0062, 0x0062, 0x01, 0x01) IO (Decode16, 0x0066, 0x0066, 0x01, 0x01) }) } This corresponds to a GPE of 0x1c, control reg 0x66, data reg 0x62. Below is the correct ECDT for this EC: ECDT: Length=82, Revision=1, Checksum=5, OEMID=IBM, OEM Table ID=TP-1A, OEM Revision=0x1160, Creator ID=IBM, Creator Revision=0x1 EC_CONTROL=0x66:0[8] (IO) EC_DATA=0x62:0[8] (IO) UID=0, GPE_BIT=0x1c EC_ID=\_SB.PCI0.LPC.EC Note that I develop FreeBSD so Linux may have slightly different ways of defining things. -Nate ------------------------------------------------------- This SF. Net email is sponsored by: GoToMyPC GoToMyPC is the fast, easy and secure way to access your computer from any Web browser or wireless device. Click here to Try it Free! https://www.gotomypc.com/tr/OSDN/AW/Q4_2003/t/g22lp?Target=mm/g22lp.tmpl ^ permalink raw reply [flat|nested] 16+ messages in thread
[parent not found: <20031117104936.N60907-Y6VGUYTwhu0@public.gmane.org>]
* Re: acpi on new gateway laptops [not found] ` <20031117104936.N60907-Y6VGUYTwhu0@public.gmane.org> @ 2003-11-17 19:37 ` William Morgan [not found] ` <20031117193719.GB32570-xW3KcqxHEMnk1uMJSBkQmQ@public.gmane.org> 2003-12-08 23:19 ` Casey Harkins 1 sibling, 1 reply; 16+ messages in thread From: William Morgan @ 2003-11-17 19:37 UTC (permalink / raw) To: Nate Lawson; +Cc: acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f Excerpts (reformatted) from Nate Lawson's mail of 17 Nov 2003 (EST): > Get the data from the DSDT. Dump it with acpidmp, search for PNP0C09, > then write down the resources. Mine is below: Hm, mine looks like this: Device(H_EC) { Name(_HID, 0x090cd041) Name(_UID, 0x1) Method(_CRS) { Name(BFFR, Buffer(0x12) {0x47, 0x1, 0x62, 0x0, 0x62, 0x0, 0x0, 0x1, 0x47, 0x1, 0x66, 0x0, 0x66, 0x0, 0x0, 0x1, 0x79, 0x0 }) Return(BFFR) } OperationRegion(ECR_, EmbeddedControl, 0x0, 0xff) ... } So I'm guessing that this also corresponds to control reg=0x66 and data reg=0x62 as I see those two numbers in the buffer. So I think I should be able to use an ECDT that's identical to yours, except the EC_ID field (which in my case is "\_SB_.PCI0.LPCB.H_EC").... Let me know if that doesn't seem right; otherwise, thank you very much for the instructions. -- William ------------------------------------------------------- This SF. Net email is sponsored by: GoToMyPC GoToMyPC is the fast, easy and secure way to access your computer from any Web browser or wireless device. Click here to Try it Free! https://www.gotomypc.com/tr/OSDN/AW/Q4_2003/t/g22lp?Target=mm/g22lp.tmpl ^ permalink raw reply [flat|nested] 16+ messages in thread
[parent not found: <20031117193719.GB32570-xW3KcqxHEMnk1uMJSBkQmQ@public.gmane.org>]
* Re: acpi on new gateway laptops [not found] ` <20031117193719.GB32570-xW3KcqxHEMnk1uMJSBkQmQ@public.gmane.org> @ 2003-11-17 20:07 ` Nate Lawson [not found] ` <20031117120555.E61216-Y6VGUYTwhu0@public.gmane.org> 0 siblings, 1 reply; 16+ messages in thread From: Nate Lawson @ 2003-11-17 20:07 UTC (permalink / raw) To: William Morgan; +Cc: acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f On Mon, 17 Nov 2003, William Morgan wrote: > Excerpts (reformatted) from Nate Lawson's mail of 17 Nov 2003 (EST): > > Get the data from the DSDT. Dump it with acpidmp, search for PNP0C09, > > then write down the resources. Mine is below: > > Hm, mine looks like this: > > Device(H_EC) { > Name(_HID, 0x090cd041) > Name(_UID, 0x1) > Method(_CRS) { > Name(BFFR, Buffer(0x12) {0x47, 0x1, 0x62, 0x0, 0x62, 0x0, 0x0, 0x1, 0x47, 0x1, 0x66, 0x0, 0x66, 0x0, 0x0, 0x1, 0x79, 0x0 }) > Return(BFFR) > } > OperationRegion(ECR_, EmbeddedControl, 0x0, 0xff) > ... > } > > So I'm guessing that this also corresponds to control reg=0x66 and data > reg=0x62 as I see those two numbers in the buffer. So I think I should be able > to use an ECDT that's identical to yours, except the EC_ID field (which in my > case is "\_SB_.PCI0.LPCB.H_EC").... Looks right but you need to get your _GPE bit also. I think it's 0x79 but you really need to parse the buffer to be sure. There is a flag to acpidmp to parse buffer contents. -Nate ------------------------------------------------------- This SF. Net email is sponsored by: GoToMyPC GoToMyPC is the fast, easy and secure way to access your computer from any Web browser or wireless device. Click here to Try it Free! https://www.gotomypc.com/tr/OSDN/AW/Q4_2003/t/g22lp?Target=mm/g22lp.tmpl ^ permalink raw reply [flat|nested] 16+ messages in thread
[parent not found: <20031117120555.E61216-Y6VGUYTwhu0@public.gmane.org>]
* Re: acpi on new gateway laptops [not found] ` <20031117120555.E61216-Y6VGUYTwhu0@public.gmane.org> @ 2003-11-18 10:35 ` Ducrot Bruno [not found] ` <20031118103549.GZ32464-kk6yZipjEM5g9hUCZPvPmw@public.gmane.org> 0 siblings, 1 reply; 16+ messages in thread From: Ducrot Bruno @ 2003-11-18 10:35 UTC (permalink / raw) To: Nate Lawson; +Cc: William Morgan, acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f On Mon, Nov 17, 2003 at 12:07:30PM -0800, Nate Lawson wrote: > On Mon, 17 Nov 2003, William Morgan wrote: > > Excerpts (reformatted) from Nate Lawson's mail of 17 Nov 2003 (EST): > > > Get the data from the DSDT. Dump it with acpidmp, search for PNP0C09, > > > then write down the resources. Mine is below: > > > > Hm, mine looks like this: > > > > Device(H_EC) { > > Name(_HID, 0x090cd041) > > Name(_UID, 0x1) > > Method(_CRS) { > > Name(BFFR, Buffer(0x12) {0x47, 0x1, 0x62, 0x0, 0x62, 0x0, 0x0, 0x1, 0x47, 0x1, 0x66, 0x0, 0x66, 0x0, 0x0, 0x1, 0x79, 0x0 }) > > Return(BFFR) > > } > > OperationRegion(ECR_, EmbeddedControl, 0x0, 0xff) > > ... > > } > > > > So I'm guessing that this also corresponds to control reg=0x66 and data > > reg=0x62 as I see those two numbers in the buffer. So I think I should be able > > to use an ECDT that's identical to yours, except the EC_ID field (which in my > > case is "\_SB_.PCI0.LPCB.H_EC").... > > Looks right but you need to get your _GPE bit also. I think it's 0x79 > but you really need to parse the buffer to be sure. There is a flag to > acpidmp to parse buffer contents. > Not in the backported version IIRC. -- Ducrot Bruno -- Which is worse: ignorance or apathy? -- Don't know. Don't care. ------------------------------------------------------- This SF. Net email is sponsored by: GoToMyPC GoToMyPC is the fast, easy and secure way to access your computer from any Web browser or wireless device. Click here to Try it Free! https://www.gotomypc.com/tr/OSDN/AW/Q4_2003/t/g22lp?Target=mm/g22lp.tmpl ^ permalink raw reply [flat|nested] 16+ messages in thread
[parent not found: <20031118103549.GZ32464-kk6yZipjEM5g9hUCZPvPmw@public.gmane.org>]
* Re: acpi on new gateway laptops [not found] ` <20031118103549.GZ32464-kk6yZipjEM5g9hUCZPvPmw@public.gmane.org> @ 2003-11-20 21:36 ` William Morgan 0 siblings, 0 replies; 16+ messages in thread From: William Morgan @ 2003-11-20 21:36 UTC (permalink / raw) To: acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f Excerpts (reformatted) from Ducrot Bruno's mail of 18 Nov 2003 (EST): > > Looks right but you need to get your _GPE bit also. I think it's 0x79 > > but you really need to parse the buffer to be sure. There is a flag to > > acpidmp to parse buffer contents. > > Not in the backported version IIRC. There wasn't an option to do this in the acpidmp I found, but luckily the DSDT specified the _GPE as 0x1c a little later on. -- William ------------------------------------------------------- This SF.net email is sponsored by: SF.net Giveback Program. Does SourceForge.net help you be more productive? Does it help you create better code? SHARE THE LOVE, and help us help YOU! Click Here: http://sourceforge.net/donate/ ^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: acpi on new gateway laptops [not found] ` <20031117104936.N60907-Y6VGUYTwhu0@public.gmane.org> 2003-11-17 19:37 ` William Morgan @ 2003-12-08 23:19 ` Casey Harkins [not found] ` <Pine.LNX.4.44.0312081716110.5824-100000-j0XSImJ06nG869pVMd/zofZ8FUJU4vz8@public.gmane.org> 1 sibling, 1 reply; 16+ messages in thread From: Casey Harkins @ 2003-12-08 23:19 UTC (permalink / raw) To: acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f On Mon, 17 Nov 2003, Nate Lawson wrote: > Get the data from the DSDT. Dump it with acpidmp, search for PNP0C09, > then write down the resources. Mine is below: > > Device (EC) > { > Name (_HID, EisaId ("PNP0C09")) > Name (_UID, 0x00) > Name (_GPE, 0x1C) > ... > Name (_CRS, ResourceTemplate () > { > IO (Decode16, 0x0062, 0x0062, 0x01, 0x01) > IO (Decode16, 0x0066, 0x0066, 0x01, 0x01) > }) > } As mentioned before, I'm trying to get the embedded controller working on a Gateway 400VTX. I've dumped the DSDT but see no "Device (EC)" section, nor does "PNP0C09" appear in the DSDT. Does this mean this laptop has no embedded controller? -casey ------------------------------------------------------- This SF.net email is sponsored by: SF.net Giveback Program. Does SourceForge.net help you be more productive? Does it help you create better code? SHARE THE LOVE, and help us help YOU! Click Here: http://sourceforge.net/donate/ ^ permalink raw reply [flat|nested] 16+ messages in thread
[parent not found: <Pine.LNX.4.44.0312081716110.5824-100000-j0XSImJ06nG869pVMd/zofZ8FUJU4vz8@public.gmane.org>]
* Re: acpi on new gateway laptops [not found] ` <Pine.LNX.4.44.0312081716110.5824-100000-j0XSImJ06nG869pVMd/zofZ8FUJU4vz8@public.gmane.org> @ 2003-12-09 1:56 ` Casey Harkins [not found] ` <Pine.LNX.4.44.0312081938000.6722-100000-j0XSImJ06nG869pVMd/zofZ8FUJU4vz8@public.gmane.org> 0 siblings, 1 reply; 16+ messages in thread From: Casey Harkins @ 2003-12-09 1:56 UTC (permalink / raw) To: acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f On Mon, 8 Dec 2003, Casey Harkins wrote: > As mentioned before, I'm trying to get the embedded controller working on > a Gateway 400VTX. I've dumped the DSDT but see no "Device (EC)" section, > nor does "PNP0C09" appear in the DSDT. Does this mean this laptop has no > embedded controller? Oops, after a bit more investigating I see that there is a Device(H_EC) which appears to be my embedded controller. I also see there is a line in my dmesg output, which appears after the "Region EmbeddedControl(3) has no handler..." error messages, that says: ACPI: Embedded Controller [H_EC] (gpe 29) So, Linux appears to be detecting my Embedded Controller after it tries to access the "Region EmbeddedControl(3)". Does this mean that the ecdt *is* being found, but not until after Linux tried to access it? Or does the fact that it is detected not mean that the ecdt is being read? cat /proc/acpi/embedded_controller/H_EC/info: gpe bit: 0x1d ports: 0x66, 0x62 use global lock: no -casey ------------------------------------------------------- This SF.net email is sponsored by: SF.net Giveback Program. Does SourceForge.net help you be more productive? Does it help you create better code? SHARE THE LOVE, and help us help YOU! Click Here: http://sourceforge.net/donate/ ^ permalink raw reply [flat|nested] 16+ messages in thread
[parent not found: <Pine.LNX.4.44.0312081938000.6722-100000-j0XSImJ06nG869pVMd/zofZ8FUJU4vz8@public.gmane.org>]
* Re: acpi on new gateway laptops [not found] ` <Pine.LNX.4.44.0312081938000.6722-100000-j0XSImJ06nG869pVMd/zofZ8FUJU4vz8@public.gmane.org> @ 2003-12-12 17:11 ` Casey Harkins [not found] ` <Pine.LNX.4.44.0312121109510.32380-100000-j0XSImJ06nG869pVMd/zofZ8FUJU4vz8@public.gmane.org> 0 siblings, 1 reply; 16+ messages in thread From: Casey Harkins @ 2003-12-12 17:11 UTC (permalink / raw) To: acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f Anybody? On Mon, 8 Dec 2003, Casey Harkins wrote: > Oops, after a bit more investigating I see that there is a Device(H_EC) > which appears to be my embedded controller. I also see there is a line in > my dmesg output, which appears after the "Region EmbeddedControl(3) has > no handler..." error messages, that says: > > ACPI: Embedded Controller [H_EC] (gpe 29) > > So, Linux appears to be detecting my Embedded Controller after it tries to > access the "Region EmbeddedControl(3)". Does this mean that the ecdt *is* > being found, but not until after Linux tried to access it? Or does the > fact that it is detected not mean that the ecdt is being read? > > cat /proc/acpi/embedded_controller/H_EC/info: > gpe bit: 0x1d > ports: 0x66, 0x62 > use global lock: no > ------------------------------------------------------- This SF.net email is sponsored by: SF.net Giveback Program. Does SourceForge.net help you be more productive? Does it help you create better code? SHARE THE LOVE, and help us help YOU! Click Here: http://sourceforge.net/donate/ ^ permalink raw reply [flat|nested] 16+ messages in thread
[parent not found: <Pine.LNX.4.44.0312121109510.32380-100000-j0XSImJ06nG869pVMd/zofZ8FUJU4vz8@public.gmane.org>]
* Re: acpi on new gateway laptops [not found] ` <Pine.LNX.4.44.0312121109510.32380-100000-j0XSImJ06nG869pVMd/zofZ8FUJU4vz8@public.gmane.org> @ 2003-12-12 18:01 ` Sérgio Monteiro Basto 0 siblings, 0 replies; 16+ messages in thread From: Sérgio Monteiro Basto @ 2003-12-12 18:01 UTC (permalink / raw) To: Casey Harkins; +Cc: acpi-devel I have: cat /proc/acpi/embedded_controller/EC/info gpe bit: 0x06 ports: 0x66, 0x62 use global lock: no but no kind of lines appears in dmesg. On Fri, 2003-12-12 at 17:11, Casey Harkins wrote: > > Anybody? > > On Mon, 8 Dec 2003, Casey Harkins wrote: > > Oops, after a bit more investigating I see that there is a Device(H_EC) > > which appears to be my embedded controller. I also see there is a line in > > my dmesg output, which appears after the "Region EmbeddedControl(3) has > > no handler..." error messages, that says: > > > > ACPI: Embedded Controller [H_EC] (gpe 29) > > > > So, Linux appears to be detecting my Embedded Controller after it tries to > > access the "Region EmbeddedControl(3)". Does this mean that the ecdt *is* > > being found, but not until after Linux tried to access it? Or does the > > fact that it is detected not mean that the ecdt is being read? > > > > cat /proc/acpi/embedded_controller/H_EC/info: > > gpe bit: 0x1d > > ports: 0x66, 0x62 > > use global lock: no > > -- Sérgio M B ------------------------------------------------------- This SF.net email is sponsored by: SF.net Giveback Program. Does SourceForge.net help you be more productive? Does it help you create better code? SHARE THE LOVE, and help us help YOU! Click Here: http://sourceforge.net/donate/ ^ permalink raw reply [flat|nested] 16+ messages in thread
end of thread, other threads:[~2003-12-12 18:01 UTC | newest]
Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-11-12 23:23 acpi on new gateway laptops William Morgan
[not found] ` <20031112232315.GD430-xW3KcqxHEMnk1uMJSBkQmQ@public.gmane.org>
2003-11-12 23:33 ` William Morgan
[not found] ` <20031112233328.GE430-xW3KcqxHEMnk1uMJSBkQmQ@public.gmane.org>
2003-11-13 0:10 ` Ducrot Bruno
[not found] ` <20031113001013.GE32464-kk6yZipjEM5g9hUCZPvPmw@public.gmane.org>
2003-11-13 17:03 ` William Morgan
[not found] ` <20031113170333.GA2336-xW3KcqxHEMnk1uMJSBkQmQ@public.gmane.org>
2003-11-18 15:11 ` Ducrot Bruno
[not found] ` <20031118151139.GA32464-kk6yZipjEM5g9hUCZPvPmw@public.gmane.org>
2003-11-20 21:42 ` William Morgan
2003-11-17 18:25 ` Nate Lawson
[not found] ` <20031117183900.GA32570@masanjin.net>
[not found] ` <20031117183900.GA32570-xW3KcqxHEMnk1uMJSBkQmQ@public.gmane.org>
2003-11-17 18:54 ` Nate Lawson
[not found] ` <20031117104936.N60907-Y6VGUYTwhu0@public.gmane.org>
2003-11-17 19:37 ` William Morgan
[not found] ` <20031117193719.GB32570-xW3KcqxHEMnk1uMJSBkQmQ@public.gmane.org>
2003-11-17 20:07 ` Nate Lawson
[not found] ` <20031117120555.E61216-Y6VGUYTwhu0@public.gmane.org>
2003-11-18 10:35 ` Ducrot Bruno
[not found] ` <20031118103549.GZ32464-kk6yZipjEM5g9hUCZPvPmw@public.gmane.org>
2003-11-20 21:36 ` William Morgan
2003-12-08 23:19 ` Casey Harkins
[not found] ` <Pine.LNX.4.44.0312081716110.5824-100000-j0XSImJ06nG869pVMd/zofZ8FUJU4vz8@public.gmane.org>
2003-12-09 1:56 ` Casey Harkins
[not found] ` <Pine.LNX.4.44.0312081938000.6722-100000-j0XSImJ06nG869pVMd/zofZ8FUJU4vz8@public.gmane.org>
2003-12-12 17:11 ` Casey Harkins
[not found] ` <Pine.LNX.4.44.0312121109510.32380-100000-j0XSImJ06nG869pVMd/zofZ8FUJU4vz8@public.gmane.org>
2003-12-12 18:01 ` Sérgio Monteiro Basto
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox