diff options
Diffstat (limited to 'drivers/misc/thinkpad_acpi.c')
-rw-r--r-- | drivers/misc/thinkpad_acpi.c | 39 |
1 files changed, 19 insertions, 20 deletions
diff --git a/drivers/misc/thinkpad_acpi.c b/drivers/misc/thinkpad_acpi.c index c800855be27f..9179f2367d42 100644 --- a/drivers/misc/thinkpad_acpi.c +++ b/drivers/misc/thinkpad_acpi.c | |||
@@ -1285,21 +1285,6 @@ static int hotkey_status_set(int status) | |||
1285 | return 0; | 1285 | return 0; |
1286 | } | 1286 | } |
1287 | 1287 | ||
1288 | static void tpacpi_input_send_radiosw(void) | ||
1289 | { | ||
1290 | int wlsw; | ||
1291 | |||
1292 | if (tp_features.hotkey_wlsw && !hotkey_get_wlsw(&wlsw)) { | ||
1293 | mutex_lock(&tpacpi_inputdev_send_mutex); | ||
1294 | |||
1295 | input_report_switch(tpacpi_inputdev, | ||
1296 | SW_RFKILL_ALL, !!wlsw); | ||
1297 | input_sync(tpacpi_inputdev); | ||
1298 | |||
1299 | mutex_unlock(&tpacpi_inputdev_send_mutex); | ||
1300 | } | ||
1301 | } | ||
1302 | |||
1303 | static void tpacpi_input_send_tabletsw(void) | 1288 | static void tpacpi_input_send_tabletsw(void) |
1304 | { | 1289 | { |
1305 | int state; | 1290 | int state; |
@@ -1921,6 +1906,22 @@ static struct attribute *hotkey_mask_attributes[] __initdata = { | |||
1921 | &dev_attr_hotkey_wakeup_hotunplug_complete.attr, | 1906 | &dev_attr_hotkey_wakeup_hotunplug_complete.attr, |
1922 | }; | 1907 | }; |
1923 | 1908 | ||
1909 | static void tpacpi_send_radiosw_update(void) | ||
1910 | { | ||
1911 | int wlsw; | ||
1912 | |||
1913 | if (tp_features.hotkey_wlsw && !hotkey_get_wlsw(&wlsw)) { | ||
1914 | mutex_lock(&tpacpi_inputdev_send_mutex); | ||
1915 | |||
1916 | input_report_switch(tpacpi_inputdev, | ||
1917 | SW_RFKILL_ALL, !!wlsw); | ||
1918 | input_sync(tpacpi_inputdev); | ||
1919 | |||
1920 | mutex_unlock(&tpacpi_inputdev_send_mutex); | ||
1921 | } | ||
1922 | hotkey_radio_sw_notify_change(); | ||
1923 | } | ||
1924 | |||
1924 | static void hotkey_exit(void) | 1925 | static void hotkey_exit(void) |
1925 | { | 1926 | { |
1926 | #ifdef CONFIG_THINKPAD_ACPI_HOTKEY_POLL | 1927 | #ifdef CONFIG_THINKPAD_ACPI_HOTKEY_POLL |
@@ -2288,7 +2289,7 @@ static int __init hotkey_init(struct ibm_init_struct *iibm) | |||
2288 | tpacpi_inputdev->close = &hotkey_inputdev_close; | 2289 | tpacpi_inputdev->close = &hotkey_inputdev_close; |
2289 | 2290 | ||
2290 | hotkey_poll_setup_safe(1); | 2291 | hotkey_poll_setup_safe(1); |
2291 | tpacpi_input_send_radiosw(); | 2292 | tpacpi_send_radiosw_update(); |
2292 | tpacpi_input_send_tabletsw(); | 2293 | tpacpi_input_send_tabletsw(); |
2293 | 2294 | ||
2294 | return 0; | 2295 | return 0; |
@@ -2420,8 +2421,7 @@ static void hotkey_notify(struct ibm_struct *ibm, u32 event) | |||
2420 | case 7: | 2421 | case 7: |
2421 | /* 0x7000-0x7FFF: misc */ | 2422 | /* 0x7000-0x7FFF: misc */ |
2422 | if (tp_features.hotkey_wlsw && hkey == 0x7000) { | 2423 | if (tp_features.hotkey_wlsw && hkey == 0x7000) { |
2423 | tpacpi_input_send_radiosw(); | 2424 | tpacpi_send_radiosw_update(); |
2424 | hotkey_radio_sw_notify_change(); | ||
2425 | send_acpi_ev = 0; | 2425 | send_acpi_ev = 0; |
2426 | break; | 2426 | break; |
2427 | } | 2427 | } |
@@ -2464,8 +2464,7 @@ static void hotkey_resume(void) | |||
2464 | printk(TPACPI_ERR | 2464 | printk(TPACPI_ERR |
2465 | "error while trying to read hot key mask " | 2465 | "error while trying to read hot key mask " |
2466 | "from firmware\n"); | 2466 | "from firmware\n"); |
2467 | tpacpi_input_send_radiosw(); | 2467 | tpacpi_send_radiosw_update(); |
2468 | hotkey_radio_sw_notify_change(); | ||
2469 | hotkey_tablet_mode_notify_change(); | 2468 | hotkey_tablet_mode_notify_change(); |
2470 | hotkey_wakeup_reason_notify_change(); | 2469 | hotkey_wakeup_reason_notify_change(); |
2471 | hotkey_wakeup_hotunplug_complete_notify_change(); | 2470 | hotkey_wakeup_hotunplug_complete_notify_change(); |