Bug 659901 - hp_wmi breaks rfkill.
Summary: hp_wmi breaks rfkill.
Keywords:
Status: CLOSED INSUFFICIENT_DATA
Alias: None
Product: Fedora
Classification: Fedora
Component: kernel
Version: 14
Hardware: x86_64
OS: Linux
low
medium
Target Milestone: ---
Assignee: Stanislaw Gruszka
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2010-12-04 01:54 UTC by Xi Yang
Modified: 2011-12-16 00:15 UTC (History)
9 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2011-12-16 00:15:53 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)

Description Xi Yang 2010-12-04 01:54:58 UTC
Description of problem:

I'm using a HP Presario 3803TX laptop with a Intel 3945 wireless card. It has a power switch. If I boot into system with this power switch off, I will never be able to connect to the wireless card even if I turn on it.

Version-Release number of selected component (if applicable):

2.6.35.6-48.fc14.x86_64
Actually, this problem exists for a pretty long time in all kernels I've used.

How reproducible:

Always

Steps to Reproduce:
1. turn off the wireless power switch.
2. turn on computer, boot into system, log in.
3. trun on the wireless power switch.

Actual results:

The wireless card does not work. The network manger and iwconfig shows the wireless is "disabled" or "power off".

Expected results:

It should be turned on.

Additional info:

I have tried to enable it using iwconfig, but it fails.

###### results by iwconfig: ######
$ iwconfig wlan0
wlan0     IEEE 802.11abg  ESSID:off/any  
          Mode:Managed  Access Point: Not-Associated   Tx-Power=off   
          Retry  long limit:7   RTS thr:off   Fragment thr:off
          Power Management:off
# iwconfig wlan0 power on
Error for wireless request "Set Power Management" (8B2C) :
    SET failed on device wlan0 ; Operation not supported.

###### results by lsmod: ######
Module                  Size  Used by
deflate                 2143  0 
zlib_deflate           18639  1 deflate
ctr                     3813  0 
camellia               18447  0 
cast5                  15888  0 
rmd160                  7984  0 
crypto_null             2878  0 
ccm                     7799  0 
serpent                19133  0 
blowfish                8450  0 
twofish_x86_64          5247  0 
twofish_common         14366  1 twofish_x86_64
xcbc                    2631  0 
cbc                     2953  0 
sha256_generic         10175  0 
sha512_generic          4788  0 
des_generic            16583  0 
cryptd                  7111  0 
aes_x86_64              7758  0 
aes_generic            26908  1 aes_x86_64
ah6                     5788  0 
ah4                     5132  0 
esp6                    4943  0 
esp4                    5210  0 
xfrm4_mode_beet         2160  0 
xfrm4_tunnel            1955  0 
tunnel4                 2665  1 xfrm4_tunnel
xfrm4_mode_tunnel       1895  0 
xfrm4_mode_transport     1455  0 
xfrm6_mode_transport     1519  0 
xfrm6_mode_ro           1308  0 
xfrm6_mode_beet         1969  0 
xfrm6_mode_tunnel       1996  0 
ipcomp                  2089  0 
ipcomp6                 2122  0 
xfrm_ipcomp             4305  2 ipcomp,ipcomp6
xfrm6_tunnel            4009  1 ipcomp6
tunnel6                 2516  1 xfrm6_tunnel
af_key                 27035  0 
vboxnetadp              4967  0 
vboxnetflt             13626  0 
vboxdrv              1758075  2 vboxnetadp,vboxnetflt
sunrpc                201180  1 
cpufreq_ondemand        9278  2 
acpi_cpufreq            7329  1 
freq_table              3955  2 cpufreq_ondemand,acpi_cpufreq
mperf                   1481  1 acpi_cpufreq
ip6t_REJECT             4279  2 
nf_conntrack_ipv6      18078  2 
ip6table_filter         1687  1 
ip6_tables             17481  1 ip6table_filter
ipv6                  286249  59 ah6,esp6,xfrm6_mode_beet,xfrm6_mode_tunnel,ipcomp6,xfrm6_tunnel,tunnel6,ip6t_REJECT,nf_conntrack_ipv6
fuse                   61363  7 
uinput                  7368  0 
arc4                    1449  2 
ecb                     2119  2 
nvidia              10213047  31 
iwl3945               118175  0 
snd_hda_codec_conexant    41923  1 
iwlcore               195683  1 iwl3945
mac80211              228732  2 iwl3945,iwlcore
snd_hda_intel          24399  4 
snd_hda_codec          86743  2 snd_hda_codec_conexant,snd_hda_intel
cfg80211              134709  3 iwl3945,iwlcore,mac80211
snd_hwdep               6392  1 snd_hda_codec
snd_seq                53791  0 
snd_seq_device          6191  1 snd_seq
snd_pcm                80190  3 snd_hda_intel,snd_hda_codec
sky2                   46473  0 
r852                   10070  0 
sm_common               4276  1 r852
nand                   32055  2 r852,sm_common
nand_ids                4258  1 nand
nand_ecc                3936  1 nand
hp_wmi                  6087  0 
snd_timer              19892  2 snd_seq,snd_pcm
rfkill                 17622  3 cfg80211,hp_wmi
i2c_i801               11088  0 
mtd                    18231  2 sm_common,nand
snd                    63968  15 snd_hda_codec_conexant,snd_hda_intel,snd_hda_codec,snd_hwdep,snd_seq,snd_seq_device,snd_pcm,snd_timer
soundcore               6576  1 snd
serio_raw               4640  0 
iTCO_wdt               11256  0 
snd_page_alloc          7559  2 snd_hda_intel,snd_pcm
i2c_core               26900  2 nvidia,i2c_i801
iTCO_vendor_support     2610  1 iTCO_wdt
wmi                     8138  1 hp_wmi
joydev                  9737  0 
microcode              18548  0 
sdhci_pci               7871  0 
sdhci                  18464  1 sdhci_pci
video                  21637  0 
firewire_ohci          21170  0 
mmc_core               64113  1 sdhci
firewire_core          45817  1 firewire_ohci
output                  2253  1 video
crc_itu_t               1563  1 firewire_core

Comment 1 Jirka Klimes 2011-05-16 10:03:12 UTC
That could be an issue with platform driver hp_wmi.

What do you get for
$ rfkill list

If hp_wmi blocks the switch you could try:
# rmmod hp_wmi

Comment 2 Pablo Castellazzi 2011-07-07 16:04:47 UTC
I have the same problem with different hardware. My laptop is a Dell Inspiron 6400 (also iwl3945).

$ rfkill list
0: dell-wifi: Wireless LAN
	Soft blocked: no
	Hard blocked: yes

1: phy0: Wireless LAN
	Soft blocked: no
	Hard blocked: yes

After removing dell_wmi the rf kill switch work ok.

$ rfkill list
1: phy0: Wireless LAN
	Soft blocked: no
	Hard blocked: no

Even when is working properly i got a few error messages from dmesg.

When i turn it off:

[  455.727740] iwl3945 0000:0b:00.0: Card state received: HW:Kill SW:On
[  455.729627] keyboard: can't emulate rawmode for keycode 240
[  455.729649] keyboard: can't emulate rawmode for keycode 240
[  455.732193] iwl3945 0000:0b:00.0: Not sending command - RF KILL
[  455.732204] iwl3945 0000:0b:00.0: Error sending REPLY_RXON: enqueue_hcmd failed: -5
[  455.732214] iwl3945 0000:0b:00.0: Error setting new configuration (-5).
[  455.733161] iwl3945 0000:0b:00.0: MAC is in deep sleep!.  CSR_GP_CNTRL = 0x040003DD


When i turn it on:

[  531.819077] keyboard: can't emulate rawmode for keycode 240
[  531.819106] keyboard: can't emulate rawmode for keycode 240
[  532.073481] iwl3945 0000:0b:00.0: Error setting Tx power (-5).

As a workaround i added blacklist-wmi.conf to /etc/modprobe.d with:

  install dell_wmi /bin/true
  install wmi /bin/true
  blacklist dell_wmi
  blacklist wmi

A few questions:
  - is this the right solution?
  - what i missing when disabling wmi?
  - is there a way to fix the keyboard error? (setkeycodes <something> 240?)
  - is there a way to fix the Tx power issue?

Comment 3 Pablo Castellazzi 2011-07-07 16:08:21 UTC
I forgot: this is happening with Fedora 15 i686 too:
  kernel 2.6.38.8-32.fc15.i686
  iwl3945-firmware 15.32.2.9-5.fc15.noarch

Comment 4 Dave Jones 2011-10-06 22:01:09 UTC
Pablo, can you file a separate bug for the dell_wmi case.
It may be a related issue, but it's in a different module, so needs tracking separately.

Comment 5 Stanislaw Gruszka 2011-10-07 08:45:35 UTC
Pablo issue is tracked in bug 732029

Comment 6 Stanislaw Gruszka 2011-10-19 11:59:46 UTC
After booting into the system with turned off wireless switch, please do this: 

# yum install rfkill
# rfkill list
# rfkill event
turn on the switch 
exit from rfkill events logger (ctrl-c)
# rfkill list

and provide here console output. Thanks.


Note You need to log in before you can comment on or make changes to this bug.