• H
    thinkpad-acpi: fix bluetooth/wwan resume · 08fedfc9
    Henrique de Moraes Holschuh 提交于
    Studying the DSDTs of various thinkpads, it looks like bit 3 of the
    argument to SBDC and SWAN is not "set radio to last state on resume".
    Rather, it seems to be "if this bit is set, enable radio on resume,
    otherwise disable it on resume".
    
    So, the proper way to prepare the radios for S3 suspend is: disable
    radio and clear bit 3 on the SBDC/SWAN call to to resume with radio
    disabled, and enable radio and set bit 3 on the SBDC/SWAN call to
    resume with the radio enabled.
    
    Also, for persistent devices, the rfkill core does not restore state,
    so we really need to get the firmware to do the right thing.
    
    We don't sync the radio state on suspend, instead we trust the BIOS to
    not do anything weird if we never touched the radio state since boot.
    Time will tell if that's a wise way of doing things...
    Signed-off-by: NHenrique de Moraes Holschuh <hmh@hmh.eng.br>
    Cc: stable@kernel.org
    08fedfc9
thinkpad_acpi.c 228.1 KB