View previous topic :: View next topic |
Author |
Message |
MickKi Veteran
![Veteran Veteran](/images/ranks/rank_rect_5_vet.gif)
Joined: 08 Feb 2004 Posts: 1179
|
Posted: Wed Jul 04, 2018 3:17 pm Post subject: >=gentoo-sources-4.14.52 breaks Dell bt Broadcom BCM2046B |
|
|
There's been a change in the 4.14.x and later kernel sources which causes the BCM2046B1 mini-card on an old Dell XPS to malfunction. WiFi provided by BCM4312 802.11b/g LP-PHY works, but the bluetooth functionality is broken.
Something has changed with regards to USB drivers in the kernel structure, because I notice a race condition whereby the kernel binds and then unbinds the USB hub, followed by udev trying to bind it. This race condition pegs the CPU and overheats the PC. When I try to shutdown the PC I have to wait for a long time because udev will not respond to shut down gracefully. This is the never ending loop 'udevadm monitor' shows: Code: | KERNEL[641.691683] bind /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.6/2-1.6.2/2-1.6.2:1.0 (usb)
KERNEL[641.691914] unbind /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.6/2-1.6.2/2-1.6.2:1.0 (usb)
UDEV [641.692324] unbind /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.6/2-1.6.2/2-1.6.2:1.0 (usb)
KERNEL[641.695675] bind /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.6/2-1.6.2/2-1.6.2:1.0 (usb)
KERNEL[641.695893] unbind /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.6/2-1.6.2/2-1.6.2:1.0 (usb)
UDEV [641.696318] bind /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.6/2-1.6.2/2-1.6.2:1.0 (usb)
KERNEL[641.699951] bind /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.6/2-1.6.2/2-1.6.2:1.0 (usb)
KERNEL[641.700164] unbind /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.6/2-1.6.2/2-1.6.2:1.0 (usb)
UDEV [641.700566] unbind /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.6/2-1.6.2/2-1.6.2:1.0 (usb)
... |
The 4.14.52 kernel config was created with 'make oldconfig' from 4.9.95, which as I said works fine without any kernel/udev race conditions. If I do not build CONFIG_USB_PCI the race condition does not occur, but as expected I have no USB capability.
Any idea what has changed in the kernel to cause this problem and how I could overcome it? I've installed 4.15.x and 4.16.x, but the same problem remains.
The mini-card containing the bluetooth device is as follows: Code: | *-usb:1
description: USB hub
product: BCM2046B1
vendor: Broadcom
physical id: 6
bus info: usb@2:1.6
version: 1.00
capabilities: usb-2.00
configuration: driver=hub maxpower=94mA slots=3 speed=12Mbit/s
*-usb:0
description: Keyboard
product: Integrated Keyboard
vendor: Dell Computer Corp.
physical id: 1
bus info: usb@2:1.6.1
version: 1.00
capabilities: usb-2.00
configuration: driver=usbhid maxpower=2mA speed=12Mbit/s
*-usb:1 UNCLAIMED
description: Mouse
product: Integrated Touchpad / Trackstick
vendor: Dell Computer Corp.
physical id: 2
bus info: usb@2:1.6.2
version: 1.00
capabilities: usb-2.00
configuration: maxpower=2mA speed=12Mbit/s
*-usb:2
description: Bluetooth wireless interface
product: Dell Wireless 370 Bluetooth Mini-card
vendor: Dell Computer Corp
physical id: 3
bus info: usb@2:1.6.3
version: 4.56
capabilities: bluetooth usb-2.00
configuration: driver=btusb maxpower=100mA speed=12Mbit/s |
dmesg does not report any errors when activating the bt device: Code: | [ 14.926053] usb 2-1.6.3: new full-speed USB device number 7 using ehci-pci
[ 15.009383] usb 2-1.6.3: New USB device found, idVendor=413c, idProduct=8156
[ 15.009387] usb 2-1.6.3: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 15.009389] usb 2-1.6.3: Product: Dell Wireless 370 Bluetooth Mini-card
[ 15.009391] usb 2-1.6.3: Manufacturer: Dell Computer Corp
[ 15.245472] Bluetooth: Core ver 2.22
[ 15.245475] Bluetooth: Starting self testing
[ 15.257603] Bluetooth: ECDH test passed in 11839 usecs
[ 15.262175] Bluetooth: SMP test passed in 1991 usecs
[ 15.262180] Bluetooth: Finished self testing
[ 15.262197] NET: Registered protocol family 31
[ 15.262198] Bluetooth: HCI device and connection manager initialized
[ 15.262202] Bluetooth: HCI socket layer initialized
[ 15.262204] Bluetooth: L2CAP socket layer initialized
[ 15.262214] Bluetooth: SCO socket layer initialized
[ 15.394626] usbcore: registered new interface driver btusb
|
lsusb shows: Code: | Bus 002 Device 004: ID 0a5c:4500 Broadcom Corp. BCM2046B1 USB 2.0 Hub (part of BCM2046 Bluetooth)
|
and the btusb module reports: Code: | $ modinfo btusb
filename: /lib/modules/4.14.52-gentoo/kernel/drivers/bluetooth/btusb.ko.gz
license: GPL
version: 0.8
description: Generic Bluetooth USB driver ver 0.8
author: Marcel Holtmann <marcel@holtmann.org>
srcversion: 860368EAC1CC57225C89BB8
alias: usb:v8087p0A5Ad*dc*dsc*dp*ic*isc*ip*in*
alias: usb:v0000p0000d*dc*dsc*dp*icFFisc01ip01in*
alias: usb:v0930p*d*dc*dsc*dp*icFFisc01ip01in*
alias: usb:v413Cp*d*dc*dsc*dp*icFFisc01ip01in*
alias: usb:v13D3p*d*dc*dsc*dp*icFFisc01ip01in*
alias: usb:v050Dp*d*dc*dsc*dp*icFFisc01ip01in*
alias: usb:v0B05p*d*dc*dsc*dp*icFFisc01ip01in*
alias: usb:v0A5Cp*d*dc*dsc*dp*icFFisc01ip01in*
alias: usb:v04CAp*d*dc*dsc*dp*icFFisc01ip01in*
alias: usb:v0489p*d*dc*dsc*dp*icFFisc01ip01in*
alias: usb:v0BB4p*d*dc*dsc*dp*icFFisc01ip01in*
alias: usb:v105Bp*d*dc*dsc*dp*icFFisc01ip01in*
alias: usb:v19FFp0239d*dc*dsc*dp*ic*isc*ip*in*
alias: usb:v413Cp8197d*dc*dsc*dp*ic*isc*ip*in*
alias: usb:v0C10p0000d*dc*dsc*dp*ic*isc*ip*in*
alias: usb:v0BDBp1002d*dc*dsc*dp*ic*isc*ip*in*
alias: usb:v044Ep3002d*dc*dsc*dp*ic*isc*ip*in*
alias: usb:v044Ep3001d*dc*dsc*dp*ic*isc*ip*in*
alias: usb:v04BFp030Ad*dc*dsc*dp*ic*isc*ip*in*
alias: usb:v057Cp3800d*dc*dsc*dp*ic*isc*ip*in*
alias: usb:v05ACp8281d*dc*dsc*dp*ic*isc*ip*in*
alias: usb:v05ACp821Ad*dc*dsc*dp*ic*isc*ip*in*
alias: usb:v05ACp821Fd*dc*dsc*dp*ic*isc*ip*in*
alias: usb:v05ACp821Bd*dc*dsc*dp*ic*isc*ip*in*
alias: usb:v05ACp8218d*dc*dsc*dp*ic*isc*ip*in*
alias: usb:v05ACp8215d*dc*dsc*dp*ic*isc*ip*in*
alias: usb:v05ACp8213d*dc*dsc*dp*ic*isc*ip*in*
alias: usb:v0A5Cp21E1d*dc*dsc*dp*ic*isc*ip*in*
alias: usb:v0E8Dp763Fd*dc*dsc*dp*ic*isc*ip*in*
alias: usb:v05ACp*d*dc*dsc*dp*icFFisc01ip01in*
alias: usb:v*p*d*dc*dsc*dp*icE0isc01ip01in*
alias: usb:v*p*d*dcE0dsc01dp04ic*isc*ip*in*
alias: usb:v*p*d*dcE0dsc01dp01ic*isc*ip*in*
alias: of:N*T*Cusb1286,204eC*
alias: of:N*T*Cusb1286,204e
depends: btintel,bluetooth,btbcm
retpoline: Y
intree: Y
name: btusb
vermagic: 4.14.52-gentoo SMP preempt mod_unload
signat: PKCS#7
signer:
sig_key:
sig_hashalgo: md4
parm: disable_scofix:Disable fixup of wrong SCO buffer size (bool)
parm: force_scofix:Force fixup of wrong SCO buffers size (bool)
parm: reset:Send HCI reset command on initialization (bool) |
Please let me know if you need more info. _________________ Regards,
Mick |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
MickKi Veteran
![Veteran Veteran](/images/ranks/rank_rect_5_vet.gif)
Joined: 08 Feb 2004 Posts: 1179
|
Posted: Sat Jul 07, 2018 6:48 pm Post subject: |
|
|
I compared 'lsusb -t' with the 4.9.95 and 4.14.52 kernels and they are identical: Code: | $ lsusb -t
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/3p, 480M
|__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/8p, 480M
|__ Port 2: Dev 3, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
|__ Port 6: Dev 4, If 0, Class=Hub, Driver=hub/3p, 12M
|__ Port 3: Dev 7, If 2, Class=Vendor Specific Class, Driver=, 12M
|__ Port 3: Dev 7, If 0, Class=Wireless, Driver=btusb, 12M
|__ Port 3: Dev 7, If 3, Class=Application Specific Interface, Driver=, 12M
|__ Port 3: Dev 7, If 1, Class=Wireless, Driver=btusb, 12M
|__ Port 1: Dev 5, If 0, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 2: Dev 6, If 0, Class=Human Interface Device, Driver=, 12M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/3p, 480M
|__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/6p, 480M
|__ Port 4: Dev 3, If 0, Class=Video, Driver=uvcvideo, 480M
|__ Port 4: Dev 3, If 1, Class=Video, Driver=uvcvideo, 480M |
I also compared the output of usb-devices and the only difference appears to be on the version of the ehci_hcd driver; e.g.: Code: | T: Bus=02 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=480 MxCh= 3
D: Ver= 2.00 Cls=09(hub ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=1d6b ProdID=0002 Rev=04.14
S: Manufacturer=Linux 4.14.52-gentoo ehci_hcd
S: Product=EHCI Host Controller
S: SerialNumber=0000:00:1d.0
C: #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=0mA
I: If#=0x0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub |
So, could it be the ehci_hcd driver is causing this bind/unbind race condition on my hardware? Is there an easy way to troubleshoot this further? _________________ Regards,
Mick |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
MickKi Veteran
![Veteran Veteran](/images/ranks/rank_rect_5_vet.gif)
Joined: 08 Feb 2004 Posts: 1179
|
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|