Skip to content

Commit 39f5329

Browse files
SlarkXiaojwrdegoede
authored andcommitted
platform/x86: thinkpad_acpi: Fix WWAN device disabled issue after S3 deep
When WWAN device wake from S3 deep, under thinkpad platform, WWAN would be disabled. This disable status could be checked by command 'nmcli r wwan' or 'rfkill list'. Issue analysis as below: When host resume from S3 deep, thinkpad_acpi driver would call hotkey_resume() function. Finnaly, it will use wan_get_status to check the current status of WWAN device. During this resume progress, wan_get_status would always return off even WWAN boot up completely. In patch V2, Hans said 'sw_state should be unchanged after a suspend/resume. It's better to drop the tpacpi_rfk_update_swstate call all together from the resume path'. And it's confimed by Lenovo that GWAN is no longer available from WHL generation because the design does not match with current pin control. Signed-off-by: Slark Xiao <[email protected]> Link: https://lore.kernel.org/r/[email protected] Reviewed-by: Hans de Goede <[email protected]> Signed-off-by: Hans de Goede <[email protected]>
1 parent 1f33895 commit 39f5329

File tree

1 file changed

+0
-12
lines changed

1 file changed

+0
-12
lines changed

drivers/platform/x86/thinkpad_acpi.c

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1105,15 +1105,6 @@ static int tpacpi_rfk_update_swstate(const struct tpacpi_rfk *tp_rfk)
11051105
return status;
11061106
}
11071107

1108-
/* Query FW and update rfkill sw state for all rfkill switches */
1109-
static void tpacpi_rfk_update_swstate_all(void)
1110-
{
1111-
unsigned int i;
1112-
1113-
for (i = 0; i < TPACPI_RFK_SW_MAX; i++)
1114-
tpacpi_rfk_update_swstate(tpacpi_rfkill_switches[i]);
1115-
}
1116-
11171108
/*
11181109
* Sync the HW-blocking state of all rfkill switches,
11191110
* do notice it causes the rfkill core to schedule uevents
@@ -3074,9 +3065,6 @@ static void tpacpi_send_radiosw_update(void)
30743065
if (wlsw == TPACPI_RFK_RADIO_OFF)
30753066
tpacpi_rfk_update_hwblock_state(true);
30763067

3077-
/* Sync sw blocking state */
3078-
tpacpi_rfk_update_swstate_all();
3079-
30803068
/* Sync hw blocking state last if it is hw-unblocked */
30813069
if (wlsw == TPACPI_RFK_RADIO_ON)
30823070
tpacpi_rfk_update_hwblock_state(false);

0 commit comments

Comments
 (0)