diff options
author | André Fabian Silva Delgado <emulatorman@parabola.nu> | 2016-06-10 05:30:17 -0300 |
---|---|---|
committer | André Fabian Silva Delgado <emulatorman@parabola.nu> | 2016-06-10 05:30:17 -0300 |
commit | d635711daa98be86d4c7fd01499c34f566b54ccb (patch) | |
tree | aa5cc3760a27c3d57146498cb82fa549547de06c /drivers/staging/rtl8188eu/hal | |
parent | c91265cd0efb83778f015b4d4b1129bd2cfd075e (diff) |
Linux-libre 4.6.2-gnu
Diffstat (limited to 'drivers/staging/rtl8188eu/hal')
-rw-r--r-- | drivers/staging/rtl8188eu/hal/bb_cfg.c | 26 | ||||
-rw-r--r-- | drivers/staging/rtl8188eu/hal/fw.c | 50 | ||||
-rw-r--r-- | drivers/staging/rtl8188eu/hal/odm.c | 4 | ||||
-rw-r--r-- | drivers/staging/rtl8188eu/hal/phy.c | 26 | ||||
-rw-r--r-- | drivers/staging/rtl8188eu/hal/pwrseqcmd.c | 15 | ||||
-rw-r--r-- | drivers/staging/rtl8188eu/hal/rtl8188e_dm.c | 4 | ||||
-rw-r--r-- | drivers/staging/rtl8188eu/hal/rtl8188eu_xmit.c | 4 | ||||
-rw-r--r-- | drivers/staging/rtl8188eu/hal/usb_halinit.c | 3 |
8 files changed, 31 insertions, 101 deletions
diff --git a/drivers/staging/rtl8188eu/hal/bb_cfg.c b/drivers/staging/rtl8188eu/hal/bb_cfg.c index f58a8222c..c2ad6a3b9 100644 --- a/drivers/staging/rtl8188eu/hal/bb_cfg.c +++ b/drivers/staging/rtl8188eu/hal/bb_cfg.c @@ -598,18 +598,12 @@ static void rtl88e_phy_init_bb_rf_register_definition(struct adapter *adapter) reg[RF_PATH_A] = &hal_data->PHYRegDef[RF_PATH_A]; reg[RF_PATH_B] = &hal_data->PHYRegDef[RF_PATH_B]; - reg[RF_PATH_C] = &hal_data->PHYRegDef[RF_PATH_C]; - reg[RF_PATH_D] = &hal_data->PHYRegDef[RF_PATH_D]; reg[RF_PATH_A]->rfintfs = rFPGA0_XAB_RFInterfaceSW; reg[RF_PATH_B]->rfintfs = rFPGA0_XAB_RFInterfaceSW; - reg[RF_PATH_C]->rfintfs = rFPGA0_XCD_RFInterfaceSW; - reg[RF_PATH_D]->rfintfs = rFPGA0_XCD_RFInterfaceSW; reg[RF_PATH_A]->rfintfi = rFPGA0_XAB_RFInterfaceRB; reg[RF_PATH_B]->rfintfi = rFPGA0_XAB_RFInterfaceRB; - reg[RF_PATH_C]->rfintfi = rFPGA0_XCD_RFInterfaceRB; - reg[RF_PATH_D]->rfintfi = rFPGA0_XCD_RFInterfaceRB; reg[RF_PATH_A]->rfintfo = rFPGA0_XA_RFInterfaceOE; reg[RF_PATH_B]->rfintfo = rFPGA0_XB_RFInterfaceOE; @@ -622,13 +616,9 @@ static void rtl88e_phy_init_bb_rf_register_definition(struct adapter *adapter) reg[RF_PATH_A]->rfLSSI_Select = rFPGA0_XAB_RFParameter; reg[RF_PATH_B]->rfLSSI_Select = rFPGA0_XAB_RFParameter; - reg[RF_PATH_C]->rfLSSI_Select = rFPGA0_XCD_RFParameter; - reg[RF_PATH_D]->rfLSSI_Select = rFPGA0_XCD_RFParameter; reg[RF_PATH_A]->rfTxGainStage = rFPGA0_TxGainStage; reg[RF_PATH_B]->rfTxGainStage = rFPGA0_TxGainStage; - reg[RF_PATH_C]->rfTxGainStage = rFPGA0_TxGainStage; - reg[RF_PATH_D]->rfTxGainStage = rFPGA0_TxGainStage; reg[RF_PATH_A]->rfHSSIPara1 = rFPGA0_XA_HSSIParameter1; reg[RF_PATH_B]->rfHSSIPara1 = rFPGA0_XB_HSSIParameter1; @@ -638,43 +628,27 @@ static void rtl88e_phy_init_bb_rf_register_definition(struct adapter *adapter) reg[RF_PATH_A]->rfSwitchControl = rFPGA0_XAB_SwitchControl; reg[RF_PATH_B]->rfSwitchControl = rFPGA0_XAB_SwitchControl; - reg[RF_PATH_C]->rfSwitchControl = rFPGA0_XCD_SwitchControl; - reg[RF_PATH_D]->rfSwitchControl = rFPGA0_XCD_SwitchControl; reg[RF_PATH_A]->rfAGCControl1 = rOFDM0_XAAGCCore1; reg[RF_PATH_B]->rfAGCControl1 = rOFDM0_XBAGCCore1; - reg[RF_PATH_C]->rfAGCControl1 = rOFDM0_XCAGCCore1; - reg[RF_PATH_D]->rfAGCControl1 = rOFDM0_XDAGCCore1; reg[RF_PATH_A]->rfAGCControl2 = rOFDM0_XAAGCCore2; reg[RF_PATH_B]->rfAGCControl2 = rOFDM0_XBAGCCore2; - reg[RF_PATH_C]->rfAGCControl2 = rOFDM0_XCAGCCore2; - reg[RF_PATH_D]->rfAGCControl2 = rOFDM0_XDAGCCore2; reg[RF_PATH_A]->rfRxIQImbalance = rOFDM0_XARxIQImbalance; reg[RF_PATH_B]->rfRxIQImbalance = rOFDM0_XBRxIQImbalance; - reg[RF_PATH_C]->rfRxIQImbalance = rOFDM0_XCRxIQImbalance; - reg[RF_PATH_D]->rfRxIQImbalance = rOFDM0_XDRxIQImbalance; reg[RF_PATH_A]->rfRxAFE = rOFDM0_XARxAFE; reg[RF_PATH_B]->rfRxAFE = rOFDM0_XBRxAFE; - reg[RF_PATH_C]->rfRxAFE = rOFDM0_XCRxAFE; - reg[RF_PATH_D]->rfRxAFE = rOFDM0_XDRxAFE; reg[RF_PATH_A]->rfTxIQImbalance = rOFDM0_XATxIQImbalance; reg[RF_PATH_B]->rfTxIQImbalance = rOFDM0_XBTxIQImbalance; - reg[RF_PATH_C]->rfTxIQImbalance = rOFDM0_XCTxIQImbalance; - reg[RF_PATH_D]->rfTxIQImbalance = rOFDM0_XDTxIQImbalance; reg[RF_PATH_A]->rfTxAFE = rOFDM0_XATxAFE; reg[RF_PATH_B]->rfTxAFE = rOFDM0_XBTxAFE; - reg[RF_PATH_C]->rfTxAFE = rOFDM0_XCTxAFE; - reg[RF_PATH_D]->rfTxAFE = rOFDM0_XDTxAFE; reg[RF_PATH_A]->rfLSSIReadBack = rFPGA0_XA_LSSIReadBack; reg[RF_PATH_B]->rfLSSIReadBack = rFPGA0_XB_LSSIReadBack; - reg[RF_PATH_C]->rfLSSIReadBack = rFPGA0_XC_LSSIReadBack; - reg[RF_PATH_D]->rfLSSIReadBack = rFPGA0_XD_LSSIReadBack; reg[RF_PATH_A]->rfLSSIReadBackPi = TransceiverA_HSPI_Readback; reg[RF_PATH_B]->rfLSSIReadBackPi = TransceiverB_HSPI_Readback; diff --git a/drivers/staging/rtl8188eu/hal/fw.c b/drivers/staging/rtl8188eu/hal/fw.c index 5163bf8d9..8e904bd8e 100644 --- a/drivers/staging/rtl8188eu/hal/fw.c +++ b/drivers/staging/rtl8188eu/hal/fw.c @@ -75,16 +75,6 @@ static void _rtl88e_fw_block_write(struct adapter *adapt, usb_write8(adapt, write_address, byte_buffer[i]); } -static void _rtl88e_fill_dummy(u8 *pfwbuf, u32 *pfwlen) -{ - u32 i; - - for (i = *pfwlen; i < roundup(*pfwlen, 4); i++) - pfwbuf[i] = 0; - - *pfwlen = i; -} - static void _rtl88e_fw_page_write(struct adapter *adapt, u32 page, const u8 *buffer, u32 size) { @@ -103,8 +93,6 @@ static void _rtl88e_write_fw(struct adapter *adapt, u8 *buffer, u32 size) u32 page_no, remain; u32 page, offset; - _rtl88e_fill_dummy(buf_ptr, &size); - page_no = size / FW_8192C_PAGE_SIZE; remain = size % FW_8192C_PAGE_SIZE; @@ -170,14 +158,14 @@ exit: int rtl88eu_download_fw(struct adapter *adapt) { - struct hal_data_8188e *rtlhal = GET_HAL_DATA(adapt); struct dvobj_priv *dvobj = adapter_to_dvobj(adapt); struct device *device = dvobj_to_dev(dvobj); const struct firmware *fw; const char fw_name[] = "/*(DEBLOBBED)*/"; struct rtl92c_firmware_header *pfwheader = NULL; - u8 *pfwdata; - u32 fwsize; + u8 *download_data, *fw_data; + size_t download_size; + unsigned int trailing_zeros_length; if (reject_firmware(&fw, fw_name, device)) { dev_err(device, "Firmware %s not available\n", fw_name); @@ -186,35 +174,43 @@ int rtl88eu_download_fw(struct adapter *adapt) if (fw->size > FW_8188E_SIZE) { dev_err(device, "Firmware size exceed 0x%X. Check it.\n", - FW_8188E_SIZE); + FW_8188E_SIZE); + release_firmware(fw); return -1; } - pfwdata = kzalloc(FW_8188E_SIZE, GFP_KERNEL); - if (!pfwdata) + trailing_zeros_length = (4 - fw->size % 4) % 4; + + fw_data = kmalloc(fw->size + trailing_zeros_length, GFP_KERNEL); + if (!fw_data) { + release_firmware(fw); return -ENOMEM; + } - rtlhal->pfirmware = pfwdata; - memcpy(rtlhal->pfirmware, fw->data, fw->size); - rtlhal->fwsize = fw->size; - release_firmware(fw); + memcpy(fw_data, fw->data, fw->size); + memset(fw_data + fw->size, 0, trailing_zeros_length); - fwsize = rtlhal->fwsize; - pfwheader = (struct rtl92c_firmware_header *)pfwdata; + pfwheader = (struct rtl92c_firmware_header *)fw_data; if (IS_FW_HEADER_EXIST(pfwheader)) { - pfwdata = pfwdata + 32; - fwsize = fwsize - 32; + download_data = fw_data + 32; + download_size = fw->size + trailing_zeros_length - 32; + } else { + download_data = fw_data; + download_size = fw->size + trailing_zeros_length; } + release_firmware(fw); + if (usb_read8(adapt, REG_MCUFWDL) & RAM_DL_SEL) { usb_write8(adapt, REG_MCUFWDL, 0); rtl88e_firmware_selfreset(adapt); } _rtl88e_enable_fw_download(adapt, true); usb_write8(adapt, REG_MCUFWDL, usb_read8(adapt, REG_MCUFWDL) | FWDL_ChkSum_rpt); - _rtl88e_write_fw(adapt, pfwdata, fwsize); + _rtl88e_write_fw(adapt, download_data, download_size); _rtl88e_enable_fw_download(adapt, false); + kfree(fw_data); return _rtl88e_fw_free_to_go(adapt); } diff --git a/drivers/staging/rtl8188eu/hal/odm.c b/drivers/staging/rtl8188eu/hal/odm.c index 2c25d3b02..8d2316b9e 100644 --- a/drivers/staging/rtl8188eu/hal/odm.c +++ b/drivers/staging/rtl8188eu/hal/odm.c @@ -255,9 +255,6 @@ void ODM_CmnInfoInit(struct odm_dm_struct *pDM_Odm, enum odm_common_info_def Cmn case ODM_CMNINFO_CUT_VER: pDM_Odm->CutVersion = (u8)Value; break; - case ODM_CMNINFO_FAB_VER: - pDM_Odm->FabVersion = (u8)Value; - break; case ODM_CMNINFO_RF_TYPE: pDM_Odm->RFType = (u8)Value; break; @@ -477,7 +474,6 @@ void odm_CmnInfoInit_Debug(struct odm_dm_struct *pDM_Odm) ODM_RT_TRACE(pDM_Odm, ODM_COMP_COMMON, ODM_DBG_LOUD, ("SupportInterface=%d\n", pDM_Odm->SupportInterface)); ODM_RT_TRACE(pDM_Odm, ODM_COMP_COMMON, ODM_DBG_LOUD, ("SupportICType=0x%x\n", pDM_Odm->SupportICType)); ODM_RT_TRACE(pDM_Odm, ODM_COMP_COMMON, ODM_DBG_LOUD, ("CutVersion=%d\n", pDM_Odm->CutVersion)); - ODM_RT_TRACE(pDM_Odm, ODM_COMP_COMMON, ODM_DBG_LOUD, ("FabVersion=%d\n", pDM_Odm->FabVersion)); ODM_RT_TRACE(pDM_Odm, ODM_COMP_COMMON, ODM_DBG_LOUD, ("RFType=%d\n", pDM_Odm->RFType)); ODM_RT_TRACE(pDM_Odm, ODM_COMP_COMMON, ODM_DBG_LOUD, ("BoardType=%d\n", pDM_Odm->BoardType)); ODM_RT_TRACE(pDM_Odm, ODM_COMP_COMMON, ODM_DBG_LOUD, ("ExtLNA=%d\n", pDM_Odm->ExtLNA)); diff --git a/drivers/staging/rtl8188eu/hal/phy.c b/drivers/staging/rtl8188eu/hal/phy.c index d3e8a8ea1..ae42b4492 100644 --- a/drivers/staging/rtl8188eu/hal/phy.c +++ b/drivers/staging/rtl8188eu/hal/phy.c @@ -180,32 +180,6 @@ static void get_tx_power_index(struct adapter *adapt, u8 channel, u8 *cck_pwr, hal_data->BW20_24G_Diff[TxCount][RF_PATH_A]+ hal_data->BW20_24G_Diff[TxCount][index]; bw40_pwr[TxCount] = hal_data->Index24G_BW40_Base[TxCount][index]; - } else if (TxCount == RF_PATH_C) { - cck_pwr[TxCount] = hal_data->Index24G_CCK_Base[TxCount][index]; - ofdm_pwr[TxCount] = hal_data->Index24G_BW40_Base[RF_PATH_A][index]+ - hal_data->BW20_24G_Diff[RF_PATH_A][index]+ - hal_data->BW20_24G_Diff[RF_PATH_B][index]+ - hal_data->BW20_24G_Diff[TxCount][index]; - - bw20_pwr[TxCount] = hal_data->Index24G_BW40_Base[RF_PATH_A][index]+ - hal_data->BW20_24G_Diff[RF_PATH_A][index]+ - hal_data->BW20_24G_Diff[RF_PATH_B][index]+ - hal_data->BW20_24G_Diff[TxCount][index]; - bw40_pwr[TxCount] = hal_data->Index24G_BW40_Base[TxCount][index]; - } else if (TxCount == RF_PATH_D) { - cck_pwr[TxCount] = hal_data->Index24G_CCK_Base[TxCount][index]; - ofdm_pwr[TxCount] = hal_data->Index24G_BW40_Base[RF_PATH_A][index]+ - hal_data->BW20_24G_Diff[RF_PATH_A][index]+ - hal_data->BW20_24G_Diff[RF_PATH_B][index]+ - hal_data->BW20_24G_Diff[RF_PATH_C][index]+ - hal_data->BW20_24G_Diff[TxCount][index]; - - bw20_pwr[TxCount] = hal_data->Index24G_BW40_Base[RF_PATH_A][index]+ - hal_data->BW20_24G_Diff[RF_PATH_A][index]+ - hal_data->BW20_24G_Diff[RF_PATH_B][index]+ - hal_data->BW20_24G_Diff[RF_PATH_C][index]+ - hal_data->BW20_24G_Diff[TxCount][index]; - bw40_pwr[TxCount] = hal_data->Index24G_BW40_Base[TxCount][index]; } } } diff --git a/drivers/staging/rtl8188eu/hal/pwrseqcmd.c b/drivers/staging/rtl8188eu/hal/pwrseqcmd.c index 3e60b2381..b76b0f5d6 100644 --- a/drivers/staging/rtl8188eu/hal/pwrseqcmd.c +++ b/drivers/staging/rtl8188eu/hal/pwrseqcmd.c @@ -23,8 +23,8 @@ /* This routine deals with the Power Configuration CMDs parsing * for RTL8723/RTL8188E Series IC. */ -u8 rtl88eu_pwrseqcmdparsing(struct adapter *padapter, u8 cut_vers, u8 fab_vers, - u8 ifacetype, struct wl_pwr_cfg pwrseqcmd[]) +u8 rtl88eu_pwrseqcmdparsing(struct adapter *padapter, u8 cut_vers, + struct wl_pwr_cfg pwrseqcmd[]) { struct wl_pwr_cfg pwrcfgcmd = {0}; u8 poll_bit = false; @@ -39,21 +39,16 @@ u8 rtl88eu_pwrseqcmdparsing(struct adapter *padapter, u8 cut_vers, u8 fab_vers, RT_TRACE(_module_hal_init_c_, _drv_info_, ("rtl88eu_pwrseqcmdparsing: offset(%#x) cut_msk(%#x)" - "fab_msk(%#x) interface_msk(%#x) base(%#x) cmd(%#x)" + " cmd(%#x)" "msk(%#x) value(%#x)\n", GET_PWR_CFG_OFFSET(pwrcfgcmd), GET_PWR_CFG_CUT_MASK(pwrcfgcmd), - GET_PWR_CFG_FAB_MASK(pwrcfgcmd), - GET_PWR_CFG_INTF_MASK(pwrcfgcmd), - GET_PWR_CFG_BASE(pwrcfgcmd), GET_PWR_CFG_CMD(pwrcfgcmd), GET_PWR_CFG_MASK(pwrcfgcmd), GET_PWR_CFG_VALUE(pwrcfgcmd))); - /* Only Handle the command whose FAB, CUT, and Interface are matched */ - if ((GET_PWR_CFG_FAB_MASK(pwrcfgcmd) & fab_vers) && - (GET_PWR_CFG_CUT_MASK(pwrcfgcmd) & cut_vers) && - (GET_PWR_CFG_INTF_MASK(pwrcfgcmd) & ifacetype)) { + /* Only Handle the command whose CUT is matched */ + if (GET_PWR_CFG_CUT_MASK(pwrcfgcmd) & cut_vers) { switch (GET_PWR_CFG_CMD(pwrcfgcmd)) { case PWR_CMD_READ: RT_TRACE(_module_hal_init_c_, _drv_info_, diff --git a/drivers/staging/rtl8188eu/hal/rtl8188e_dm.c b/drivers/staging/rtl8188eu/hal/rtl8188e_dm.c index 199a77acd..f9919a94a 100644 --- a/drivers/staging/rtl8188eu/hal/rtl8188e_dm.c +++ b/drivers/staging/rtl8188eu/hal/rtl8188e_dm.c @@ -50,7 +50,7 @@ static void Init_ODM_ComInfo_88E(struct adapter *Adapter) struct hal_data_8188e *hal_data = GET_HAL_DATA(Adapter); struct dm_priv *pdmpriv = &hal_data->dmpriv; struct odm_dm_struct *dm_odm = &(hal_data->odmpriv); - u8 cut_ver, fab_ver; + u8 cut_ver; /* Init Value */ memset(dm_odm, 0, sizeof(*dm_odm)); @@ -61,10 +61,8 @@ static void Init_ODM_ComInfo_88E(struct adapter *Adapter) ODM_CmnInfoInit(dm_odm, ODM_CMNINFO_IC_TYPE, ODM_RTL8188E); - fab_ver = ODM_TSMC; cut_ver = ODM_CUT_A; - ODM_CmnInfoInit(dm_odm, ODM_CMNINFO_FAB_VER, fab_ver); ODM_CmnInfoInit(dm_odm, ODM_CMNINFO_CUT_VER, cut_ver); ODM_CmnInfoInit(dm_odm, ODM_CMNINFO_MP_TEST_CHIP, hal_data->VersionID.ChipType == NORMAL_CHIP ? true : false); diff --git a/drivers/staging/rtl8188eu/hal/rtl8188eu_xmit.c b/drivers/staging/rtl8188eu/hal/rtl8188eu_xmit.c index e04303ce8..c96d80487 100644 --- a/drivers/staging/rtl8188eu/hal/rtl8188eu_xmit.c +++ b/drivers/staging/rtl8188eu/hal/rtl8188eu_xmit.c @@ -415,7 +415,7 @@ static u32 xmitframe_need_length(struct xmit_frame *pxmitframe) { struct pkt_attrib *pattrib = &pxmitframe->attrib; - u32 len = 0; + u32 len; /* no consider fragement */ len = pattrib->hdrlen + pattrib->iv_len + @@ -614,7 +614,7 @@ s32 rtl8188eu_xmitframe_complete(struct adapter *adapt, struct xmit_priv *pxmitp static s32 xmitframe_direct(struct adapter *adapt, struct xmit_frame *pxmitframe) { - s32 res = _SUCCESS; + s32 res; res = rtw_xmitframe_coalesce(adapt, pxmitframe->pkt, pxmitframe); if (res == _SUCCESS) diff --git a/drivers/staging/rtl8188eu/hal/usb_halinit.c b/drivers/staging/rtl8188eu/hal/usb_halinit.c index 5789e1e23..07a61b827 100644 --- a/drivers/staging/rtl8188eu/hal/usb_halinit.c +++ b/drivers/staging/rtl8188eu/hal/usb_halinit.c @@ -108,7 +108,6 @@ static u32 rtl8188eu_InitPowerOn(struct adapter *adapt) return _SUCCESS; if (!rtl88eu_pwrseqcmdparsing(adapt, PWR_CUT_ALL_MSK, - PWR_FAB_ALL_MSK, PWR_INTF_USB_MSK, Rtl8188E_NIC_PWR_ON_FLOW)) { DBG_88E(KERN_ERR "%s: run power on flow fail\n", __func__); return _FAIL; @@ -926,7 +925,6 @@ static void CardDisableRTL8188EU(struct adapter *Adapter) /* Run LPS WL RFOFF flow */ rtl88eu_pwrseqcmdparsing(Adapter, PWR_CUT_ALL_MSK, - PWR_FAB_ALL_MSK, PWR_INTF_USB_MSK, Rtl8188E_NIC_LPS_ENTER_FLOW); /* 2. 0x1F[7:0] = 0 turn off RF */ @@ -949,7 +947,6 @@ static void CardDisableRTL8188EU(struct adapter *Adapter) /* Card disable power action flow */ rtl88eu_pwrseqcmdparsing(Adapter, PWR_CUT_ALL_MSK, - PWR_FAB_ALL_MSK, PWR_INTF_USB_MSK, Rtl8188E_NIC_DISABLE_FLOW); /* Reset MCU IO Wrapper */ |