1. 24 Mar, 2023 9 commits
  2. 22 Mar, 2023 29 commits
  3. 20 Mar, 2023 2 commits
    • Bitterblue Smith's avatar
      wifi: rtl8xxxu: Support new chip RTL8710BU aka RTL8188GU · 70664495
      Bitterblue Smith authored
      This chip is found in cheap "free driver" USB adapters from Aliexpress.
      Initially they pretend to be a CD-ROM containing the driver for Windows.
      "Ejecting" switches the device to wifi mode.
      
      Features: 2.4 GHz, b/g/n mode, 1T1R, 150 Mbps.
      
      This chip is more unique than other Realtek chips:
      
      * The registers at addresses 0x0-0xff, which all the other chips use,
        can't be used here. New registers at 0x8000-0x80ff must be used
        instead. And it's not a simple matter of adding 0x8000: 0x2
        (REG_SYS_FUNC) became 0x8004, 0x80 (REG_MCU_FW_DL) became 0x8090,
        etc.
      
      * Also there are a few new registers which must be accessed indirectly
        because their addresses don't fit in 16 bits. No other chips seem to
        have these.
      
      * The vendor driver compiles to 8188gu.ko, but the code calls the chip
        RTL8710B(U) pretty much everywhere, including messages visible to the
        user.
      
      Another difference compared to the other chips supported by rtl8xxxu is
      that it has a new PHY status struct, or three of them actually, from
      which we extract the RSSI, among other things. This is not unique,
      though, just new. The chips supported by rtw88 also use it.
      Signed-off-by: default avatarBitterblue Smith <rtl8821cerfe2@gmail.com>
      Reviewed-by: default avatarPing-Ke Shih <pkshih@realtek.com>
      Tested-by: Philipp Hortmann <philipp.g.hortmann@gmail.com> # Edimax N150
      Signed-off-by: default avatarKalle Valo <kvalo@kernel.org>
      Link: https://lore.kernel.org/r/4edbe29f-00b9-8eef-9789-20bed0b141e2@gmail.com
      70664495
    • Bitterblue Smith's avatar
      wifi: rtl8xxxu: RTL8192EU always needs full init · d46e04cc
      Bitterblue Smith authored
      Always run the entire init sequence (rtl8xxxu_init_device()) for
      RTL8192EU. It's what the vendor driver does too.
      
      This fixes a bug where the device is unable to connect after
      rebooting:
      
      wlp3s0f3u2: send auth to ... (try 1/3)
      wlp3s0f3u2: send auth to ... (try 2/3)
      wlp3s0f3u2: send auth to ... (try 3/3)
      wlp3s0f3u2: authentication with ... timed out
      
      Rebooting leaves the device powered on (partially? at least the
      firmware is still running), but not really in a working state.
      
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarBitterblue Smith <rtl8821cerfe2@gmail.com>
      Acked-by: default avatarJes Sorensen <jes@trained-monkey.org>
      Signed-off-by: default avatarKalle Valo <kvalo@kernel.org>
      Link: https://lore.kernel.org/r/4eb111a9-d4c4-37d0-b376-4e202de7153c@gmail.com
      d46e04cc