I think i may have some answers about this "bug". I own a toshiba P100, so i know about the problem and custom DSDT. Last summer, i was using Arch Linux and when kernel 2.6.22 was out for Arch, i installed it on my laptop and lost sound, even if my DSDT file was ok. I decided to check on patched applied by arch devs on their kernel to find out that acpi-asus-m6-battery-fix.patch was the cause of all this (http://bugs.archlinux.org/task/7598#comment17914). I recompiled the 2.6.22 kernel without this patch and magically, the sound on my laptop was working again with my custom DSDT file. Last week, i've decided to try Gusty. Before trying it, i found out about this bug so i decided to investigate on it. I downloaded patch-2.6.23.bz2 from kernel.org to find out that that the some of the modifications that were in acpi-asus-m6-battery-fix.patch were in kernel 2.6.23.
Here's acpi-asus-m6-battery-fix.patch If ECDT is not found, look up EC in DSDT. ---------------------------------------------begins here --------------------------------------- From: Alexey Starikovskiy <[EMAIL PROTECTED]> --- drivers/acpi/ec.c | 29 ++++++++++++++++------------- 1 files changed, 16 insertions(+), 13 deletions(-) diff --git a/drivers/acpi/ec.c b/drivers/acpi/ec.c index 82f496c..5cae633 100644 --- a/drivers/acpi/ec.c +++ b/drivers/acpi/ec.c @@ -801,8 +801,8 @@ ec_parse_device(acpi_handle handle, u32 Level, void *context, void **retval) ec->handle = handle; - ACPI_DEBUG_PRINT((ACPI_DB_INFO, "GPE=0x%02lx, ports=0x%2lx, 0x%2lx", - ec->gpe, ec->command_addr, ec->data_addr)); + printk(KERN_INFO PREFIX "GPE=0x%02lx, ports=0x%2lx, 0x%2lx\n", + ec->gpe, ec->command_addr, ec->data_addr); return AE_CTRL_TERMINATE; } @@ -819,19 +819,22 @@ int __init acpi_ec_ecdt_probe(void) /* * Generate a boot ec context */ - status = acpi_get_table(ACPI_SIG_ECDT, 1, (struct acpi_table_header **)&ecdt_ptr); - if (ACPI_FAILURE(status)) - goto error; - - ACPI_DEBUG_PRINT((ACPI_DB_INFO, "Found ECDT")); - - boot_ec->command_addr = ecdt_ptr->control.address; - boot_ec->data_addr = ecdt_ptr->data.address; - boot_ec->gpe = ecdt_ptr->gpe; - boot_ec->handle = ACPI_ROOT_OBJECT; - + if (ACPI_SUCCESS(status)) { + printk(KERN_INFO PREFIX "Found ECDT\n"); + boot_ec->command_addr = ecdt_ptr->control.address; + boot_ec->data_addr = ecdt_ptr->data.address; + boot_ec->gpe = ecdt_ptr->gpe; + boot_ec->handle = ACPI_ROOT_OBJECT; + } else { + printk(KERN_DEBUG PREFIX "Look up EC in DSDT\n"); + status = acpi_get_devices(ACPI_EC_HID, ec_parse_device, + boot_ec, NULL); + if (ACPI_FAILURE(status)) + goto error; + } + ret = ec_install_handlers(boot_ec); if (!ret) { first_ec = boot_ec; ---------------------------------------------ends here --------------------------------------- Here's what's been changed in drivers/acpi/ec.c in kernel 2.6.23 ---------------------------------------------begins here --------------------------------------- @@ -819,18 +874,22 @@ int __init acpi_ec_ecdt_probe(void) /* * Generate a boot ec context */ - status = acpi_get_table(ACPI_SIG_ECDT, 1, (struct acpi_table_header **)&ecdt_ptr); - if (ACPI_FAILURE(status)) - goto error; - - ACPI_DEBUG_PRINT((ACPI_DB_INFO, "Found ECDT")); - - boot_ec->command_addr = ecdt_ptr->control.address; - boot_ec->data_addr = ecdt_ptr->data.address; - boot_ec->gpe = ecdt_ptr->gpe; - boot_ec->handle = ACPI_ROOT_OBJECT; + if (ACPI_SUCCESS(status)) { + printk(KERN_INFO PREFIX "EC description table is found, configuring boot EC\n\n"); + boot_ec->command_addr = ecdt_ptr->control.address; + boot_ec->data_addr = ecdt_ptr->data.address; + boot_ec->gpe = ecdt_ptr->gpe; + boot_ec->handle = ACPI_ROOT_OBJECT; + } else { + printk(KERN_DEBUG PREFIX "Look up EC in DSDT\n"); + status = acpi_get_devices(ec_device_ids[0].id, ec_parse_device, + boot_ec, NULL); + /* Check that acpi_get_devices actually find something */ + if (ACPI_FAILURE(status) || !boot_ec->handle) + goto error; + } ret = ec_install_handlers(boot_ec); if (!ret) { ---------------------------------------------ends here --------------------------------------- My laptop is my only production machine, so i currently uses mandriva 2008 and have some works to do on it for the next days. Maybe, i'll try later to install gusty and look into the sources of their kernel to modify this file to try to prove my theory! If someone is welling to do it, go ahead! Sorry for my english since i'm french! -- toshiba p100 series dsdt acpi error no sound, works with acpi turned off. https://bugs.launchpad.net/bugs/136469 You received this bug notification because you are a member of Ubuntu Bugs, which is the bug contact for Ubuntu. -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs