bool rtl92cu_phy_bb_config( struct ieee80211_hw *hw ) { bool rtstatus = true; struct rtl_priv *rtlpriv = rtl_priv( hw ); struct rtl_hal *rtlhal = rtl_hal( rtl_priv( hw ) ); u16 regval; u32 regval32; u8 b_reg_hwparafile = 1; _rtl92c_phy_init_bb_rf_register_definition( hw ); regval = rtl_read_word( rtlpriv, REG_SYS_FUNC_EN ); rtl_write_word( rtlpriv, REG_SYS_FUNC_EN, regval | BIT( 13 ) | BIT( 0 ) | BIT( 1 ) ); rtl_write_byte( rtlpriv, REG_AFE_PLL_CTRL, 0x83 ); rtl_write_byte( rtlpriv, REG_AFE_PLL_CTRL + 1, 0xdb ); rtl_write_byte( rtlpriv, REG_RF_CTRL, RF_EN | RF_RSTB | RF_SDMRSTB ); if ( IS_HARDWARE_TYPE_8192CE( rtlhal ) ) { rtl_write_byte( rtlpriv, REG_SYS_FUNC_EN, FEN_PPLL | FEN_PCIEA | FEN_DIO_PCIE | FEN_BB_GLB_RSTn | FEN_BBRSTB ); } else if ( IS_HARDWARE_TYPE_8192CU( rtlhal ) ) { rtl_write_byte( rtlpriv, REG_SYS_FUNC_EN, FEN_USBA | FEN_USBD | FEN_BB_GLB_RSTn | FEN_BBRSTB ); } regval32 = rtl_read_dword( rtlpriv, 0x87c ); rtl_write_dword( rtlpriv, 0x87c, regval32 & ( ~BIT( 31 ) ) ); if ( IS_HARDWARE_TYPE_8192CU( rtlhal ) ) rtl_write_byte( rtlpriv, REG_LDOHCI12_CTRL, 0x0f ); rtl_write_byte( rtlpriv, REG_AFE_XTAL_CTRL + 1, 0x80 ); if ( b_reg_hwparafile == 1 ) rtstatus = _rtl92c_phy_bb8192c_config_parafile( hw ); return rtstatus; }
bool rtl92cu_phy_mac_config( struct ieee80211_hw *hw ) { bool rtstatus; struct rtl_priv *rtlpriv = rtl_priv( hw ); struct rtl_hal *rtlhal = rtl_hal( rtl_priv( hw ) ); bool is92c = IS_92C_SERIAL( rtlhal->version ); rtstatus = _rtl92cu_phy_config_mac_with_headerfile( hw ); if ( is92c && IS_HARDWARE_TYPE_8192CE( rtlhal ) ) rtl_write_byte( rtlpriv, 0x14, 0x71 ); return rtstatus; }
void rtl92c_enable_interrupt(struct ieee80211_hw *hw) { struct rtl_priv *rtlpriv = rtl_priv(hw); struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw)); struct rtl_usb *rtlusb = rtl_usbdev(rtl_usbpriv(hw)); if (IS_HARDWARE_TYPE_8192CE(rtlhal)) { rtl_write_dword(rtlpriv, REG_HIMR, rtlpci->irq_mask[0] & 0xFFFFFFFF); rtl_write_dword(rtlpriv, REG_HIMRE, rtlpci->irq_mask[1] & 0xFFFFFFFF); } else { rtl_write_dword(rtlpriv, REG_HIMR, rtlusb->irq_mask[0] & 0xFFFFFFFF); rtl_write_dword(rtlpriv, REG_HIMRE, rtlusb->irq_mask[1] & 0xFFFFFFFF); } }