Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9443d7c9 authored by Len Brown's avatar Len Brown
Browse files

Pull asus into test branch

parents aeb11048 6df05702
Loading
Loading
Loading
Loading
+37 −30
Original line number Diff line number Diff line
@@ -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
@@ -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",
@@ -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;