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

Commit b4de123a authored by Len Brown's avatar Len Brown
Browse files

Merge branches 'release', 'ejd', 'sony' and 'wmi' into release

Loading
Loading
Loading
Loading
+2 −2
Original line number Original line Diff line number Diff line
@@ -48,7 +48,7 @@ DSDT.


To send me the DSDT, as root/sudo:
To send me the DSDT, as root/sudo:


cat /sys/firmware/acpi/DSDT > dsdt
cat /sys/firmware/acpi/tables/DSDT > dsdt


And send me the resulting 'dsdt' file.
And send me the resulting 'dsdt' file.


@@ -169,7 +169,7 @@ can be added to acer-wmi.


The LED is exposed through the LED subsystem, and can be found in:
The LED is exposed through the LED subsystem, and can be found in:


/sys/devices/platform/acer-wmi/leds/acer-mail:green/
/sys/devices/platform/acer-wmi/leds/acer-wmi::mail/


The mail LED is autodetected, so if you don't have one, the LED device won't
The mail LED is autodetected, so if you don't have one, the LED device won't
be registered.
be registered.
+2 −1
Original line number Original line Diff line number Diff line
@@ -609,7 +609,8 @@ acpi_bus_get_ejd(acpi_handle handle, acpi_handle *ejd)
	status = acpi_evaluate_object(handle, "_EJD", NULL, &buffer);
	status = acpi_evaluate_object(handle, "_EJD", NULL, &buffer);
	if (ACPI_SUCCESS(status)) {
	if (ACPI_SUCCESS(status)) {
		obj = buffer.pointer;
		obj = buffer.pointer;
		status = acpi_get_handle(NULL, obj->string.pointer, ejd);
		status = acpi_get_handle(ACPI_ROOT_OBJECT, obj->string.pointer,
					 ejd);
		kfree(buffer.pointer);
		kfree(buffer.pointer);
	}
	}
	return status;
	return status;
+6 −4
Original line number Original line Diff line number Diff line
@@ -293,7 +293,7 @@ struct acpi_buffer *out)
{
{
	struct guid_block *block = NULL;
	struct guid_block *block = NULL;
	struct wmi_block *wblock = NULL;
	struct wmi_block *wblock = NULL;
	acpi_handle handle;
	acpi_handle handle, wc_handle;
	acpi_status status, wc_status = AE_ERROR;
	acpi_status status, wc_status = AE_ERROR;
	struct acpi_object_list input, wc_input;
	struct acpi_object_list input, wc_input;
	union acpi_object wc_params[1], wq_params[1];
	union acpi_object wc_params[1], wq_params[1];
@@ -338,6 +338,8 @@ struct acpi_buffer *out)
		 * expensive, but have no corresponding WCxx method. So we
		 * expensive, but have no corresponding WCxx method. So we
		 * should not fail if this happens.
		 * should not fail if this happens.
		 */
		 */
		wc_status = acpi_get_handle(handle, wc_method, &wc_handle);
		if (ACPI_SUCCESS(wc_status))
			wc_status = acpi_evaluate_object(handle, wc_method,
			wc_status = acpi_evaluate_object(handle, wc_method,
				&wc_input, NULL);
				&wc_input, NULL);
	}
	}
@@ -351,7 +353,7 @@ struct acpi_buffer *out)
	 * If ACPI_WMI_EXPENSIVE, call the relevant WCxx method, even if
	 * If ACPI_WMI_EXPENSIVE, call the relevant WCxx method, even if
	 * the WQxx method failed - we should disable collection anyway.
	 * the WQxx method failed - we should disable collection anyway.
	 */
	 */
	if ((block->flags & ACPI_WMI_EXPENSIVE) && wc_status) {
	if ((block->flags & ACPI_WMI_EXPENSIVE) && ACPI_SUCCESS(wc_status)) {
		wc_params[0].integer.value = 0;
		wc_params[0].integer.value = 0;
		status = acpi_evaluate_object(handle,
		status = acpi_evaluate_object(handle,
		wc_method, &wc_input, NULL);
		wc_method, &wc_input, NULL);
+1 −0
Original line number Original line Diff line number Diff line
@@ -108,6 +108,7 @@ config ACER_WMI
	depends on ACPI
	depends on ACPI
	depends on LEDS_CLASS
	depends on LEDS_CLASS
	depends on BACKLIGHT_CLASS_DEVICE
	depends on BACKLIGHT_CLASS_DEVICE
	depends on SERIO_I8042
	select ACPI_WMI
	select ACPI_WMI
	---help---
	---help---
	  This is a driver for newer Acer (and Wistron) laptops. It adds
	  This is a driver for newer Acer (and Wistron) laptops. It adds
+28 −10
Original line number Original line Diff line number Diff line
@@ -217,6 +217,15 @@ static struct dmi_system_id acer_quirks[] = {
		},
		},
		.driver_data = &quirk_acer_travelmate_2490,
		.driver_data = &quirk_acer_travelmate_2490,
	},
	},
	{
		.callback = dmi_matched,
		.ident = "Acer Aspire 3610",
		.matches = {
			DMI_MATCH(DMI_SYS_VENDOR, "Acer"),
			DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 3610"),
		},
		.driver_data = &quirk_acer_travelmate_2490,
	},
	{
	{
		.callback = dmi_matched,
		.callback = dmi_matched,
		.ident = "Acer Aspire 5100",
		.ident = "Acer Aspire 5100",
@@ -226,6 +235,15 @@ static struct dmi_system_id acer_quirks[] = {
		},
		},
		.driver_data = &quirk_acer_travelmate_2490,
		.driver_data = &quirk_acer_travelmate_2490,
	},
	},
	{
		.callback = dmi_matched,
		.ident = "Acer Aspire 5610",
		.matches = {
			DMI_MATCH(DMI_SYS_VENDOR, "Acer"),
			DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 5610"),
		},
		.driver_data = &quirk_acer_travelmate_2490,
	},
	{
	{
		.callback = dmi_matched,
		.callback = dmi_matched,
		.ident = "Acer Aspire 5630",
		.ident = "Acer Aspire 5630",
@@ -761,7 +779,7 @@ enum led_brightness value)
}
}


static struct led_classdev mail_led = {
static struct led_classdev mail_led = {
	.name = "acer-mail:green",
	.name = "acer-wmi::mail",
	.brightness_set = mail_led_set,
	.brightness_set = mail_led_set,
};
};


@@ -1052,11 +1070,12 @@ static int __init acer_wmi_init(void)


	if (wmi_has_guid(WMID_GUID2) && interface) {
	if (wmi_has_guid(WMID_GUID2) && interface) {
		if (ACPI_FAILURE(WMID_set_capabilities())) {
		if (ACPI_FAILURE(WMID_set_capabilities())) {
			printk(ACER_ERR "Unable to detect available devices\n");
			printk(ACER_ERR "Unable to detect available WMID "
					"devices\n");
			return -ENODEV;
			return -ENODEV;
		}
		}
	} else if (!wmi_has_guid(WMID_GUID2) && interface) {
	} else if (!wmi_has_guid(WMID_GUID2) && interface) {
		printk(ACER_ERR "Unable to detect available devices\n");
		printk(ACER_ERR "No WMID device detection method found\n");
		return -ENODEV;
		return -ENODEV;
	}
	}


@@ -1064,21 +1083,20 @@ static int __init acer_wmi_init(void)
		interface = &AMW0_interface;
		interface = &AMW0_interface;


		if (ACPI_FAILURE(AMW0_set_capabilities())) {
		if (ACPI_FAILURE(AMW0_set_capabilities())) {
			printk(ACER_ERR "Unable to detect available devices\n");
			printk(ACER_ERR "Unable to detect available AMW0 "
					"devices\n");
			return -ENODEV;
			return -ENODEV;
		}
		}
	}
	}


	if (wmi_has_guid(AMW0_GUID1)) {
	if (wmi_has_guid(AMW0_GUID1))
		if (ACPI_FAILURE(AMW0_find_mailled()))
		AMW0_find_mailled();
			printk(ACER_ERR "Unable to detect mail LED\n");
	}


	find_quirks();
	find_quirks();


	if (!interface) {
	if (!interface) {
		printk(ACER_ERR "No or unsupported WMI interface, unable to ");
		printk(ACER_ERR "No or unsupported WMI interface, unable to "
		printk(KERN_CONT "load.\n");
				"load\n");
		return -ENODEV;
		return -ENODEV;
	}
	}


Loading