On Sat, Nov 16, 2019 at 05:24:37PM +0800, Kevin Lo wrote: > Despite our USB issues, there are minor problems with the urtwn(4) for > RTL8188C/RTL8192C: > > - we don't need to enable/disable efuse access protection; it may prevent > incorrect mac address read from efuse. > - disable BB/RF is not needed.
ok stsp@ > Index: sys/dev/ic/rtwn.c > =================================================================== > RCS file: /cvs/src/sys/dev/ic/rtwn.c,v > retrieving revision 1.46 > diff -u -p -u -p -r1.46 rtwn.c > --- sys/dev/ic/rtwn.c 25 Apr 2019 01:52:13 -0000 1.46 > +++ sys/dev/ic/rtwn.c 16 Nov 2019 09:23:07 -0000 > @@ -529,7 +529,9 @@ rtwn_efuse_read(struct rtwn_softc *sc, u > uint32_t reg; > int i, len; > > - rtwn_write_1(sc, R92C_EFUSE_ACCESS, R92C_EFUSE_ACCESS_ON); > + if (!(sc->chip & (RTWN_CHIP_92C | RTWN_CHIP_88C))) > + rtwn_write_1(sc, R92C_EFUSE_ACCESS, R92C_EFUSE_ACCESS_ON); > + > rtwn_efuse_switch_power(sc); > > memset(rom, 0xff, size); > @@ -571,7 +573,8 @@ rtwn_efuse_read(struct rtwn_softc *sc, u > printf("\n"); > } > #endif > - rtwn_write_1(sc, R92C_EFUSE_ACCESS, R92C_EFUSE_ACCESS_OFF); > + if (!(sc->chip & (RTWN_CHIP_92C | RTWN_CHIP_88C))) > + rtwn_write_1(sc, R92C_EFUSE_ACCESS, R92C_EFUSE_ACCESS_OFF); > } > > void > Index: sys/dev/usb/if_urtwn.c > =================================================================== > RCS file: /cvs/src/sys/dev/usb/if_urtwn.c,v > retrieving revision 1.84 > diff -u -p -u -p -r1.84 if_urtwn.c > --- sys/dev/usb/if_urtwn.c 12 Sep 2019 12:55:07 -0000 1.84 > +++ sys/dev/usb/if_urtwn.c 16 Nov 2019 09:23:07 -0000 > @@ -1704,21 +1704,6 @@ urtwn_r92c_power_on(struct urtwn_softc * > urtwn_write_2(sc, R92C_SYS_ISO_CTRL, > urtwn_read_2(sc, R92C_SYS_ISO_CTRL) & ~R92C_SYS_ISO_CTRL_DIOR); > > - /* Initialize MAC. */ > - urtwn_write_1(sc, R92C_APSD_CTRL, > - urtwn_read_1(sc, R92C_APSD_CTRL) & ~R92C_APSD_CTRL_OFF); > - for (ntries = 0; ntries < 200; ntries++) { > - if (!(urtwn_read_1(sc, R92C_APSD_CTRL) & > - R92C_APSD_CTRL_OFF_STATUS)) > - break; > - DELAY(5); > - } > - if (ntries == 200) { > - printf("%s: timeout waiting for MAC initialization\n", > - sc->sc_dev.dv_xname); > - return (ETIMEDOUT); > - } > - > /* Enable MAC DMA/WMAC/SCHEDULE/SEC blocks. */ > reg = urtwn_read_2(sc, R92C_CR); > reg |= R92C_CR_HCI_TXDMA_EN | R92C_CR_HCI_RXDMA_EN | > >