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

Reply via email to