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 |
> 
> 

Reply via email to