diff options
-rw-r--r-- | drivers/platform/x86/thinkpad_acpi.c | 32 |
1 files changed, 5 insertions, 27 deletions
diff --git a/drivers/platform/x86/thinkpad_acpi.c b/drivers/platform/x86/thinkpad_acpi.c index 9c6d5a929e96..1ee734c14cc1 100644 --- a/drivers/platform/x86/thinkpad_acpi.c +++ b/drivers/platform/x86/thinkpad_acpi.c | |||
@@ -3866,15 +3866,6 @@ enum { | |||
3866 | 3866 | ||
3867 | #define TPACPI_RFK_BLUETOOTH_SW_NAME "tpacpi_bluetooth_sw" | 3867 | #define TPACPI_RFK_BLUETOOTH_SW_NAME "tpacpi_bluetooth_sw" |
3868 | 3868 | ||
3869 | static void bluetooth_suspend(pm_message_t state) | ||
3870 | { | ||
3871 | /* Try to make sure radio will resume powered off */ | ||
3872 | if (!acpi_evalf(NULL, NULL, "\\BLTH", "vd", | ||
3873 | TP_ACPI_BLTH_PWR_OFF_ON_RESUME)) | ||
3874 | vdbg_printk(TPACPI_DBG_RFKILL, | ||
3875 | "bluetooth power down on resume request failed\n"); | ||
3876 | } | ||
3877 | |||
3878 | static int bluetooth_get_status(void) | 3869 | static int bluetooth_get_status(void) |
3879 | { | 3870 | { |
3880 | int status; | 3871 | int status; |
@@ -3908,10 +3899,9 @@ static int bluetooth_set_status(enum tpacpi_rfkill_state state) | |||
3908 | #endif | 3899 | #endif |
3909 | 3900 | ||
3910 | /* We make sure to keep TP_ACPI_BLUETOOTH_RESUMECTRL off */ | 3901 | /* We make sure to keep TP_ACPI_BLUETOOTH_RESUMECTRL off */ |
3902 | status = TP_ACPI_BLUETOOTH_RESUMECTRL; | ||
3911 | if (state == TPACPI_RFK_RADIO_ON) | 3903 | if (state == TPACPI_RFK_RADIO_ON) |
3912 | status = TP_ACPI_BLUETOOTH_RADIOSSW; | 3904 | status |= TP_ACPI_BLUETOOTH_RADIOSSW; |
3913 | else | ||
3914 | status = 0; | ||
3915 | 3905 | ||
3916 | if (!acpi_evalf(hkey_handle, NULL, "SBDC", "vd", status)) | 3906 | if (!acpi_evalf(hkey_handle, NULL, "SBDC", "vd", status)) |
3917 | return -EIO; | 3907 | return -EIO; |
@@ -4050,7 +4040,6 @@ static struct ibm_struct bluetooth_driver_data = { | |||
4050 | .read = bluetooth_read, | 4040 | .read = bluetooth_read, |
4051 | .write = bluetooth_write, | 4041 | .write = bluetooth_write, |
4052 | .exit = bluetooth_exit, | 4042 | .exit = bluetooth_exit, |
4053 | .suspend = bluetooth_suspend, | ||
4054 | .shutdown = bluetooth_shutdown, | 4043 | .shutdown = bluetooth_shutdown, |
4055 | }; | 4044 | }; |
4056 | 4045 | ||
@@ -4068,15 +4057,6 @@ enum { | |||
4068 | 4057 | ||
4069 | #define TPACPI_RFK_WWAN_SW_NAME "tpacpi_wwan_sw" | 4058 | #define TPACPI_RFK_WWAN_SW_NAME "tpacpi_wwan_sw" |
4070 | 4059 | ||
4071 | static void wan_suspend(pm_message_t state) | ||
4072 | { | ||
4073 | /* Try to make sure radio will resume powered off */ | ||
4074 | if (!acpi_evalf(NULL, NULL, "\\WGSV", "qvd", | ||
4075 | TP_ACPI_WGSV_PWR_OFF_ON_RESUME)) | ||
4076 | vdbg_printk(TPACPI_DBG_RFKILL, | ||
4077 | "WWAN power down on resume request failed\n"); | ||
4078 | } | ||
4079 | |||
4080 | static int wan_get_status(void) | 4060 | static int wan_get_status(void) |
4081 | { | 4061 | { |
4082 | int status; | 4062 | int status; |
@@ -4109,11 +4089,10 @@ static int wan_set_status(enum tpacpi_rfkill_state state) | |||
4109 | } | 4089 | } |
4110 | #endif | 4090 | #endif |
4111 | 4091 | ||
4112 | /* We make sure to keep TP_ACPI_WANCARD_RESUMECTRL off */ | 4092 | /* We make sure to set TP_ACPI_WANCARD_RESUMECTRL */ |
4093 | status = TP_ACPI_WANCARD_RESUMECTRL; | ||
4113 | if (state == TPACPI_RFK_RADIO_ON) | 4094 | if (state == TPACPI_RFK_RADIO_ON) |
4114 | status = TP_ACPI_WANCARD_RADIOSSW; | 4095 | status |= TP_ACPI_WANCARD_RADIOSSW; |
4115 | else | ||
4116 | status = 0; | ||
4117 | 4096 | ||
4118 | if (!acpi_evalf(hkey_handle, NULL, "SWAN", "vd", status)) | 4097 | if (!acpi_evalf(hkey_handle, NULL, "SWAN", "vd", status)) |
4119 | return -EIO; | 4098 | return -EIO; |
@@ -4251,7 +4230,6 @@ static struct ibm_struct wan_driver_data = { | |||
4251 | .read = wan_read, | 4230 | .read = wan_read, |
4252 | .write = wan_write, | 4231 | .write = wan_write, |
4253 | .exit = wan_exit, | 4232 | .exit = wan_exit, |
4254 | .suspend = wan_suspend, | ||
4255 | .shutdown = wan_shutdown, | 4233 | .shutdown = wan_shutdown, |
4256 | }; | 4234 | }; |
4257 | 4235 | ||