From: Ben Collins User with this equipment stated that writes to this file worked correctly, but that reads were showing inverted state (1 for off, 0 for on). Following the same style for reads, introduced an invert flag to read_led, and used it for wled. Signed-off-by: Ben Collins Signed-off-by: Andrew Morton --- drivers/acpi/asus_acpi.c | 10 +++++----- 1 files changed, 5 insertions(+), 5 deletions(-) diff -puN drivers/acpi/asus_acpi.c~asus_acpi-invert-read-of-wled-proc-file-to-show-correct drivers/acpi/asus_acpi.c --- devel/drivers/acpi/asus_acpi.c~asus_acpi-invert-read-of-wled-proc-file-to-show-correct 2006-01-05 22:28:55.000000000 -0800 +++ devel-akpm/drivers/acpi/asus_acpi.c 2006-01-05 22:28:55.000000000 -0800 @@ -490,13 +490,13 @@ proc_read_info(char *page, char **start, */ /* Generic LED functions */ -static int read_led(const char *ledname, int ledmask) +static int read_led(const char *ledname, int ledmask, int invert) { if (ledname) { int led_status; if (read_acpi_int(NULL, ledname, &led_status)) - return led_status; + return (invert) ? !led_status : led_status; else printk(KERN_WARNING "Asus ACPI: Error reading LED " "status\n"); @@ -552,7 +552,7 @@ proc_read_mled(char *page, char **start, void *data) { return sprintf(page, "%d\n", - read_led(hotk->methods->mled_status, MLED_ON)); + read_led(hotk->methods->mled_status, MLED_ON, 0)); } static int @@ -570,7 +570,7 @@ proc_read_wled(char *page, char **start, void *data) { return sprintf(page, "%d\n", - read_led(hotk->methods->wled_status, WLED_ON)); + read_led(hotk->methods->wled_status, WLED_ON, 1)); } static int @@ -588,7 +588,7 @@ proc_read_tled(char *page, char **start, void *data) { return sprintf(page, "%d\n", - read_led(hotk->methods->tled_status, TLED_ON)); + read_led(hotk->methods->tled_status, TLED_ON, 0)); } static int _