Pull asus into test branch
This commit is contained in:
commit
9443d7c934
1 changed files with 37 additions and 30 deletions
|
@ -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
|
||||
|
@ -376,6 +377,17 @@ static struct model_data model_conf[END_MODEL] = {
|
|||
.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",
|
||||
/* WLED present, but not controlled by ACPI */
|
||||
|
@ -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 =
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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,
|
||||
|
@ -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
|
||||
|
@ -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…
Reference in a new issue