http://bugzilla.kernel.org/show_bug.cgi?id=14775
Summary: thinkpad-acpi: rfkill persistency across hibernate
doesn't work
Product: ACPI
Version: 2.5
Kernel Version: 2.6.32
Platform: All
OS/Version: Linux
Tree: Mainline
Status: NEW
Severity: normal
Priority: P1
Component: Platform-Drivers
AssignedTo: [email protected]
ReportedBy: [email protected]
Regression: Yes
Hi,
I have an integrated wireless setup inside my Lenovo Thinkpad T400 which
normally works fine and provides WiFi, Bluetooth and WWAN connectivity.
The wifi card is utilized by the iwlagn driver, and WWAN modem as well
as Bluetooth appears separate devices, both managed by thinkpad_acpi. There's a
single physical rfkill switch on the laptop.
I upgraded from 2.6.28.10 to 2.6.30 and that went well as far as iwlagn
was concerned, however, I started noticing that the WWAN device occasionally
completely disappears.
After some discussions with Henrique de Moraes Holschuh on ibm-acpi* lists, it
became apparent that the driver does something to manage the state of the
availability these two devices. This is visible from userspace via:
/sys/devices/platform/thinkpad_acpi/wwan_enable
/sys/devices/platform/thinkpad_acpi/rfkill/rfkill1/*
and
/sys/devices/platform/thinkpad_acpi/bluetooth_enable
/sys/devices/platform/thinkpad_acpi/rfkill/rfkill0/*
At first I couldn't pinpoint the exact state change that fails me, but since
upgrading to 2.6.32 and re-testing, I've confirmed that a normal reboot
restores
the values to the setting of "enabled", whereas a hibernation sequence forces
the values to "disabled". All the while BIOS setting remains intact - the
device is enabled in it.
That looks to be according to drivers/platform/x86/thinkpad_acpi.c terminology:
TP_ACPI_WGSV_STATE_WWANEXIST = 0x0001, /* WWAN hw available */
TP_ACPI_WGSV_STATE_WWANPWR = 0x0002, /* WWAN radio enabled */
TP_ACPI_WGSV_STATE_WWANPWRRES = 0x0004, /* WWAN state at resume */
TP_ACPI_WGSV_STATE_WWANBIOSOFF = 0x0008, /* WWAN disabled in BIOS */
TP_ACPI_WGSV_STATE_BLTHEXIST = 0x0001, /* BLTH hw available */
TP_ACPI_WGSV_STATE_BLTHPWR = 0x0002, /* BLTH radio enabled */
TP_ACPI_WGSV_STATE_BLTHPWRRES = 0x0004, /* BLTH state at resume */
TP_ACPI_WGSV_STATE_BLTHBIOSOFF = 0x0008, /* BLTH disabled in BIOS */
After the resume from hibernation I'm getting the sysctl settings in state 0,
which is what disables the hardware.
This also has another annoying side-effect - I can't hibernate Linux and boot
to Windows - there's nothing there that is able to enable the device again :)
If you need more information, don't hesitate to let me know.
Please fix it. TIA.
--
Configure bugmail: http://bugzilla.kernel.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching the assignee of the bug.
------------------------------------------------------------------------------
Return on Information:
Google Enterprise Search pays you back
Get the facts.
http://p.sf.net/sfu/google-dev2dev
_______________________________________________
acpi-bugzilla mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/acpi-bugzilla