1
0
mirror of https://github.com/aircrack-ng/rtl8812au.git synced 2024-11-05 02:55:44 +00:00

fix USB3 modeswitch

This commit is contained in:
evilphish 2017-10-21 01:07:45 +02:00
parent 67a7e60ed5
commit 795489ce9f

View File

@ -658,14 +658,32 @@ static int usb_reprobe_switch_usb_mode(PADAPTER Adapter)
u8 ret = _FALSE;
/* efuse not allow driver to switch usb mode */
//if (pHalData->EEPROMUsbSwitch == _FALSE)
// goto exit;
if (pHalData->EEPROMUsbSwitch == _FALSE)
goto exit;
/* registry not allow driver to switch usb mode */
if (registry_par->switch_usb_mode == 0)
goto exit;
#if defined(CONFIG_RTL8812A) || defined(CONFIG_RTL8821A) || defined(CONFIG_RTL8814A)
if (IS_HIGH_SPEED_USB(Adapter)) {
if ((rtw_read8(Adapter, 0x74) & (BIT(2)|BIT(3))) != BIT(3)) {
rtw_write8(Adapter, 0x74, 0x8);
rtw_write8(Adapter, 0x70, 0x2);
rtw_write8(Adapter, 0x3e, 0x1);
rtw_write8(Adapter, 0x3d, 0x3);
/* usb disconnect */
rtw_write8(Adapter, 0x5, 0x80);
ret = _TRUE;
}
} else if (IS_SUPER_SPEED_USB(Adapter)) {
rtw_write8(Adapter, 0x70, rtw_read8(Adapter, 0x70) & (~BIT(1)));
rtw_write8(Adapter, 0x3e, rtw_read8(Adapter, 0x3e) & (~BIT(0)));
}
#else
rtw_hal_set_hwreg(Adapter, HW_VAR_USB_MODE, &ret);
#endif
exit:
return ret;