HomeFreeBSD

rtwn: fix RTL8192EU power-down / power-up hanging

Description

rtwn: fix RTL8192EU power-down / power-up hanging

The RTL8192EU NIC (on older USB 2/USB 3 ports, not on newer
USB 3 ports, that still needs to be fixed!) will attach, scan,
associate fine. However, restarting wpa_supplicant results in the
NIC hanging until you disconnect it.

It turns out early in the power_on sequence - BUT only after a
power_off - the NIC would suddenly stop responding to any USB
transfers. It doesn't require the MCU to be available for USB
transfers - the hardware itself does that - so something had to be
going very sideways.

I traced it down to these steps during the power_off sequence.
They don't exist in the Linux rtl8xxxu driver, and there are commits
earlier in their RTL8192EU bring-up that suggest the author was
facing similar power sequencing / re-sequencing issues.

This likely won't fix the actual channel programming /
power sequencing / deafness issues on later USB-3 ports.
There are other commits / fixes in the rtl8xxxu driver related to
RTL8192EU bring-up that we don't have.

Differential Revision: https://reviews.freebsd.org/D48428
Obtained from: Linux rtl8xxxu driver

Details

Provenance
adrianAuthored on Sat, Jan 11, 2:55 PM
Differential Revision
D48428: rtwn: fix RTL8192EU power-down / power-up hanging
Parents
rG1e734f15c709: dtrace: Build systrace_freebsd32 only if COMPAT_FREEBSD32 is configured
Branches
Unknown
Tags
Unknown