2012-11-28 14:22:24

by Jens Kapitza

[permalink] [raw]
Subject: iwlwifi hibernate / suspend issue

hi,
i've a big problem with the iwlwifi driver.

the good think everythink works gerade as long as you do not suspend the
laptop


the bad issue:
~$ rfkill list
0: hci0: Bluetooth
Soft blocked: no
Hard blocked: no
1: phy0: Wireless LAN
Soft blocked: no
Hard blocked: no


after suspend phy0: tells Hard blocked: yes

but there is no switch on the laptop.
(just a Fn-F2 key) softblocking the antenna [after reboot all works again]

any starting points? i've looked at the main.c of iwlwifi there is an
wakup call but
can someone tell me how the driver works?

which call is done after suspend and why can i unload the driver and
reload it again
root@jens-S4216:/home/jens# modprobe -r iwlwifi
root@jens-S4216:/home/jens# modprobe iwlwifi
and everythink works?

is it a firmware issue (is it possible to force a firmware reload after
suspend)



i've wrote a sleep.d script in /etc/pm/...
that unloads the driver but it seems to has somethink todo with the
internal (uefi/bios) on the card?
it seems to be in a wrong state after wakeup


hope my english is not a disaster and someone can give me a hint where
to start or is there a patch working at this issue current kernel 3.7
rc? [yesterday] have not solved the problem


Jens Kapitza


2012-11-28 14:41:37

by Johannes Berg

[permalink] [raw]
Subject: Re: iwlwifi hibernate / suspend issue

On Wed, 2012-11-28 at 15:40 +0100, Jens Kapitza wrote:
> Am 28.11.2012 15:30, schrieb Johannes Berg:
> > No, the firmware is stopped anyway during suspend, the card is powered
> > off. Can you please post message output? We should read the rfkill state
> > during resume, maybe there's a race. Also, what kernel version?
> >
> > johannes
> root@jens-S4216:/home/jens# uname -a
> Linux jens-S4216 3.6.7 #2 SMP Sat Nov 24 19:30:21 CET 2012 x86_64 x86_64
> x86_64 GNU/Linux
>
> if testet linux-image-3.7.0-rc7-wl+_3.7.0-rc7-wl+ with same issue
>
> where can i found the output? never startet the debug mode in linux-kernel ?

just enter "dmesg" and pastebin the result somewhere

johannes


2012-11-28 15:21:26

by Jens Kapitza

[permalink] [raw]
Subject: Re: iwlwifi hibernate / suspend issue


> just enter "dmesg" and pastebin the result somewhere
>
> johannes
>
this line seems to be wrong

[ 4650.687346] iwlwifi 0000:02:00.0: RF_KILL bit toggled to disable radio.


working iwlwifi dmesg

http://pastebin.com/S9GwEMpg


after suspend

http://pastebin.com/ZB1BLwkc

jens

2012-11-28 14:29:46

by Johannes Berg

[permalink] [raw]
Subject: Re: iwlwifi hibernate / suspend issue

On Wed, 2012-11-28 at 15:15 +0100, Jens Kapitza wrote:

> after suspend phy0: tells Hard blocked: yes
>
> but there is no switch on the laptop.
> (just a Fn-F2 key) softblocking the antenna [after reboot all works again]
>
> any starting points? i've looked at the main.c of iwlwifi there is an
> wakup call but
> can someone tell me how the driver works?
>
> which call is done after suspend and why can i unload the driver and
> reload it again
> root@jens-S4216:/home/jens# modprobe -r iwlwifi
> root@jens-S4216:/home/jens# modprobe iwlwifi
> and everythink works?
>
> is it a firmware issue (is it possible to force a firmware reload after
> suspend)

No, the firmware is stopped anyway during suspend, the card is powered
off. Can you please post message output? We should read the rfkill state
during resume, maybe there's a race. Also, what kernel version?

johannes


2012-11-28 18:07:56

by Johannes Berg

[permalink] [raw]
Subject: Re: iwlwifi hibernate / suspend issue

On Wed, 2012-11-28 at 17:43 +0100, Johannes Berg wrote:
> On Wed, 2012-11-28 at 16:21 +0100, Jens Kapitza wrote:
> > > just enter "dmesg" and pastebin the result somewhere
>
> > this line seems to be wrong
> >
> > [ 4650.687346] iwlwifi 0000:02:00.0: RF_KILL bit toggled to disable radio.
>
> Well, it's not necessarily wrong, it indicates that the device read that
> the rfkill line was pulled low ("rf should be off").
>
> You said reloading the module fixes this

So it doesn't, and if you need to restart the computer that indicates a
problem with the ACPI support code, but I don't know if you have that
loaded at all.

So yeah, you were right when you said it's related to the BIOS, I just
thought you said reloading the module fixed it which I thought was very
strange. Since it doesn't, it's just the BIOS/whatever pulling the line
low and there's nothing the wifi driver can do about that, we can't even
ignore that.

johannes


2012-11-29 12:33:08

by Jens Kapitza

[permalink] [raw]
Subject: Re: iwlwifi hibernate / suspend issue

Am 28.11.2012 19:08, schrieb Johannes Berg:
> On Wed, 2012-11-28 at 17:43 +0100, Johannes Berg wrote:
>> On Wed, 2012-11-28 at 16:21 +0100, Jens Kapitza wrote:
>>>> just enter "dmesg" and pastebin the result somewhere
>>> this line seems to be wrong
>>>
>>> [ 4650.687346] iwlwifi 0000:02:00.0: RF_KILL bit toggled to disable radio.
>> Well, it's not necessarily wrong, it indicates that the device read that
>> the rfkill line was pulled low ("rf should be off").
>>
>> You said reloading the module fixes this
> So it doesn't, and if you need to restart the computer that indicates a
> problem with the ACPI support code, but I don't know if you have that
> loaded at all.
I'll move to acpi list (will search it later)
I'm using uefi and acpi is compied and loaded
>
> So yeah, you were right when you said it's related to the BIOS, I just
> thought you said reloading the module fixed it which I thought was very
> strange. Since it doesn't, it's just the BIOS/whatever pulling the line
> low and there's nothing the wifi driver can do about that, we can't even
> ignore that.
>
> johannes
>
thanks to clearify my problem



2012-11-28 16:42:39

by Johannes Berg

[permalink] [raw]
Subject: Re: iwlwifi hibernate / suspend issue

On Wed, 2012-11-28 at 16:21 +0100, Jens Kapitza wrote:
> > just enter "dmesg" and pastebin the result somewhere

> this line seems to be wrong
>
> [ 4650.687346] iwlwifi 0000:02:00.0: RF_KILL bit toggled to disable radio.

Well, it's not necessarily wrong, it indicates that the device read that
the rfkill line was pulled low ("rf should be off").

You said reloading the module fixes this, which is interesting since the
device should be sending interrupts whenever the state changes, so even
if it was reading the wrong state at resume time (as it does now) it
should catch up later...

johannes


2012-11-28 14:40:26

by Jens Kapitza

[permalink] [raw]
Subject: Re: iwlwifi hibernate / suspend issue

Am 28.11.2012 15:30, schrieb Johannes Berg:
> No, the firmware is stopped anyway during suspend, the card is powered
> off. Can you please post message output? We should read the rfkill state
> during resume, maybe there's a race. Also, what kernel version?
>
> johannes
root@jens-S4216:/home/jens# uname -a
Linux jens-S4216 3.6.7 #2 SMP Sat Nov 24 19:30:21 CET 2012 x86_64 x86_64
x86_64 GNU/Linux

if testet linux-image-3.7.0-rc7-wl+_3.7.0-rc7-wl+ with same issue

where can i found the output? never startet the debug mode in linux-kernel ?

root@jens-S4216:/home/jens/git# rfkill --version
rfkill 0.4-1ubuntu3 (Ubuntu)

root@jens-S4216:/home/jens/git# modinfo iwlwifi
filename: /lib/modules/3.6.7/kernel/drivers/net/wireless/iwlwifi/iwlwifi.ko
license: GPL
author: Copyright(c) 2003-2012 Intel Corporation
<[email protected]>
version: in-tree:
description: Intel(R) Wireless WiFi driver for Linux
firmware: iwlwifi-100-5.ucode
firmware: iwlwifi-1000-5.ucode
firmware: iwlwifi-135-6.ucode
firmware: iwlwifi-105-6.ucode
firmware: iwlwifi-2030-6.ucode
firmware: iwlwifi-2000-6.ucode
firmware: iwlwifi-5150-2.ucode
firmware: iwlwifi-5000-5.ucode
firmware: iwlwifi-6000g2b-6.ucode
firmware: iwlwifi-6000g2a-5.ucode
firmware: iwlwifi-6050-5.ucode
firmware: iwlwifi-6000-4.ucode
srcversion: E11EC5DDFB79C1C159DCD22


jens

2012-11-28 19:09:08

by Mikael Abrahamsson

[permalink] [raw]
Subject: Re: iwlwifi hibernate / suspend issue

On Wed, 28 Nov 2012, Johannes Berg wrote:

> So yeah, you were right when you said it's related to the BIOS, I just
> thought you said reloading the module fixed it which I thought was very
> strange. Since it doesn't, it's just the BIOS/whatever pulling the line
> low and there's nothing the wifi driver can do about that, we can't even
> ignore that.

I on the other hand, have the issue of iwlwifi sometimes stops working and
rmmod iwlwifi ; modprobe iwlwifi fixes (most of the time) the issue.

Lenovo Thinkpad, Intel 5300.
03:00.0 Network controller: Intel Corporation Ultimate N WiFi Link 5300

I am running Ubuntu 12.04, just for kicks I tried loading the kernel 3.6
backport modules which made the situation worse. I have historically tried
to bug report here a few times before without anyone replying, so I
stopped since I figured there wasn't anyone interested.

http://comments.gmane.org/gmane.linux.kernel.wireless.general/76919
http://www.spinics.net/lists/linux-wireless/msg96442.html

If someone could tell me what information I can provide that might be
important to bring the development forward, I'm all game.

--
Mikael Abrahamsson email: [email protected]