Loading drivers/acpi/asus_acpi.c +37 −30 Original line number Diff line number Diff line Loading @@ -138,6 +138,7 @@ struct asus_hotk { S2x, //S200 (J1 reported), Victor MP-XP7210 W1N, //W1000N W5A, //W5A W3V, //W3030V xxN, //M2400N, M3700N, M5200N, M6800N, S1300N, S5200N //(Centrino) END_MODEL Loading Loading @@ -375,6 +376,17 @@ static struct model_data model_conf[END_MODEL] = { .display_set = "SDSP", .display_get = "\\ADVG"}, { .name = "W3V", .mt_mled = "MLED", .mt_wled = "WLED", .mt_lcd_switch = xxN_PREFIX "_Q10", .lcd_status = "\\BKLT", .brightness_set = "SPLV", .brightness_get = "GPLV", .display_set = "SDSP", .display_get = "\\INFB"}, { .name = "xxN", .mt_mled = "MLED", Loading Loading @@ -555,11 +567,11 @@ static int write_led(const char __user * buffer, unsigned long count, char *ledname, int ledmask, int invert) { int value; int rv, value; int led_out = 0; count = parse_arg(buffer, count, &value); if (count > 0) rv = parse_arg(buffer, count, &value); if (rv > 0) led_out = value ? 1 : 0; hotk->status = Loading @@ -572,7 +584,7 @@ write_led(const char __user * buffer, unsigned long count, printk(KERN_WARNING "Asus ACPI: LED (%s) write failed\n", ledname); return count; return rv; } /* Loading Loading @@ -607,20 +619,18 @@ static int proc_write_ledd(struct file *file, const char __user * buffer, unsigned long count, void *data) { int value; int rv, value; count = parse_arg(buffer, count, &value); if (count > 0) { rv = parse_arg(buffer, count, &value); if (rv > 0) { if (!write_acpi_int (hotk->handle, hotk->methods->mt_ledd, value, NULL)) printk(KERN_WARNING "Asus ACPI: LED display write failed\n"); else hotk->ledd_status = (u32) value; } else if (count < 0) printk(KERN_WARNING "Asus ACPI: Error reading user input\n"); return count; } return rv; } /* Loading Loading @@ -761,12 +771,12 @@ static int proc_write_lcd(struct file *file, const char __user * buffer, unsigned long count, void *data) { int value; int rv, value; count = parse_arg(buffer, count, &value); if (count > 0) rv = parse_arg(buffer, count, &value); if (rv > 0) set_lcd_state(value); return count; return rv; } static int read_brightness(void) Loading Loading @@ -830,18 +840,15 @@ static int proc_write_brn(struct file *file, const char __user * buffer, unsigned long count, void *data) { int value; int rv, value; count = parse_arg(buffer, count, &value); if (count > 0) { rv = parse_arg(buffer, count, &value); if (rv > 0) { value = (0 < value) ? ((15 < value) ? 15 : value) : 0; /* 0 <= value <= 15 */ set_brightness(value); } else if (count < 0) { printk(KERN_WARNING "Asus ACPI: Error reading user input\n"); } return count; return rv; } static void set_display(int value) Loading Loading @@ -880,15 +887,12 @@ static int proc_write_disp(struct file *file, const char __user * buffer, unsigned long count, void *data) { int value; int rv, value; count = parse_arg(buffer, count, &value); if (count > 0) rv = parse_arg(buffer, count, &value); if (rv > 0) set_display(value); else if (count < 0) printk(KERN_WARNING "Asus ACPI: Error reading user input\n"); return count; return rv; } typedef int (proc_readfunc) (char *page, char **start, off_t off, int count, Loading Loading @@ -1097,6 +1101,8 @@ static int asus_model_match(char *model) return A4G; else if (strncmp(model, "W1N", 3) == 0) return W1N; else if (strncmp(model, "W3V", 3) == 0) return W3V; else if (strncmp(model, "W5A", 3) == 0) return W5A; else Loading Loading @@ -1200,9 +1206,10 @@ static int asus_hotk_get_info(void) hotk->methods->mt_wled = NULL; /* L5D's WLED is not controlled by ACPI */ else if (strncmp(string, "M2N", 3) == 0 || strncmp(string, "W3V", 3) == 0 || strncmp(string, "S1N", 3) == 0) hotk->methods->mt_wled = "WLED"; /* M2N and S1N have a usable WLED */ /* M2N, S1N and W3V have a usable WLED */ else if (asus_info) { if (strncmp(asus_info->oem_table_id, "L1", 2) == 0) hotk->methods->mled_status = NULL; Loading Loading
drivers/acpi/asus_acpi.c +37 −30 Original line number Diff line number Diff line Loading @@ -138,6 +138,7 @@ struct asus_hotk { S2x, //S200 (J1 reported), Victor MP-XP7210 W1N, //W1000N W5A, //W5A W3V, //W3030V xxN, //M2400N, M3700N, M5200N, M6800N, S1300N, S5200N //(Centrino) END_MODEL Loading Loading @@ -375,6 +376,17 @@ static struct model_data model_conf[END_MODEL] = { .display_set = "SDSP", .display_get = "\\ADVG"}, { .name = "W3V", .mt_mled = "MLED", .mt_wled = "WLED", .mt_lcd_switch = xxN_PREFIX "_Q10", .lcd_status = "\\BKLT", .brightness_set = "SPLV", .brightness_get = "GPLV", .display_set = "SDSP", .display_get = "\\INFB"}, { .name = "xxN", .mt_mled = "MLED", Loading Loading @@ -555,11 +567,11 @@ static int write_led(const char __user * buffer, unsigned long count, char *ledname, int ledmask, int invert) { int value; int rv, value; int led_out = 0; count = parse_arg(buffer, count, &value); if (count > 0) rv = parse_arg(buffer, count, &value); if (rv > 0) led_out = value ? 1 : 0; hotk->status = Loading @@ -572,7 +584,7 @@ write_led(const char __user * buffer, unsigned long count, printk(KERN_WARNING "Asus ACPI: LED (%s) write failed\n", ledname); return count; return rv; } /* Loading Loading @@ -607,20 +619,18 @@ static int proc_write_ledd(struct file *file, const char __user * buffer, unsigned long count, void *data) { int value; int rv, value; count = parse_arg(buffer, count, &value); if (count > 0) { rv = parse_arg(buffer, count, &value); if (rv > 0) { if (!write_acpi_int (hotk->handle, hotk->methods->mt_ledd, value, NULL)) printk(KERN_WARNING "Asus ACPI: LED display write failed\n"); else hotk->ledd_status = (u32) value; } else if (count < 0) printk(KERN_WARNING "Asus ACPI: Error reading user input\n"); return count; } return rv; } /* Loading Loading @@ -761,12 +771,12 @@ static int proc_write_lcd(struct file *file, const char __user * buffer, unsigned long count, void *data) { int value; int rv, value; count = parse_arg(buffer, count, &value); if (count > 0) rv = parse_arg(buffer, count, &value); if (rv > 0) set_lcd_state(value); return count; return rv; } static int read_brightness(void) Loading Loading @@ -830,18 +840,15 @@ static int proc_write_brn(struct file *file, const char __user * buffer, unsigned long count, void *data) { int value; int rv, value; count = parse_arg(buffer, count, &value); if (count > 0) { rv = parse_arg(buffer, count, &value); if (rv > 0) { value = (0 < value) ? ((15 < value) ? 15 : value) : 0; /* 0 <= value <= 15 */ set_brightness(value); } else if (count < 0) { printk(KERN_WARNING "Asus ACPI: Error reading user input\n"); } return count; return rv; } static void set_display(int value) Loading Loading @@ -880,15 +887,12 @@ static int proc_write_disp(struct file *file, const char __user * buffer, unsigned long count, void *data) { int value; int rv, value; count = parse_arg(buffer, count, &value); if (count > 0) rv = parse_arg(buffer, count, &value); if (rv > 0) set_display(value); else if (count < 0) printk(KERN_WARNING "Asus ACPI: Error reading user input\n"); return count; return rv; } typedef int (proc_readfunc) (char *page, char **start, off_t off, int count, Loading Loading @@ -1097,6 +1101,8 @@ static int asus_model_match(char *model) return A4G; else if (strncmp(model, "W1N", 3) == 0) return W1N; else if (strncmp(model, "W3V", 3) == 0) return W3V; else if (strncmp(model, "W5A", 3) == 0) return W5A; else Loading Loading @@ -1200,9 +1206,10 @@ static int asus_hotk_get_info(void) hotk->methods->mt_wled = NULL; /* L5D's WLED is not controlled by ACPI */ else if (strncmp(string, "M2N", 3) == 0 || strncmp(string, "W3V", 3) == 0 || strncmp(string, "S1N", 3) == 0) hotk->methods->mt_wled = "WLED"; /* M2N and S1N have a usable WLED */ /* M2N, S1N and W3V have a usable WLED */ else if (asus_info) { if (strncmp(asus_info->oem_table_id, "L1", 2) == 0) hotk->methods->mled_status = NULL; Loading