Distribution: SuSE 9.3 x86_64 Hardware Environment: Asus L5D series notebook, AMD64 Software Environment: Problem Description: asus_acpi module fills the system log with the message: "Asus ACPI: Error reading LCD status" becuase it incorrectly defines the L5D series as the same as L5C. Steps to reproduce: insert asus_acpi module on L5D machine and read /var/log/messages. I have created a simple patch against 2.6.12-rc5 but I'm not sure if it the ".mt_lcd_switch" and ".lcd_status" defines are correct, although it appears to be more like the L3H I'm probably wrong, however this works for me. I'm not sure where to submit the patch so this seems as good a place as any. See also http://forge.novell.com/modules/xfmod/project/?asus-hotkeys regards, Simon. BEGIN ====================================================================== --- linux/drivers/acpi/asus_acpi.c 2005-03-20 15:34:04.000000000 +0000 +++ linux/drivers/acpi/asus_acpi.c 2005-06-02 12:22:41.000000000 +0100 @@ -124,6 +124,7 @@ L3D, //L3400D L3H, //L3H, but also L2000E L4R, //L4500R + L5D, //L5000D/DF L5x, //L5800C L8L, //L8400L M1A, //M1300A @@ -263,6 +264,19 @@ .display_get = "\\_SB.PCI0.P0P1.VGA.GETD" }, + { + .name = "L5D", + .mt_mled = "MLED", +/* WLED present, but not controlled by ACPI */ +/* TLED not present */ + .mt_lcd_switch = "EHK", /* same as L3H */ + .lcd_status = "\\_SB.PCI0.PM.PBC", /* same as L3H */ + .brightness_set = "SPLV", + .brightness_get = "GPLV", + .display_set = "SDSP", + .display_get = "\\INFB" + }, + { .name = "L5x", .mt_mled = "MLED", @@ -622,7 +636,7 @@ { int lcd = 0; - if (hotk->model != L3H) { + if (hotk->model != L3H && hotk->model != L5D) { /* We don't have to check anything if we are here */ if (!read_acpi_int(NULL, hotk->methods->lcd_status, &lcd)) printk(KERN_WARNING "Asus ACPI: Error reading LCD status\n"); @@ -667,7 +681,7 @@ lcd = value ? 1 : 0; if (lcd != get_lcd_state()) { /* switch */ - if (hotk->model != L3H) { + if (hotk->model != L3H && hotk->model != L5D) { status = acpi_evaluate_object(NULL, hotk->methods->mt_lcd_switch, NULL, NULL); @@ -1054,6 +1068,8 @@ hotk->model = A2x; else if (strncmp(model->string.pointer, "J1", 2) == 0) hotk->model = S2x; + else if (strncmp(model->string.pointer, "L5D", 3) == 0) + hotk->model = L5D; else if (strncmp(model->string.pointer, "L5", 2) == 0) hotk->model = L5x; END =========================================================================
Karol is the right person for asus laptop related issue.
Created attachment 6925 [details] fix This should suffice. I'll put it in my queue. BTW: would you mind attaching your DSDT to this bug report? I cat't seem to find it here.
Created attachment 7636 [details] DSDT of Asus L5D laptop Please note the DSDT with this laptop is buggy (sorry it took so long to get it, I've been dead busy recently)
is this still a problem with 2.6.22.stable?
ping for update again.
mark as unreproducible due to no response. If reopen, please come with need info and action. thanks.