Bug 42898

Summary: phy is hard blocked and unblockable with hardware-key for hp-wmi
Product: Drivers Reporter: doomwarriorx
Component: Platform_x86Assignee: drivers_platform_x86 (drivers_platform_x86)
Status: NEW ---    
Severity: normal CC: alan, samoht0-bugzilla, tres.14159, vitekd88
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 3.2.0 and 3.3-rc6 Subsystem:
Regression: No Bisected commit-id:
Attachments: VER_LINUX for 3.2.0
lspci

Description doomwarriorx 2012-03-09 18:35:13 UTC
Created attachment 72562 [details]
VER_LINUX for 3.2.0

This Notebook runs SLES 11 (SP1) kernel 2.6.32 with working wifi and bluetooth with working light for key on Fn+F12. After installing Ubuntu 12.04 with kernel 3.2.0 wifi stopped working. I also tested 3.3-rc6 (Ubuntu upsteam kernel) and the issue is still there.

I tried to track down the issue, as far as I can say there is an issue in either ath9k or/and hp_wmi

Problem: Hardwarekey Fn+F12 doen't change the light on the keyboard between white (on) and orange (off). The light change while booting from orange (off) to white (on) and stays there, no matter what I do!
There are four devices in rfkill:

0: hci0: Bluetooth
        Soft blocked: no
        Hard blocked: no
6: phy1: Wireless LAN
        Soft blocked: no
        Hard blocked: yes
9: hp-wifi: Wireless LAN
        Soft blocked: yes
        Hard blocked: no
10: hp-bluetooth: Bluetooth
        Soft blocked: yes
        Hard blocked: no

device 9 and 10 are belonging to hp-wmi. If I rmmod the hp-wmi driver those two devices are gone and Fn+F12 does nothing.
If driver is active Fn+F12 toggle 9 and 10 (light is not updated!) but not the phy (dev 6) or hci (dev 0). Since hci is not blocked by default bluetooth is working, but wifi is blocked on boot. There is no BIOS option in the HP635 to enable wifi!

Even worst if I call "rfkill unblock all" events occour for all four devices, but hp-wifi (dev 9) and hp-bluetooth (dev 10) stay on soft blocked: yes! Bluetooth unity gui element obviously scans for dev 10 and always report an deactivated bluetooth connection. (But Bluetooth is working since hci0 is unblocked and running!)

There is a commit for hp-wmi which plays around with soft & hard block stats
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commit;h=c0b9c6494498014f28dbec37fe327bf016a91356
which could cause some of the problems above.

summery:
hardware button don't toggle wifi and bluetooth hardware blocks only hp-wmi hardware blocks
software button toggle software blocks for some devs, but hp-wmi software blocks aren't touched. It is impossible to have all blocks to "unblock"

ProblemType: Bug
DistroRelease: Ubuntu 12.04
Package: linux-image-3.2.0-18-generic 3.2.0-18.28
ProcVersionSignature: Ubuntu 3.2.0-18.28-generic 3.2.9
Uname: Linux 3.2.0-18-generic x86_64
NonfreeKernelModules: fglrx
AlsaVersion: Advanced Linux Sound Architecture Driver Version 1.0.24.
ApportVersion: 1.94-0ubuntu2
Architecture: amd64
ArecordDevices:
 **** List of CAPTURE Hardware Devices ****
 card 1: SB [HDA ATI SB], device 0: ALC270 Analog [ALC270 Analog]
   Subdevices: 1/1
   Subdevice #0: subdevice #0
AudioDevicesInUse:
 USER PID ACCESS COMMAND
 /dev/snd/controlC1: doomwarrior 1703 F.... pulseaudio
 /dev/snd/controlC0: doomwarrior 1703 F.... pulseaudio
CRDA: Error: [Errno 2] Datei oder Verzeichnis nicht gefunden
Card0.Amixer.info:
 Card hw:0 'Generic'/'HD-Audio Generic at 0xf0444000 irq 44'
   Mixer name : 'ATI R6xx HDMI'
   Components : 'HDA:1002aa01,00aa0100,00100200'
   Controls : 6
   Simple ctrls : 1
Card0.Amixer.values:
 Simple mixer control 'IEC958',0
   Capabilities: pswitch pswitch-joined penum
   Playback channels: Mono
   Mono: Playback [on]
Card1.Amixer.info:
 Card hw:1 'SB'/'HDA ATI SB at 0xf0440000 irq 16'
   Mixer name : 'Realtek ALC270'
   Components : 'HDA:10ec0270,103c3577,00100100'
   Controls : 18
   Simple ctrls : 10
Date: Wed Mar 7 22:28:29 2012
HibernationDevice: RESUME=UUID=0c973408-1118-4297-b074-8d4d6aec5e23
InstallationMedia: Ubuntu 12.04 LTS "Precise Pangolin" - Alpha amd64 (20120306)
IwConfig: Error: [Errno 2] Datei oder Verzeichnis nicht gefunden
MachineType: Hewlett-Packard HP 635 Notebook PC
ProcEnviron:
 LANGUAGE=de:en
 TERM=xterm
 PATH=(custom, no user)
 LANG=de_DE.UTF-8
 SHELL=/bin/bash
ProcFB: 0 VESA VGA
ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-3.2.0-18-generic root=UUID=47e0679f-33de-4fd7-b558-f7f40ae25e87 ro quiet splash vt.handoff=7
RelatedPackageVersions:
 linux-restricted-modules-3.2.0-18-generic N/A
 linux-backports-modules-3.2.0-18-generic N/A
 linux-firmware 1.71
RfKill: Error: [Errno 2] Datei oder Verzeichnis nicht gefunden
SourcePackage: linux
StagingDrivers: rts_pstor
UdevDb: Error: [Errno 2] Datei oder Verzeichnis nicht gefunden
UpgradeStatus: No upgrade log present (probably fresh install)
dmi.bios.date: 11/07/2011
dmi.bios.vendor: Hewlett-Packard
dmi.bios.version: F.42
dmi.board.asset.tag: Base Board Asset Tag
dmi.board.name: 3577
dmi.board.vendor: Hewlett-Packard
dmi.board.version: 24.48
dmi.chassis.asset.tag: Chassis Asset Tag
dmi.chassis.type: 10
dmi.chassis.vendor: Hewlett-Packard
dmi.chassis.version: Chassis Version
dmi.modalias: dmi:bvnHewlett-Packard:bvrF.42:bd11/07/2011:svnHewlett-Packard:pnHP635NotebookPC:pvr058A100000004C10002600000:rvnHewlett-Packard:rn3577:rvr24.48:cvnHewlett-Packard:ct10:cvrChassisVersion:
dmi.product.name: HP 635 Notebook PC
dmi.product.version: 058A100000004C10002600000
dmi.sys.vendor: Hewlett-Packard
Comment 1 doomwarriorx 2012-03-09 18:39:56 UTC
Created attachment 72563 [details]
lspci
Comment 2 Viktor_D 2012-04-03 10:15:46 UTC
similar problem with wi-fi hard block on my Lenovo S10-3 (ath9k).
I use Xubuntu precise beta with latest updates. Tested on kernel 3.3.1 - cannot unblock wi-fi.
Comment 3 Viktor_D 2012-04-05 09:39:51 UTC
Lenovo S10-3 (wireless adapter is ath9k) - kernel v. 3.4.0rc1 - wi-fi doesn't work.
Comment 4 Viktor_D 2012-04-05 09:41:25 UTC
Lenovo S10-3 (wireless adapter is ath9k) - kernel v. 3.4.0rc1 - wi-fi doesn't work.
Comment 5 Alan 2012-08-31 16:53:09 UTC
Viktor: please don't piggy back stuff onto other bugs unless you are sure they are related, open a new one.
Comment 6 Miguel 2013-12-26 01:33:49 UTC
I have the same problem in a laptop "lenovo Z570".

Some data for help:



$ uname -a
Linux speccy-laptop 3.5.0-44-generic #67-Ubuntu SMP Tue Nov 12 19:36:14 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux



# lshw -class network
  *-network DISABLED      
       description: Wireless interface
       product: AR9285 Wireless Network Adapter (PCI-Express)
       vendor: Atheros Communications Inc.
       physical id: 0
       bus info: pci@0000:03:00.0
       logical name: wlan0
       version: 01
       serial: 74:de:2b:5b:d9:c1
       width: 64 bits
       clock: 33MHz
       capabilities: pm msi pciexpress bus_master cap_list ethernet physical wireless
       configuration: broadcast=yes driver=ath9k driverversion=3.5.0-44-generic firmware=N/A latency=0 link=no multicast=yes wireless=IEEE 802.11bgn
       resources: irq:17 memory:f1500000-f150ffff
  *-network
       description: Ethernet interface
       product: RTL8101E/RTL8102E PCI Express Fast Ethernet controller
       vendor: Realtek Semiconductor Co., Ltd.
       physical id: 0
       bus info: pci@0000:04:00.0
       logical name: eth0
       version: 05
       serial: f0:de:f1:94:bd:53
       size: 10Mbit/s
       capacity: 100Mbit/s
       width: 64 bits
       clock: 33MHz
       capabilities: pm msi pciexpress msix vpd bus_master cap_list ethernet physical tp mii 10bt 10bt-fd 100bt 100bt-fd autonegotiation
       configuration: autonegotiation=on broadcast=yes driver=r8169 driverversion=2.3LK-NAPI duplex=half firmware=rtl_nic/rtl8105e-1.fw latency=0 link=no multicast=yes port=MII speed=10Mbit/s
       resources: irq:42 ioport:2000(size=256) memory:f1404000-f1404fff memory:f1400000-f1403fff
  *-network:0
       description: Ethernet interface
       physical id: 3
       logical name: usb0
       serial: ee:b7:11:0c:40:44
       capabilities: ethernet physical
       configuration: broadcast=yes driver=rndis_host driverversion=22-Aug-2005 firmware=RNDIS device ip=192.168.42.231 link=yes multicast=yes
  *-network:1
       description: Wireless interface
       physical id: 4
       bus info: usb@2:1.2
       logical name: wlan1
       serial: 44:33:4c:71:33:98
       capabilities: ethernet physical wireless
       configuration: broadcast=yes driver=rtl8192cu driverversion=3.5.0-44-generic firmware=N/A link=no multicast=yes wireless=IEEE 802.11bgn



# rfkill list all
0: hci0: Bluetooth
	Soft blocked: no
	Hard blocked: no
1: phy0: Wireless LAN
	Soft blocked: no
	Hard blocked: yes
2: ideapad_bluetooth: Bluetooth
	Soft blocked: no
	Hard blocked: no
5: phy3: Wireless LAN
	Soft blocked: no
	Hard blocked: no
Comment 7 Alan 2013-12-27 11:29:20 UTC
miguel: Please file a separate bug  - that one is about the HP 635 and a different rfkill/button driver set
Comment 8 samoht0 2016-07-28 18:18:26 UTC
Sadly, no activity in the last years...
I also use a HP 635 and this bug is even present in latest stable Fedora kernel build (4.6.4-301.fc24.x86_64).

Investigation shows, that ath9k and(!) hp_wmi set their own radio killswitch:

rfkill2: found WiFi radio killswitch (at /sys/devices/platform/hp-wmi/rfkill/rfkill2 (platform driver hp-wmi)
rfkill1: found WiFi radio killswitch (at /sys/devices/pci0000:00/0000:00:15.3/0000:0 (driver ath9k)

The hardware switch only disables one of these. So one of the wifi devices stays blocked, as the bug opener described. This can be worked around:

1. Use /etc/modprobe.d/hp.conf to blacklist ath9k and hp_wmi. Reboot.
2. Load ath9k via modprobe.

Result: Wifi is up an can be switched using hardware switch. No hp-wifi device.

So clearly hp_wmi is the culprit, ath9k works fine with the chipset. The strange LED behavior (always white after automatically changing from orange) is *not* a matter of ath9k and hp_wmi. The LED does so, even if both modules are blacklisted. Hardware switch works with ath9k loaded, even if the LED color doesn't change. So this issue looks like some minor glitch.

I followed https://bugzilla.kernel.org/show_bug.cgi?id=69131 which tracked a similar issue within hp_wmi. But the patch for older (pre-2009) HP Laptops didn't work for the HP 635 (checked, as it was added in Fedora: https://bugzilla.redhat.com/show_bug.cgi?id=1338025).

I personally think, hp_wmi should have a config option to toggle the rfkill behavior.