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
|
S2x, //S200 (J1 reported), Victor MP-XP7210
|
||||||
W1N, //W1000N
|
W1N, //W1000N
|
||||||
W5A, //W5A
|
W5A, //W5A
|
||||||
|
W3V, //W3030V
|
||||||
xxN, //M2400N, M3700N, M5200N, M6800N, S1300N, S5200N
|
xxN, //M2400N, M3700N, M5200N, M6800N, S1300N, S5200N
|
||||||
//(Centrino)
|
//(Centrino)
|
||||||
END_MODEL
|
END_MODEL
|
||||||
|
@ -376,6 +377,17 @@ static struct model_data model_conf[END_MODEL] = {
|
||||||
.display_get = "\\ADVG"},
|
.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",
|
.name = "xxN",
|
||||||
.mt_mled = "MLED",
|
.mt_mled = "MLED",
|
||||||
/* WLED present, but not controlled by ACPI */
|
/* WLED present, but not controlled by ACPI */
|
||||||
|
@ -555,11 +567,11 @@ static int
|
||||||
write_led(const char __user * buffer, unsigned long count,
|
write_led(const char __user * buffer, unsigned long count,
|
||||||
char *ledname, int ledmask, int invert)
|
char *ledname, int ledmask, int invert)
|
||||||
{
|
{
|
||||||
int value;
|
int rv, value;
|
||||||
int led_out = 0;
|
int led_out = 0;
|
||||||
|
|
||||||
count = parse_arg(buffer, count, &value);
|
rv = parse_arg(buffer, count, &value);
|
||||||
if (count > 0)
|
if (rv > 0)
|
||||||
led_out = value ? 1 : 0;
|
led_out = value ? 1 : 0;
|
||||||
|
|
||||||
hotk->status =
|
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",
|
printk(KERN_WARNING "Asus ACPI: LED (%s) write failed\n",
|
||||||
ledname);
|
ledname);
|
||||||
|
|
||||||
return count;
|
return rv;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -607,20 +619,18 @@ static int
|
||||||
proc_write_ledd(struct file *file, const char __user * buffer,
|
proc_write_ledd(struct file *file, const char __user * buffer,
|
||||||
unsigned long count, void *data)
|
unsigned long count, void *data)
|
||||||
{
|
{
|
||||||
int value;
|
int rv, value;
|
||||||
|
|
||||||
count = parse_arg(buffer, count, &value);
|
rv = parse_arg(buffer, count, &value);
|
||||||
if (count > 0) {
|
if (rv > 0) {
|
||||||
if (!write_acpi_int
|
if (!write_acpi_int
|
||||||
(hotk->handle, hotk->methods->mt_ledd, value, NULL))
|
(hotk->handle, hotk->methods->mt_ledd, value, NULL))
|
||||||
printk(KERN_WARNING
|
printk(KERN_WARNING
|
||||||
"Asus ACPI: LED display write failed\n");
|
"Asus ACPI: LED display write failed\n");
|
||||||
else
|
else
|
||||||
hotk->ledd_status = (u32) value;
|
hotk->ledd_status = (u32) value;
|
||||||
} else if (count < 0)
|
}
|
||||||
printk(KERN_WARNING "Asus ACPI: Error reading user input\n");
|
return rv;
|
||||||
|
|
||||||
return count;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -761,12 +771,12 @@ static int
|
||||||
proc_write_lcd(struct file *file, const char __user * buffer,
|
proc_write_lcd(struct file *file, const char __user * buffer,
|
||||||
unsigned long count, void *data)
|
unsigned long count, void *data)
|
||||||
{
|
{
|
||||||
int value;
|
int rv, value;
|
||||||
|
|
||||||
count = parse_arg(buffer, count, &value);
|
rv = parse_arg(buffer, count, &value);
|
||||||
if (count > 0)
|
if (rv > 0)
|
||||||
set_lcd_state(value);
|
set_lcd_state(value);
|
||||||
return count;
|
return rv;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int read_brightness(void)
|
static int read_brightness(void)
|
||||||
|
@ -830,18 +840,15 @@ static int
|
||||||
proc_write_brn(struct file *file, const char __user * buffer,
|
proc_write_brn(struct file *file, const char __user * buffer,
|
||||||
unsigned long count, void *data)
|
unsigned long count, void *data)
|
||||||
{
|
{
|
||||||
int value;
|
int rv, value;
|
||||||
|
|
||||||
count = parse_arg(buffer, count, &value);
|
rv = parse_arg(buffer, count, &value);
|
||||||
if (count > 0) {
|
if (rv > 0) {
|
||||||
value = (0 < value) ? ((15 < value) ? 15 : value) : 0;
|
value = (0 < value) ? ((15 < value) ? 15 : value) : 0;
|
||||||
/* 0 <= value <= 15 */
|
/* 0 <= value <= 15 */
|
||||||
set_brightness(value);
|
set_brightness(value);
|
||||||
} else if (count < 0) {
|
|
||||||
printk(KERN_WARNING "Asus ACPI: Error reading user input\n");
|
|
||||||
}
|
}
|
||||||
|
return rv;
|
||||||
return count;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void set_display(int value)
|
static void set_display(int value)
|
||||||
|
@ -880,15 +887,12 @@ static int
|
||||||
proc_write_disp(struct file *file, const char __user * buffer,
|
proc_write_disp(struct file *file, const char __user * buffer,
|
||||||
unsigned long count, void *data)
|
unsigned long count, void *data)
|
||||||
{
|
{
|
||||||
int value;
|
int rv, value;
|
||||||
|
|
||||||
count = parse_arg(buffer, count, &value);
|
rv = parse_arg(buffer, count, &value);
|
||||||
if (count > 0)
|
if (rv > 0)
|
||||||
set_display(value);
|
set_display(value);
|
||||||
else if (count < 0)
|
return rv;
|
||||||
printk(KERN_WARNING "Asus ACPI: Error reading user input\n");
|
|
||||||
|
|
||||||
return count;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
typedef int (proc_readfunc) (char *page, char **start, off_t off, int count,
|
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;
|
return A4G;
|
||||||
else if (strncmp(model, "W1N", 3) == 0)
|
else if (strncmp(model, "W1N", 3) == 0)
|
||||||
return W1N;
|
return W1N;
|
||||||
|
else if (strncmp(model, "W3V", 3) == 0)
|
||||||
|
return W3V;
|
||||||
else if (strncmp(model, "W5A", 3) == 0)
|
else if (strncmp(model, "W5A", 3) == 0)
|
||||||
return W5A;
|
return W5A;
|
||||||
else
|
else
|
||||||
|
@ -1200,9 +1206,10 @@ static int asus_hotk_get_info(void)
|
||||||
hotk->methods->mt_wled = NULL;
|
hotk->methods->mt_wled = NULL;
|
||||||
/* L5D's WLED is not controlled by ACPI */
|
/* L5D's WLED is not controlled by ACPI */
|
||||||
else if (strncmp(string, "M2N", 3) == 0 ||
|
else if (strncmp(string, "M2N", 3) == 0 ||
|
||||||
|
strncmp(string, "W3V", 3) == 0 ||
|
||||||
strncmp(string, "S1N", 3) == 0)
|
strncmp(string, "S1N", 3) == 0)
|
||||||
hotk->methods->mt_wled = "WLED";
|
hotk->methods->mt_wled = "WLED";
|
||||||
/* M2N and S1N have a usable WLED */
|
/* M2N, S1N and W3V have a usable WLED */
|
||||||
else if (asus_info) {
|
else if (asus_info) {
|
||||||
if (strncmp(asus_info->oem_table_id, "L1", 2) == 0)
|
if (strncmp(asus_info->oem_table_id, "L1", 2) == 0)
|
||||||
hotk->methods->mled_status = NULL;
|
hotk->methods->mled_status = NULL;
|
||||||
|
|
Loading…
Add table
Reference in a new issue