diff options
Diffstat (limited to 'drivers/platform/x86/acer-wmi.c')
-rw-r--r-- | drivers/platform/x86/acer-wmi.c | 127 |
1 files changed, 77 insertions, 50 deletions
diff --git a/drivers/platform/x86/acer-wmi.c b/drivers/platform/x86/acer-wmi.c index c9784705f6ac..5ea6c3477d17 100644 --- a/drivers/platform/x86/acer-wmi.c +++ b/drivers/platform/x86/acer-wmi.c | |||
@@ -22,6 +22,8 @@ | |||
22 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | 22 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
23 | */ | 23 | */ |
24 | 24 | ||
25 | #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt | ||
26 | |||
25 | #include <linux/kernel.h> | 27 | #include <linux/kernel.h> |
26 | #include <linux/module.h> | 28 | #include <linux/module.h> |
27 | #include <linux/init.h> | 29 | #include <linux/init.h> |
@@ -46,12 +48,6 @@ MODULE_AUTHOR("Carlos Corbacho"); | |||
46 | MODULE_DESCRIPTION("Acer Laptop WMI Extras Driver"); | 48 | MODULE_DESCRIPTION("Acer Laptop WMI Extras Driver"); |
47 | MODULE_LICENSE("GPL"); | 49 | MODULE_LICENSE("GPL"); |
48 | 50 | ||
49 | #define ACER_LOGPREFIX "acer-wmi: " | ||
50 | #define ACER_ERR KERN_ERR ACER_LOGPREFIX | ||
51 | #define ACER_NOTICE KERN_NOTICE ACER_LOGPREFIX | ||
52 | #define ACER_INFO KERN_INFO ACER_LOGPREFIX | ||
53 | #define ACER_WARNING KERN_WARNING ACER_LOGPREFIX | ||
54 | |||
55 | /* | 51 | /* |
56 | * Magic Number | 52 | * Magic Number |
57 | * Meaning is unknown - this number is required for writing to ACPI for AMW0 | 53 | * Meaning is unknown - this number is required for writing to ACPI for AMW0 |
@@ -84,7 +80,7 @@ MODULE_LICENSE("GPL"); | |||
84 | #define AMW0_GUID1 "67C3371D-95A3-4C37-BB61-DD47B491DAAB" | 80 | #define AMW0_GUID1 "67C3371D-95A3-4C37-BB61-DD47B491DAAB" |
85 | #define AMW0_GUID2 "431F16ED-0C2B-444C-B267-27DEB140CF9C" | 81 | #define AMW0_GUID2 "431F16ED-0C2B-444C-B267-27DEB140CF9C" |
86 | #define WMID_GUID1 "6AF4F258-B401-42FD-BE91-3D4AC2D7C0D3" | 82 | #define WMID_GUID1 "6AF4F258-B401-42FD-BE91-3D4AC2D7C0D3" |
87 | #define WMID_GUID2 "95764E09-FB56-4e83-B31A-37761F60994A" | 83 | #define WMID_GUID2 "95764E09-FB56-4E83-B31A-37761F60994A" |
88 | #define WMID_GUID3 "61EF69EA-865C-4BC3-A502-A0DEBA0CB531" | 84 | #define WMID_GUID3 "61EF69EA-865C-4BC3-A502-A0DEBA0CB531" |
89 | 85 | ||
90 | /* | 86 | /* |
@@ -93,7 +89,7 @@ MODULE_LICENSE("GPL"); | |||
93 | #define ACERWMID_EVENT_GUID "676AA15E-6A47-4D9F-A2CC-1E6D18D14026" | 89 | #define ACERWMID_EVENT_GUID "676AA15E-6A47-4D9F-A2CC-1E6D18D14026" |
94 | 90 | ||
95 | MODULE_ALIAS("wmi:67C3371D-95A3-4C37-BB61-DD47B491DAAB"); | 91 | MODULE_ALIAS("wmi:67C3371D-95A3-4C37-BB61-DD47B491DAAB"); |
96 | MODULE_ALIAS("wmi:6AF4F258-B401-42fd-BE91-3D4AC2D7C0D3"); | 92 | MODULE_ALIAS("wmi:6AF4F258-B401-42Fd-BE91-3D4AC2D7C0D3"); |
97 | MODULE_ALIAS("wmi:676AA15E-6A47-4D9F-A2CC-1E6D18D14026"); | 93 | MODULE_ALIAS("wmi:676AA15E-6A47-4D9F-A2CC-1E6D18D14026"); |
98 | 94 | ||
99 | enum acer_wmi_event_ids { | 95 | enum acer_wmi_event_ids { |
@@ -108,7 +104,7 @@ static const struct key_entry acer_wmi_keymap[] = { | |||
108 | {KE_KEY, 0x23, {KEY_PROG3} }, /* P_Key */ | 104 | {KE_KEY, 0x23, {KEY_PROG3} }, /* P_Key */ |
109 | {KE_KEY, 0x24, {KEY_PROG4} }, /* Social networking_Key */ | 105 | {KE_KEY, 0x24, {KEY_PROG4} }, /* Social networking_Key */ |
110 | {KE_KEY, 0x64, {KEY_SWITCHVIDEOMODE} }, /* Display Switch */ | 106 | {KE_KEY, 0x64, {KEY_SWITCHVIDEOMODE} }, /* Display Switch */ |
111 | {KE_KEY, 0x82, {KEY_F22} }, /* Touch Pad On/Off */ | 107 | {KE_KEY, 0x82, {KEY_TOUCHPAD_TOGGLE} }, /* Touch Pad On/Off */ |
112 | {KE_END, 0} | 108 | {KE_END, 0} |
113 | }; | 109 | }; |
114 | 110 | ||
@@ -221,6 +217,7 @@ struct acer_debug { | |||
221 | static struct rfkill *wireless_rfkill; | 217 | static struct rfkill *wireless_rfkill; |
222 | static struct rfkill *bluetooth_rfkill; | 218 | static struct rfkill *bluetooth_rfkill; |
223 | static struct rfkill *threeg_rfkill; | 219 | static struct rfkill *threeg_rfkill; |
220 | static bool rfkill_inited; | ||
224 | 221 | ||
225 | /* Each low-level interface must define at least some of the following */ | 222 | /* Each low-level interface must define at least some of the following */ |
226 | struct wmi_interface { | 223 | struct wmi_interface { |
@@ -845,7 +842,7 @@ static void type_aa_dmi_decode(const struct dmi_header *header, void *dummy) | |||
845 | has_type_aa = true; | 842 | has_type_aa = true; |
846 | type_aa = (struct hotkey_function_type_aa *) header; | 843 | type_aa = (struct hotkey_function_type_aa *) header; |
847 | 844 | ||
848 | printk(ACER_INFO "Function bitmap for Communication Button: 0x%x\n", | 845 | pr_info("Function bitmap for Communication Button: 0x%x\n", |
849 | type_aa->commun_func_bitmap); | 846 | type_aa->commun_func_bitmap); |
850 | 847 | ||
851 | if (type_aa->commun_func_bitmap & ACER_WMID3_GDS_WIRELESS) | 848 | if (type_aa->commun_func_bitmap & ACER_WMID3_GDS_WIRELESS) |
@@ -991,6 +988,7 @@ static int __devinit acer_led_init(struct device *dev) | |||
991 | 988 | ||
992 | static void acer_led_exit(void) | 989 | static void acer_led_exit(void) |
993 | { | 990 | { |
991 | set_u32(LED_OFF, ACER_CAP_MAILLED); | ||
994 | led_classdev_unregister(&mail_led); | 992 | led_classdev_unregister(&mail_led); |
995 | } | 993 | } |
996 | 994 | ||
@@ -1036,7 +1034,7 @@ static int __devinit acer_backlight_init(struct device *dev) | |||
1036 | bd = backlight_device_register("acer-wmi", dev, NULL, &acer_bl_ops, | 1034 | bd = backlight_device_register("acer-wmi", dev, NULL, &acer_bl_ops, |
1037 | &props); | 1035 | &props); |
1038 | if (IS_ERR(bd)) { | 1036 | if (IS_ERR(bd)) { |
1039 | printk(ACER_ERR "Could not register Acer backlight device\n"); | 1037 | pr_err("Could not register Acer backlight device\n"); |
1040 | acer_backlight_device = NULL; | 1038 | acer_backlight_device = NULL; |
1041 | return PTR_ERR(bd); | 1039 | return PTR_ERR(bd); |
1042 | } | 1040 | } |
@@ -1083,8 +1081,7 @@ static acpi_status wmid3_get_device_status(u32 *value, u16 device) | |||
1083 | return AE_ERROR; | 1081 | return AE_ERROR; |
1084 | } | 1082 | } |
1085 | if (obj->buffer.length != 8) { | 1083 | if (obj->buffer.length != 8) { |
1086 | printk(ACER_WARNING "Unknown buffer length %d\n", | 1084 | pr_warning("Unknown buffer length %d\n", obj->buffer.length); |
1087 | obj->buffer.length); | ||
1088 | kfree(obj); | 1085 | kfree(obj); |
1089 | return AE_ERROR; | 1086 | return AE_ERROR; |
1090 | } | 1087 | } |
@@ -1093,7 +1090,7 @@ static acpi_status wmid3_get_device_status(u32 *value, u16 device) | |||
1093 | kfree(obj); | 1090 | kfree(obj); |
1094 | 1091 | ||
1095 | if (return_value.error_code || return_value.ec_return_value) | 1092 | if (return_value.error_code || return_value.ec_return_value) |
1096 | printk(ACER_WARNING "Get Device Status failed: " | 1093 | pr_warning("Get Device Status failed: " |
1097 | "0x%x - 0x%x\n", return_value.error_code, | 1094 | "0x%x - 0x%x\n", return_value.error_code, |
1098 | return_value.ec_return_value); | 1095 | return_value.ec_return_value); |
1099 | else | 1096 | else |
@@ -1161,9 +1158,13 @@ static int acer_rfkill_set(void *data, bool blocked) | |||
1161 | { | 1158 | { |
1162 | acpi_status status; | 1159 | acpi_status status; |
1163 | u32 cap = (unsigned long)data; | 1160 | u32 cap = (unsigned long)data; |
1164 | status = set_u32(!blocked, cap); | 1161 | |
1165 | if (ACPI_FAILURE(status)) | 1162 | if (rfkill_inited) { |
1166 | return -ENODEV; | 1163 | status = set_u32(!blocked, cap); |
1164 | if (ACPI_FAILURE(status)) | ||
1165 | return -ENODEV; | ||
1166 | } | ||
1167 | |||
1167 | return 0; | 1168 | return 0; |
1168 | } | 1169 | } |
1169 | 1170 | ||
@@ -1187,14 +1188,16 @@ static struct rfkill *acer_rfkill_register(struct device *dev, | |||
1187 | return ERR_PTR(-ENOMEM); | 1188 | return ERR_PTR(-ENOMEM); |
1188 | 1189 | ||
1189 | status = get_device_status(&state, cap); | 1190 | status = get_device_status(&state, cap); |
1190 | if (ACPI_SUCCESS(status)) | ||
1191 | rfkill_init_sw_state(rfkill_dev, !state); | ||
1192 | 1191 | ||
1193 | err = rfkill_register(rfkill_dev); | 1192 | err = rfkill_register(rfkill_dev); |
1194 | if (err) { | 1193 | if (err) { |
1195 | rfkill_destroy(rfkill_dev); | 1194 | rfkill_destroy(rfkill_dev); |
1196 | return ERR_PTR(err); | 1195 | return ERR_PTR(err); |
1197 | } | 1196 | } |
1197 | |||
1198 | if (ACPI_SUCCESS(status)) | ||
1199 | rfkill_set_sw_state(rfkill_dev, !state); | ||
1200 | |||
1198 | return rfkill_dev; | 1201 | return rfkill_dev; |
1199 | } | 1202 | } |
1200 | 1203 | ||
@@ -1229,14 +1232,19 @@ static int acer_rfkill_init(struct device *dev) | |||
1229 | } | 1232 | } |
1230 | } | 1233 | } |
1231 | 1234 | ||
1232 | schedule_delayed_work(&acer_rfkill_work, round_jiffies_relative(HZ)); | 1235 | rfkill_inited = true; |
1236 | |||
1237 | if (ec_raw_mode || !wmi_has_guid(ACERWMID_EVENT_GUID)) | ||
1238 | schedule_delayed_work(&acer_rfkill_work, | ||
1239 | round_jiffies_relative(HZ)); | ||
1233 | 1240 | ||
1234 | return 0; | 1241 | return 0; |
1235 | } | 1242 | } |
1236 | 1243 | ||
1237 | static void acer_rfkill_exit(void) | 1244 | static void acer_rfkill_exit(void) |
1238 | { | 1245 | { |
1239 | cancel_delayed_work_sync(&acer_rfkill_work); | 1246 | if (ec_raw_mode || !wmi_has_guid(ACERWMID_EVENT_GUID)) |
1247 | cancel_delayed_work_sync(&acer_rfkill_work); | ||
1240 | 1248 | ||
1241 | rfkill_unregister(wireless_rfkill); | 1249 | rfkill_unregister(wireless_rfkill); |
1242 | rfkill_destroy(wireless_rfkill); | 1250 | rfkill_destroy(wireless_rfkill); |
@@ -1309,7 +1317,7 @@ static void acer_wmi_notify(u32 value, void *context) | |||
1309 | 1317 | ||
1310 | status = wmi_get_event_data(value, &response); | 1318 | status = wmi_get_event_data(value, &response); |
1311 | if (status != AE_OK) { | 1319 | if (status != AE_OK) { |
1312 | printk(ACER_WARNING "bad event status 0x%x\n", status); | 1320 | pr_warning("bad event status 0x%x\n", status); |
1313 | return; | 1321 | return; |
1314 | } | 1322 | } |
1315 | 1323 | ||
@@ -1318,14 +1326,12 @@ static void acer_wmi_notify(u32 value, void *context) | |||
1318 | if (!obj) | 1326 | if (!obj) |
1319 | return; | 1327 | return; |
1320 | if (obj->type != ACPI_TYPE_BUFFER) { | 1328 | if (obj->type != ACPI_TYPE_BUFFER) { |
1321 | printk(ACER_WARNING "Unknown response received %d\n", | 1329 | pr_warning("Unknown response received %d\n", obj->type); |
1322 | obj->type); | ||
1323 | kfree(obj); | 1330 | kfree(obj); |
1324 | return; | 1331 | return; |
1325 | } | 1332 | } |
1326 | if (obj->buffer.length != 8) { | 1333 | if (obj->buffer.length != 8) { |
1327 | printk(ACER_WARNING "Unknown buffer length %d\n", | 1334 | pr_warning("Unknown buffer length %d\n", obj->buffer.length); |
1328 | obj->buffer.length); | ||
1329 | kfree(obj); | 1335 | kfree(obj); |
1330 | return; | 1336 | return; |
1331 | } | 1337 | } |
@@ -1335,13 +1341,26 @@ static void acer_wmi_notify(u32 value, void *context) | |||
1335 | 1341 | ||
1336 | switch (return_value.function) { | 1342 | switch (return_value.function) { |
1337 | case WMID_HOTKEY_EVENT: | 1343 | case WMID_HOTKEY_EVENT: |
1344 | if (return_value.device_state) { | ||
1345 | u16 device_state = return_value.device_state; | ||
1346 | pr_debug("deivces states: 0x%x\n", device_state); | ||
1347 | if (has_cap(ACER_CAP_WIRELESS)) | ||
1348 | rfkill_set_sw_state(wireless_rfkill, | ||
1349 | !(device_state & ACER_WMID3_GDS_WIRELESS)); | ||
1350 | if (has_cap(ACER_CAP_BLUETOOTH)) | ||
1351 | rfkill_set_sw_state(bluetooth_rfkill, | ||
1352 | !(device_state & ACER_WMID3_GDS_BLUETOOTH)); | ||
1353 | if (has_cap(ACER_CAP_THREEG)) | ||
1354 | rfkill_set_sw_state(threeg_rfkill, | ||
1355 | !(device_state & ACER_WMID3_GDS_THREEG)); | ||
1356 | } | ||
1338 | if (!sparse_keymap_report_event(acer_wmi_input_dev, | 1357 | if (!sparse_keymap_report_event(acer_wmi_input_dev, |
1339 | return_value.key_num, 1, true)) | 1358 | return_value.key_num, 1, true)) |
1340 | printk(ACER_WARNING "Unknown key number - 0x%x\n", | 1359 | pr_warning("Unknown key number - 0x%x\n", |
1341 | return_value.key_num); | 1360 | return_value.key_num); |
1342 | break; | 1361 | break; |
1343 | default: | 1362 | default: |
1344 | printk(ACER_WARNING "Unknown function number - %d - %d\n", | 1363 | pr_warning("Unknown function number - %d - %d\n", |
1345 | return_value.function, return_value.key_num); | 1364 | return_value.function, return_value.key_num); |
1346 | break; | 1365 | break; |
1347 | } | 1366 | } |
@@ -1370,8 +1389,7 @@ wmid3_set_lm_mode(struct lm_input_params *params, | |||
1370 | return AE_ERROR; | 1389 | return AE_ERROR; |
1371 | } | 1390 | } |
1372 | if (obj->buffer.length != 4) { | 1391 | if (obj->buffer.length != 4) { |
1373 | printk(ACER_WARNING "Unknown buffer length %d\n", | 1392 | pr_warning("Unknown buffer length %d\n", obj->buffer.length); |
1374 | obj->buffer.length); | ||
1375 | kfree(obj); | 1393 | kfree(obj); |
1376 | return AE_ERROR; | 1394 | return AE_ERROR; |
1377 | } | 1395 | } |
@@ -1396,11 +1414,11 @@ static int acer_wmi_enable_ec_raw(void) | |||
1396 | status = wmid3_set_lm_mode(¶ms, &return_value); | 1414 | status = wmid3_set_lm_mode(¶ms, &return_value); |
1397 | 1415 | ||
1398 | if (return_value.error_code || return_value.ec_return_value) | 1416 | if (return_value.error_code || return_value.ec_return_value) |
1399 | printk(ACER_WARNING "Enabling EC raw mode failed: " | 1417 | pr_warning("Enabling EC raw mode failed: " |
1400 | "0x%x - 0x%x\n", return_value.error_code, | 1418 | "0x%x - 0x%x\n", return_value.error_code, |
1401 | return_value.ec_return_value); | 1419 | return_value.ec_return_value); |
1402 | else | 1420 | else |
1403 | printk(ACER_INFO "Enabled EC raw mode"); | 1421 | pr_info("Enabled EC raw mode"); |
1404 | 1422 | ||
1405 | return status; | 1423 | return status; |
1406 | } | 1424 | } |
@@ -1419,7 +1437,7 @@ static int acer_wmi_enable_lm(void) | |||
1419 | status = wmid3_set_lm_mode(¶ms, &return_value); | 1437 | status = wmid3_set_lm_mode(¶ms, &return_value); |
1420 | 1438 | ||
1421 | if (return_value.error_code || return_value.ec_return_value) | 1439 | if (return_value.error_code || return_value.ec_return_value) |
1422 | printk(ACER_WARNING "Enabling Launch Manager failed: " | 1440 | pr_warning("Enabling Launch Manager failed: " |
1423 | "0x%x - 0x%x\n", return_value.error_code, | 1441 | "0x%x - 0x%x\n", return_value.error_code, |
1424 | return_value.ec_return_value); | 1442 | return_value.ec_return_value); |
1425 | 1443 | ||
@@ -1553,6 +1571,7 @@ pm_message_t state) | |||
1553 | 1571 | ||
1554 | if (has_cap(ACER_CAP_MAILLED)) { | 1572 | if (has_cap(ACER_CAP_MAILLED)) { |
1555 | get_u32(&value, ACER_CAP_MAILLED); | 1573 | get_u32(&value, ACER_CAP_MAILLED); |
1574 | set_u32(LED_OFF, ACER_CAP_MAILLED); | ||
1556 | data->mailled = value; | 1575 | data->mailled = value; |
1557 | } | 1576 | } |
1558 | 1577 | ||
@@ -1580,6 +1599,17 @@ static int acer_platform_resume(struct platform_device *device) | |||
1580 | return 0; | 1599 | return 0; |
1581 | } | 1600 | } |
1582 | 1601 | ||
1602 | static void acer_platform_shutdown(struct platform_device *device) | ||
1603 | { | ||
1604 | struct acer_data *data = &interface->data; | ||
1605 | |||
1606 | if (!data) | ||
1607 | return; | ||
1608 | |||
1609 | if (has_cap(ACER_CAP_MAILLED)) | ||
1610 | set_u32(LED_OFF, ACER_CAP_MAILLED); | ||
1611 | } | ||
1612 | |||
1583 | static struct platform_driver acer_platform_driver = { | 1613 | static struct platform_driver acer_platform_driver = { |
1584 | .driver = { | 1614 | .driver = { |
1585 | .name = "acer-wmi", | 1615 | .name = "acer-wmi", |
@@ -1589,6 +1619,7 @@ static struct platform_driver acer_platform_driver = { | |||
1589 | .remove = acer_platform_remove, | 1619 | .remove = acer_platform_remove, |
1590 | .suspend = acer_platform_suspend, | 1620 | .suspend = acer_platform_suspend, |
1591 | .resume = acer_platform_resume, | 1621 | .resume = acer_platform_resume, |
1622 | .shutdown = acer_platform_shutdown, | ||
1592 | }; | 1623 | }; |
1593 | 1624 | ||
1594 | static struct platform_device *acer_platform_device; | 1625 | static struct platform_device *acer_platform_device; |
@@ -1636,7 +1667,7 @@ static int create_debugfs(void) | |||
1636 | { | 1667 | { |
1637 | interface->debug.root = debugfs_create_dir("acer-wmi", NULL); | 1668 | interface->debug.root = debugfs_create_dir("acer-wmi", NULL); |
1638 | if (!interface->debug.root) { | 1669 | if (!interface->debug.root) { |
1639 | printk(ACER_ERR "Failed to create debugfs directory"); | 1670 | pr_err("Failed to create debugfs directory"); |
1640 | return -ENOMEM; | 1671 | return -ENOMEM; |
1641 | } | 1672 | } |
1642 | 1673 | ||
@@ -1657,11 +1688,10 @@ static int __init acer_wmi_init(void) | |||
1657 | { | 1688 | { |
1658 | int err; | 1689 | int err; |
1659 | 1690 | ||
1660 | printk(ACER_INFO "Acer Laptop ACPI-WMI Extras\n"); | 1691 | pr_info("Acer Laptop ACPI-WMI Extras\n"); |
1661 | 1692 | ||
1662 | if (dmi_check_system(acer_blacklist)) { | 1693 | if (dmi_check_system(acer_blacklist)) { |
1663 | printk(ACER_INFO "Blacklisted hardware detected - " | 1694 | pr_info("Blacklisted hardware detected - not loading\n"); |
1664 | "not loading\n"); | ||
1665 | return -ENODEV; | 1695 | return -ENODEV; |
1666 | } | 1696 | } |
1667 | 1697 | ||
@@ -1678,12 +1708,11 @@ static int __init acer_wmi_init(void) | |||
1678 | 1708 | ||
1679 | if (wmi_has_guid(WMID_GUID2) && interface) { | 1709 | if (wmi_has_guid(WMID_GUID2) && interface) { |
1680 | if (ACPI_FAILURE(WMID_set_capabilities())) { | 1710 | if (ACPI_FAILURE(WMID_set_capabilities())) { |
1681 | printk(ACER_ERR "Unable to detect available WMID " | 1711 | pr_err("Unable to detect available WMID devices\n"); |
1682 | "devices\n"); | ||
1683 | return -ENODEV; | 1712 | return -ENODEV; |
1684 | } | 1713 | } |
1685 | } else if (!wmi_has_guid(WMID_GUID2) && interface) { | 1714 | } else if (!wmi_has_guid(WMID_GUID2) && interface) { |
1686 | printk(ACER_ERR "No WMID device detection method found\n"); | 1715 | pr_err("No WMID device detection method found\n"); |
1687 | return -ENODEV; | 1716 | return -ENODEV; |
1688 | } | 1717 | } |
1689 | 1718 | ||
@@ -1691,8 +1720,7 @@ static int __init acer_wmi_init(void) | |||
1691 | interface = &AMW0_interface; | 1720 | interface = &AMW0_interface; |
1692 | 1721 | ||
1693 | if (ACPI_FAILURE(AMW0_set_capabilities())) { | 1722 | if (ACPI_FAILURE(AMW0_set_capabilities())) { |
1694 | printk(ACER_ERR "Unable to detect available AMW0 " | 1723 | pr_err("Unable to detect available AMW0 devices\n"); |
1695 | "devices\n"); | ||
1696 | return -ENODEV; | 1724 | return -ENODEV; |
1697 | } | 1725 | } |
1698 | } | 1726 | } |
@@ -1701,8 +1729,7 @@ static int __init acer_wmi_init(void) | |||
1701 | AMW0_find_mailled(); | 1729 | AMW0_find_mailled(); |
1702 | 1730 | ||
1703 | if (!interface) { | 1731 | if (!interface) { |
1704 | printk(ACER_INFO "No or unsupported WMI interface, unable to " | 1732 | pr_err("No or unsupported WMI interface, unable to load\n"); |
1705 | "load\n"); | ||
1706 | return -ENODEV; | 1733 | return -ENODEV; |
1707 | } | 1734 | } |
1708 | 1735 | ||
@@ -1710,22 +1737,22 @@ static int __init acer_wmi_init(void) | |||
1710 | 1737 | ||
1711 | if (acpi_video_backlight_support() && has_cap(ACER_CAP_BRIGHTNESS)) { | 1738 | if (acpi_video_backlight_support() && has_cap(ACER_CAP_BRIGHTNESS)) { |
1712 | interface->capability &= ~ACER_CAP_BRIGHTNESS; | 1739 | interface->capability &= ~ACER_CAP_BRIGHTNESS; |
1713 | printk(ACER_INFO "Brightness must be controlled by " | 1740 | pr_info("Brightness must be controlled by " |
1714 | "generic video driver\n"); | 1741 | "generic video driver\n"); |
1715 | } | 1742 | } |
1716 | 1743 | ||
1717 | if (wmi_has_guid(WMID_GUID3)) { | 1744 | if (wmi_has_guid(WMID_GUID3)) { |
1718 | if (ec_raw_mode) { | 1745 | if (ec_raw_mode) { |
1719 | if (ACPI_FAILURE(acer_wmi_enable_ec_raw())) { | 1746 | if (ACPI_FAILURE(acer_wmi_enable_ec_raw())) { |
1720 | printk(ACER_ERR "Cannot enable EC raw mode\n"); | 1747 | pr_err("Cannot enable EC raw mode\n"); |
1721 | return -ENODEV; | 1748 | return -ENODEV; |
1722 | } | 1749 | } |
1723 | } else if (ACPI_FAILURE(acer_wmi_enable_lm())) { | 1750 | } else if (ACPI_FAILURE(acer_wmi_enable_lm())) { |
1724 | printk(ACER_ERR "Cannot enable Launch Manager mode\n"); | 1751 | pr_err("Cannot enable Launch Manager mode\n"); |
1725 | return -ENODEV; | 1752 | return -ENODEV; |
1726 | } | 1753 | } |
1727 | } else if (ec_raw_mode) { | 1754 | } else if (ec_raw_mode) { |
1728 | printk(ACER_INFO "No WMID EC raw mode enable method\n"); | 1755 | pr_info("No WMID EC raw mode enable method\n"); |
1729 | } | 1756 | } |
1730 | 1757 | ||
1731 | if (wmi_has_guid(ACERWMID_EVENT_GUID)) { | 1758 | if (wmi_has_guid(ACERWMID_EVENT_GUID)) { |
@@ -1736,7 +1763,7 @@ static int __init acer_wmi_init(void) | |||
1736 | 1763 | ||
1737 | err = platform_driver_register(&acer_platform_driver); | 1764 | err = platform_driver_register(&acer_platform_driver); |
1738 | if (err) { | 1765 | if (err) { |
1739 | printk(ACER_ERR "Unable to register platform driver.\n"); | 1766 | pr_err("Unable to register platform driver.\n"); |
1740 | goto error_platform_register; | 1767 | goto error_platform_register; |
1741 | } | 1768 | } |
1742 | 1769 | ||
@@ -1791,7 +1818,7 @@ static void __exit acer_wmi_exit(void) | |||
1791 | platform_device_unregister(acer_platform_device); | 1818 | platform_device_unregister(acer_platform_device); |
1792 | platform_driver_unregister(&acer_platform_driver); | 1819 | platform_driver_unregister(&acer_platform_driver); |
1793 | 1820 | ||
1794 | printk(ACER_INFO "Acer Laptop WMI Extras unloaded\n"); | 1821 | pr_info("Acer Laptop WMI Extras unloaded\n"); |
1795 | return; | 1822 | return; |
1796 | } | 1823 | } |
1797 | 1824 | ||