Merge branches 'release', 'ejd', 'sony' and 'wmi' into release
This commit is contained in:
commit
b4de123a0b
|
@ -48,7 +48,7 @@ DSDT.
|
|||
|
||||
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.
|
||||
|
||||
|
@ -169,7 +169,7 @@ can be added to acer-wmi.
|
|||
|
||||
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
|
||||
be registered.
|
||||
|
|
|
@ -609,7 +609,8 @@ acpi_bus_get_ejd(acpi_handle handle, acpi_handle *ejd)
|
|||
status = acpi_evaluate_object(handle, "_EJD", NULL, &buffer);
|
||||
if (ACPI_SUCCESS(status)) {
|
||||
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);
|
||||
}
|
||||
return status;
|
||||
|
|
|
@ -293,7 +293,7 @@ struct acpi_buffer *out)
|
|||
{
|
||||
struct guid_block *block = NULL;
|
||||
struct wmi_block *wblock = NULL;
|
||||
acpi_handle handle;
|
||||
acpi_handle handle, wc_handle;
|
||||
acpi_status status, wc_status = AE_ERROR;
|
||||
struct acpi_object_list input, wc_input;
|
||||
union acpi_object wc_params[1], wq_params[1];
|
||||
|
@ -338,8 +338,10 @@ struct acpi_buffer *out)
|
|||
* expensive, but have no corresponding WCxx method. So we
|
||||
* should not fail if this happens.
|
||||
*/
|
||||
wc_status = acpi_evaluate_object(handle, wc_method,
|
||||
&wc_input, NULL);
|
||||
wc_status = acpi_get_handle(handle, wc_method, &wc_handle);
|
||||
if (ACPI_SUCCESS(wc_status))
|
||||
wc_status = acpi_evaluate_object(handle, wc_method,
|
||||
&wc_input, NULL);
|
||||
}
|
||||
|
||||
strcpy(method, "WQ");
|
||||
|
@ -351,7 +353,7 @@ struct acpi_buffer *out)
|
|||
* If ACPI_WMI_EXPENSIVE, call the relevant WCxx method, even if
|
||||
* 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;
|
||||
status = acpi_evaluate_object(handle,
|
||||
wc_method, &wc_input, NULL);
|
||||
|
|
|
@ -108,6 +108,7 @@ config ACER_WMI
|
|||
depends on ACPI
|
||||
depends on LEDS_CLASS
|
||||
depends on BACKLIGHT_CLASS_DEVICE
|
||||
depends on SERIO_I8042
|
||||
select ACPI_WMI
|
||||
---help---
|
||||
This is a driver for newer Acer (and Wistron) laptops. It adds
|
||||
|
|
|
@ -217,6 +217,15 @@ static struct dmi_system_id acer_quirks[] = {
|
|||
},
|
||||
.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,
|
||||
.ident = "Acer Aspire 5100",
|
||||
|
@ -226,6 +235,15 @@ static struct dmi_system_id acer_quirks[] = {
|
|||
},
|
||||
.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,
|
||||
.ident = "Acer Aspire 5630",
|
||||
|
@ -761,7 +779,7 @@ enum led_brightness value)
|
|||
}
|
||||
|
||||
static struct led_classdev mail_led = {
|
||||
.name = "acer-mail:green",
|
||||
.name = "acer-wmi::mail",
|
||||
.brightness_set = mail_led_set,
|
||||
};
|
||||
|
||||
|
@ -1052,11 +1070,12 @@ static int __init acer_wmi_init(void)
|
|||
|
||||
if (wmi_has_guid(WMID_GUID2) && interface) {
|
||||
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;
|
||||
}
|
||||
} 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;
|
||||
}
|
||||
|
||||
|
@ -1064,21 +1083,20 @@ static int __init acer_wmi_init(void)
|
|||
interface = &AMW0_interface;
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
if (wmi_has_guid(AMW0_GUID1)) {
|
||||
if (ACPI_FAILURE(AMW0_find_mailled()))
|
||||
printk(ACER_ERR "Unable to detect mail LED\n");
|
||||
}
|
||||
if (wmi_has_guid(AMW0_GUID1))
|
||||
AMW0_find_mailled();
|
||||
|
||||
find_quirks();
|
||||
|
||||
if (!interface) {
|
||||
printk(ACER_ERR "No or unsupported WMI interface, unable to ");
|
||||
printk(KERN_CONT "load.\n");
|
||||
printk(ACER_ERR "No or unsupported WMI interface, unable to "
|
||||
"load\n");
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
|
|
|
@ -315,7 +315,7 @@ static void sony_laptop_report_input_event(u8 event)
|
|||
break;
|
||||
|
||||
default:
|
||||
if (event > ARRAY_SIZE(sony_laptop_input_index)) {
|
||||
if (event >= ARRAY_SIZE(sony_laptop_input_index)) {
|
||||
dprintk("sony_laptop_report_input_event, event not known: %d\n", event);
|
||||
break;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue