public inbox for linux-acpi@vger.kernel.org
 help / color / mirror / Atom feed
* Suspend/hibernate wireless regression with 2.6.33 kernel
@ 2010-03-17  1:51 Chris Vine
  2010-03-17 19:24 ` Miklos Vajna
  2010-03-22 12:25 ` Chris Vine
  0 siblings, 2 replies; 4+ messages in thread
From: Chris Vine @ 2010-03-17  1:51 UTC (permalink / raw)
  To: linux-kernel, linux-acpi

Hi,

I have a Lenovo S12 (Ideapad) netbook with a BCM4312 802.11b/g
[14e4:4315] wireless device.  Although this works using the PIO option
in kernel 2.6.33/2.6.33.1 (not with DMA) using the in-kernel b43 driver,
and also works with the broadcom proprietary wl driver, it breaks after
a suspend or hibernate. Attempts to bring up the wlan0 interface with
'ifconfig wlan0 up' after suspension or hibernation results in the
following message (although nothing is revealed by dmesg):

  SIOCSIFFLAGS: Unknown error 132

More worryingly, when suspending or hibernating, acpi sometimes
but not always appears to write to the CMOS.  On two occasions I
have observed that although a reboot into 2.6.33 would work (until there
is another suspension or hibernation), wireless becomes permanently
switched off when rebooting into 2.6.32 or earlier - when reading
from the BIOS, kernel 2.6.32 and below appears to think that the radio
has been disabled even though the BIOS set-up screen disagrees. When
this occurs, I have to restore all defaults in the BIOS to get wireless
to come on again in kernel 2.6.32 and less.

This is not b43 specific, as I get exactly the same effect using the
broadcom wl driver.  Suspension works in kernel 2.6.32 and
below with the wl driver, but not with kernel 2.6.33/2.6.33.1.

If I unload the b43 and related modules before suspending or
hibernating, and then reload them on resuming, I get more information
from dmesg, namely that it thinks that the wireless has been turned off
by the rfkill button, which it definitely has not:

*****

Restarting tasks ... done.
cfg80211: Using static regulatory domain info
cfg80211: Regulatory domain: 00
    (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
    (2402000 KHz - 2472000 KHz @ 40000 KHz), (600 mBi, 2000 mBm)
    (2457000 KHz - 2482000 KHz @ 20000 KHz), (600 mBi, 2000 mBm)
    (2474000 KHz - 2494000 KHz @ 20000 KHz), (600 mBi, 2000 mBm)
    (5170000 KHz - 5250000 KHz @ 40000 KHz), (600 mBi, 2000 mBm)
    (5735000 KHz - 5835000 KHz @ 40000 KHz), (600 mBi, 2000 mBm)
cfg80211: Calling CRDA to update world regulatory domain
b43-pci-bridge 0000:03:00.0: PCI INT A -> GSI 17 (level, low) -> IRQ 17
b43-pci-bridge 0000:03:00.0: setting latency timer to 64
ssb: Core 0 found: ChipCommon (cc 0x800, rev 0x16, vendor 0x4243)
ssb: Core 1 found: IEEE 802.11 (cc 0x812, rev 0x0F, vendor 0x4243)
ssb: Core 2 found: PCMCIA (cc 0x80D, rev 0x0A, vendor 0x4243)
ssb: Core 3 found: PCI-E (cc 0x820, rev 0x09, vendor 0x4243)
ssb: Sonics Silicon Backplane found on PCI device 0000:03:00.0
b43-phy0: Broadcom 4312 WLAN found (core revision 15)
b43-phy0 debug: Found PHY: Analog 6, Type 5, Revision 1
b43-phy0 debug: Found Radio: Manuf 0x17F, Version 0x2062, Revision 2
phy0: Selected rate control algorithm 'minstrel'
Registered led device: b43-phy0::tx
Registered led device: b43-phy0::rx
Registered led device: b43-phy0::radio
Broadcom 43xx driver loaded [ Features: PMLS, Firmware-ID: FW13 ]
b43 ssb0:0: firmware: requesting b43/ucode15.fw
b43 ssb0:0: firmware: requesting b43/lp0initvals15.fw
b43 ssb0:0: firmware: requesting b43/lp0bsinitvals15.fw
b43-phy0: Loading firmware version 478.104 (2008-07-01 00:50:23)
b43-phy0 debug: b2062: Using crystal tab entry 19200 kHz.
b43-phy0 debug: Chip initialized
b43-phy0 debug: PIO initialized
b43-phy0 debug: QoS enabled
b43-phy0 debug: Wireless interface started
b43-phy0 debug: Adding Interface type 2
b43-phy0: Radio hardware status changed to DISABLED
b43-phy0: Radio turned on by software
b43-phy0: The hardware RF-kill button still turns the radio physically
off. Press the button to turn it on. b43-phy0 debug: Removing Interface
type 2 b43-phy0 debug: Wireless interface stopped

*****

The rfkill button on this netbook is a slider switch with 'on' and
'off' positions.  As far as I can tell, bluetooth works normally
although I have not tested this extensively (I got a bit spooked when I
found the CMOS was being interfered with).

Chris

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Suspend/hibernate wireless regression with 2.6.33 kernel
  2010-03-17  1:51 Suspend/hibernate wireless regression with 2.6.33 kernel Chris Vine
@ 2010-03-17 19:24 ` Miklos Vajna
  2010-03-22 12:25 ` Chris Vine
  1 sibling, 0 replies; 4+ messages in thread
From: Miklos Vajna @ 2010-03-17 19:24 UTC (permalink / raw)
  To: Chris Vine; +Cc: linux-kernel, linux-acpi

[-- Attachment #1: Type: text/plain, Size: 842 bytes --]

On Wed, Mar 17, 2010 at 01:51:13AM +0000, Chris Vine <chris@cvine.freeserve.co.uk> wrote:
> I have a Lenovo S12 (Ideapad) netbook with a BCM4312 802.11b/g
> [14e4:4315] wireless device.  Although this works using the PIO option
> in kernel 2.6.33/2.6.33.1 (not with DMA) using the in-kernel b43 driver,
> and also works with the broadcom proprietary wl driver, it breaks after
> a suspend or hibernate. Attempts to bring up the wlan0 interface with
> 'ifconfig wlan0 up' after suspension or hibernation results in the
> following message (although nothing is revealed by dmesg):
> 
>   SIOCSIFFLAGS: Unknown error 132

I just wanted to mention that I can reproduce this issue.

Same HW (Lenovo S12 Ideapad), and I can reproduce with b43 and wl, on
2.6.33 and 2.6.34-rc1 as well. It works fine on 2.6.32 for me, too.

Thanks.

[-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Suspend/hibernate wireless regression with 2.6.33 kernel
  2010-03-17  1:51 Suspend/hibernate wireless regression with 2.6.33 kernel Chris Vine
  2010-03-17 19:24 ` Miklos Vajna
@ 2010-03-22 12:25 ` Chris Vine
  2010-03-22 21:21   ` Chris Vine
  1 sibling, 1 reply; 4+ messages in thread
From: Chris Vine @ 2010-03-22 12:25 UTC (permalink / raw)
  To: linux-kernel, linux-acpi

On Wed, 17 Mar 2010 01:51:13 +0000
Chris Vine <chris@cvine.freeserve.co.uk> wrote:
> Hi,
> 
> I have a Lenovo S12 (Ideapad) netbook with a BCM4312 802.11b/g
> [14e4:4315] wireless device.  Although this works using the PIO option
> in kernel 2.6.33/2.6.33.1 (not with DMA) using the in-kernel b43
> driver, and also works with the broadcom proprietary wl driver, it
> breaks after a suspend or hibernate. Attempts to bring up the wlan0
> interface with 'ifconfig wlan0 up' after suspension or hibernation
> results in the following message (although nothing is revealed by
> dmesg):
> 
>   SIOCSIFFLAGS: Unknown error 132
> 
> More worryingly, when suspending or hibernating, acpi sometimes
> but not always appears to write to the CMOS.  On two occasions I
> have observed that although a reboot into 2.6.33 would work (until
> there is another suspension or hibernation), wireless becomes
> permanently switched off when rebooting into 2.6.32 or earlier - when
> reading from the BIOS, kernel 2.6.32 and below appears to think that
> the radio has been disabled even though the BIOS set-up screen
> disagrees. When this occurs, I have to restore all defaults in the
> BIOS to get wireless to come on again in kernel 2.6.32 and less.

[snip]

This regression between 2.6.32 and 2.6.33 is still present in
2.6.34-rc2, with an added twist.  In 2.6.34-rc2, on resuming from
suspension or hibernation, my rfkill button is completely disabled -
that is, I cannot switch wireless on, but I also cannot switch bluetooth
off.

Chris



^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Suspend/hibernate wireless regression with 2.6.33 kernel
  2010-03-22 12:25 ` Chris Vine
@ 2010-03-22 21:21   ` Chris Vine
  0 siblings, 0 replies; 4+ messages in thread
From: Chris Vine @ 2010-03-22 21:21 UTC (permalink / raw)
  To: linux-kernel, linux-acpi; +Cc: Rafael J. Wysocki

On Mon, 22 Mar 2010 12:25:17 +0000
Chris Vine <chris@cvine.freeserve.co.uk> wrote:
> On Wed, 17 Mar 2010 01:51:13 +0000
> Chris Vine <chris@cvine.freeserve.co.uk> wrote:
> > Hi,
> > 
> > I have a Lenovo S12 (Ideapad) netbook with a BCM4312 802.11b/g
> > [14e4:4315] wireless device.  Although this works using the PIO
> > option in kernel 2.6.33/2.6.33.1 (not with DMA) using the in-kernel
> > b43 driver, and also works with the broadcom proprietary wl driver,
> > it breaks after a suspend or hibernate. Attempts to bring up the
> > wlan0 interface with 'ifconfig wlan0 up' after suspension or
> > hibernation results in the following message (although nothing is
> > revealed by dmesg):
> > 
> >   SIOCSIFFLAGS: Unknown error 132
> > 
> > More worryingly, when suspending or hibernating, acpi sometimes
> > but not always appears to write to the CMOS.  On two occasions I
> > have observed that although a reboot into 2.6.33 would work (until
> > there is another suspension or hibernation), wireless becomes
> > permanently switched off when rebooting into 2.6.32 or earlier -
> > when reading from the BIOS, kernel 2.6.32 and below appears to
> > think that the radio has been disabled even though the BIOS set-up
> > screen disagrees. When this occurs, I have to restore all defaults
> > in the BIOS to get wireless to come on again in kernel 2.6.32 and
> > less.
> 
> [snip]
> 
> This regression between 2.6.32 and 2.6.33 is still present in
> 2.6.34-rc2, with an added twist.  In 2.6.34-rc2, on resuming from
> suspension or hibernation, my rfkill button is completely disabled -
> that is, I cannot switch wireless on, but I also cannot switch
> bluetooth off.

I have found the proximate cause of this.  From version 2.6.33, at boot
time the acer-wmi module gets loaded.  As this is a Lenovo netbook
and not an Acer laptop, and probably uses a different chipset, that is
not a good thing to do.

If I blacklist acer-wmi, then suspension and hibernation appears to
work normally.

Chris

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2010-03-22 21:21 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-03-17  1:51 Suspend/hibernate wireless regression with 2.6.33 kernel Chris Vine
2010-03-17 19:24 ` Miklos Vajna
2010-03-22 12:25 ` Chris Vine
2010-03-22 21:21   ` Chris Vine

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox