Page MenuHomeFreeBSD

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

Authored by adrian on Sat, Jan 11, 3:02 PM.

Details

Reviewers
cy
Group Reviewers
wireless
Summary

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.

Obtained from: Linux rtl8xxxu driver

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 61673
Build 58557: arc lint + arc unit

Event Timeline

adrian added a reviewer: cy.

cy - this likely won't change the rtl8192eu power / channel sequencing stuff (i'm working on that now, stay tuned) but it DOES make it so we can start/stop/start/stop/start wpa_supplicant and have the NIC survive it without crashing. Would you mind verifying that? Thanks!