diff options
Diffstat (limited to 'drivers/staging/rtl8188eu/core/rtw_efuse.c')
-rw-r--r-- | drivers/staging/rtl8188eu/core/rtw_efuse.c | 62 |
1 files changed, 21 insertions, 41 deletions
diff --git a/drivers/staging/rtl8188eu/core/rtw_efuse.c b/drivers/staging/rtl8188eu/core/rtw_efuse.c index 9bb3ec0cd62f..80673a73c119 100644 --- a/drivers/staging/rtl8188eu/core/rtw_efuse.c +++ b/drivers/staging/rtl8188eu/core/rtw_efuse.c @@ -91,10 +91,8 @@ efuse_phymap_to_logical(u8 *phymap, u16 _offset, u16 _size_byte, u8 *pbuf) tmp = kcalloc(EFUSE_MAX_SECTION_88E, sizeof(void *) + EFUSE_MAX_WORD_UNIT * sizeof(u16), GFP_KERNEL); - if (!tmp) { - DBG_88E("%s: alloc eFuseWord fail!\n", __func__); + if (!tmp) goto eFuseWord_failed; - } for (i = 0; i < EFUSE_MAX_SECTION_88E; i++) tmp[i] = ((char *)(tmp + EFUSE_MAX_SECTION_88E)) + i * EFUSE_MAX_WORD_UNIT * sizeof(u16); eFuseWord = (u16 **)tmp; @@ -113,7 +111,6 @@ efuse_phymap_to_logical(u8 *phymap, u16 _offset, u16 _size_byte, u8 *pbuf) efuse_utilized++; eFuse_Addr++; } else { - DBG_88E("EFUSE is empty efuse_Addr-%d efuse_data =%x\n", eFuse_Addr, rtemp8); goto exit; } @@ -220,8 +217,6 @@ static void efuse_read_phymap_from_txpktbuf( if (bcnhead < 0) /* if not valid */ bcnhead = usb_read8(adapter, REG_TDECTRL + 1); - DBG_88E("%s bcnhead:%d\n", __func__, bcnhead); - usb_write8(adapter, REG_PKT_BUFF_ACCESS_CTRL, TXPKT_BUF_SELECT); dbg_addr = bcnhead * 128 / 8; /* 8-bytes addressing */ @@ -232,31 +227,20 @@ static void efuse_read_phymap_from_txpktbuf( usb_write8(adapter, REG_TXPKTBUF_DBG, 0); start = jiffies; while (!(reg_0x143 = usb_read8(adapter, REG_TXPKTBUF_DBG)) && - jiffies_to_msecs(jiffies - start) < 1000) { - DBG_88E("%s polling reg_0x143:0x%02x, reg_0x106:0x%02x\n", __func__, reg_0x143, usb_read8(adapter, 0x106)); + jiffies_to_msecs(jiffies - start) < 1000) usleep_range(1000, 2000); - } lo32 = usb_read32(adapter, REG_PKTBUF_DBG_DATA_L); hi32 = usb_read32(adapter, REG_PKTBUF_DBG_DATA_H); if (i == 0) { - u8 lenc[2]; - u16 lenbak, aaabak; - u16 aaa; + usb_read8(adapter, REG_PKTBUF_DBG_DATA_L); + usb_read8(adapter, REG_PKTBUF_DBG_DATA_L + 1); - lenc[0] = usb_read8(adapter, REG_PKTBUF_DBG_DATA_L); - lenc[1] = usb_read8(adapter, REG_PKTBUF_DBG_DATA_L + 1); - - aaabak = le16_to_cpup((__le16 *)lenc); - lenbak = le16_to_cpu(*((__le16 *)lenc)); - aaa = le16_to_cpup((__le16 *)&lo32); len = le16_to_cpu(*((__le16 *)&lo32)); limit = min_t(u16, len - 2, limit); - DBG_88E("%s len:%u, lenbak:%u, aaa:%u, aaabak:%u\n", __func__, len, lenbak, aaa, aaabak); - memcpy(pos, ((u8 *)&lo32) + 2, (limit >= count + 2) ? 2 : limit - count); count += (limit >= count + 2) ? 2 : limit - count; pos = content + count; @@ -278,7 +262,6 @@ static void efuse_read_phymap_from_txpktbuf( i++; } usb_write8(adapter, REG_PKT_BUFF_ACCESS_CTRL, DISABLE_TRXPKT_BUF_ACCESS); - DBG_88E("%s read count:%u\n", __func__, count); *size = count; } @@ -298,7 +281,7 @@ static s32 iol_read_efuse(struct adapter *padapter, u8 txpktbuf_bndy, u16 offset return status; } -void efuse_ReadEFuse(struct adapter *Adapter, u8 efuseType, u16 _offset, u16 _size_byte, u8 *pbuf) +static void efuse_ReadEFuse(struct adapter *Adapter, u16 _offset, u16 _size_byte, u8 *pbuf) { if (rtw_iol_applied(Adapter)) { rtw_hal_power_on(Adapter); @@ -432,7 +415,6 @@ int Efuse_PgPacketRead(struct adapter *pAdapter, u8 offset, u8 *data) hoffset = ((tmp_header & 0xE0) >> 5) | ((efuse_data & 0xF0) >> 1); hworden = efuse_data & 0x0F; } else { - DBG_88E("Error, All words disabled\n"); efuse_addr++; continue; } @@ -479,7 +461,7 @@ int Efuse_PgPacketRead(struct adapter *pAdapter, u8 offset, u8 *data) return true; } -static bool hal_EfuseFixHeaderProcess(struct adapter *pAdapter, u8 efuseType, struct pgpkt *pFixPkt, u16 *pAddr) +static bool hal_EfuseFixHeaderProcess(struct adapter *pAdapter, struct pgpkt *pFixPkt, u16 *pAddr) { u8 originaldata[8], badworden = 0; u16 efuse_addr = *pAddr; @@ -508,7 +490,7 @@ static bool hal_EfuseFixHeaderProcess(struct adapter *pAdapter, u8 efuseType, st return true; } -static bool hal_EfusePgPacketWrite2ByteHeader(struct adapter *pAdapter, u8 efuseType, u16 *pAddr, struct pgpkt *pTargetPkt) +static bool hal_EfusePgPacketWrite2ByteHeader(struct adapter *pAdapter, u16 *pAddr, struct pgpkt *pTargetPkt) { bool ret = false; u16 efuse_addr = *pAddr; @@ -559,7 +541,7 @@ static bool hal_EfusePgPacketWrite2ByteHeader(struct adapter *pAdapter, u8 efuse fixPkt.offset = ((pg_header_temp & 0xE0) >> 5) | ((tmp_header & 0xF0) >> 1); fixPkt.word_en = tmp_header & 0x0F; fixPkt.word_cnts = Efuse_CalculateWordCnts(fixPkt.word_en); - if (!hal_EfuseFixHeaderProcess(pAdapter, efuseType, &fixPkt, &efuse_addr)) + if (!hal_EfuseFixHeaderProcess(pAdapter, &fixPkt, &efuse_addr)) return false; } else { ret = true; @@ -575,7 +557,7 @@ static bool hal_EfusePgPacketWrite2ByteHeader(struct adapter *pAdapter, u8 efuse return ret; } -static bool hal_EfusePgPacketWrite1ByteHeader(struct adapter *pAdapter, u8 efuseType, u16 *pAddr, struct pgpkt *pTargetPkt) +static bool hal_EfusePgPacketWrite1ByteHeader(struct adapter *pAdapter, u16 *pAddr, struct pgpkt *pTargetPkt) { bool ret = false; u8 pg_header = 0, tmp_header = 0; @@ -602,7 +584,7 @@ static bool hal_EfusePgPacketWrite1ByteHeader(struct adapter *pAdapter, u8 efuse fixPkt.offset = (tmp_header >> 4) & 0x0F; fixPkt.word_en = tmp_header & 0x0F; fixPkt.word_cnts = Efuse_CalculateWordCnts(fixPkt.word_en); - if (!hal_EfuseFixHeaderProcess(pAdapter, efuseType, &fixPkt, &efuse_addr)) + if (!hal_EfuseFixHeaderProcess(pAdapter, &fixPkt, &efuse_addr)) return false; } @@ -610,7 +592,7 @@ static bool hal_EfusePgPacketWrite1ByteHeader(struct adapter *pAdapter, u8 efuse return ret; } -static bool hal_EfusePgPacketWriteData(struct adapter *pAdapter, u8 efuseType, u16 *pAddr, struct pgpkt *pTargetPkt) +static bool hal_EfusePgPacketWriteData(struct adapter *pAdapter, u16 *pAddr, struct pgpkt *pTargetPkt) { u16 efuse_addr = *pAddr; u8 badworden; @@ -632,16 +614,15 @@ static bool hal_EfusePgPacketWriteData(struct adapter *pAdapter, u8 efuseType, u static bool hal_EfusePgPacketWriteHeader( struct adapter *pAdapter, - u8 efuseType, u16 *pAddr, struct pgpkt *pTargetPkt) { bool ret = false; if (pTargetPkt->offset >= EFUSE_MAX_SECTION_BASE) - ret = hal_EfusePgPacketWrite2ByteHeader(pAdapter, efuseType, pAddr, pTargetPkt); + ret = hal_EfusePgPacketWrite2ByteHeader(pAdapter, pAddr, pTargetPkt); else - ret = hal_EfusePgPacketWrite1ByteHeader(pAdapter, efuseType, pAddr, pTargetPkt); + ret = hal_EfusePgPacketWrite1ByteHeader(pAdapter, pAddr, pTargetPkt); return ret; } @@ -685,7 +666,7 @@ static bool hal_EfuseCheckIfDatafollowed(struct adapter *pAdapter, u8 word_cnts, return ret; } -static bool hal_EfusePartialWriteCheck(struct adapter *pAdapter, u8 efuseType, u16 *pAddr, struct pgpkt *pTargetPkt) +static bool hal_EfusePartialWriteCheck(struct adapter *pAdapter, u16 *pAddr, struct pgpkt *pTargetPkt) { bool ret = false; u8 i, efuse_data = 0, cur_header = 0; @@ -772,20 +753,19 @@ bool Efuse_PgPacketWrite(struct adapter *pAdapter, u8 offset, u8 word_en, u8 *pD { struct pgpkt targetPkt; u16 startAddr = 0; - u8 efuseType = EFUSE_WIFI; if (Efuse_GetCurrentSize(pAdapter) >= EFUSE_MAP_LEN_88E) return false; hal_EfuseConstructPGPkt(offset, word_en, pData, &targetPkt); - if (!hal_EfusePartialWriteCheck(pAdapter, efuseType, &startAddr, &targetPkt)) + if (!hal_EfusePartialWriteCheck(pAdapter, &startAddr, &targetPkt)) return false; - if (!hal_EfusePgPacketWriteHeader(pAdapter, efuseType, &startAddr, &targetPkt)) + if (!hal_EfusePgPacketWriteHeader(pAdapter, &startAddr, &targetPkt)) return false; - if (!hal_EfusePgPacketWriteData(pAdapter, efuseType, &startAddr, &targetPkt)) + if (!hal_EfusePgPacketWriteData(pAdapter, &startAddr, &targetPkt)) return false; return true; @@ -875,22 +855,22 @@ void efuse_WordEnableDataRead(u8 word_en, u8 *sourdata, u8 *targetdata) } /* Read All Efuse content */ -static void Efuse_ReadAllMap(struct adapter *pAdapter, u8 efuseType, u8 *Efuse) +static void Efuse_ReadAllMap(struct adapter *pAdapter, u8 *Efuse) { efuse_power_switch(pAdapter, false, true); - efuse_ReadEFuse(pAdapter, efuseType, 0, EFUSE_MAP_LEN_88E, Efuse); + efuse_ReadEFuse(pAdapter, 0, EFUSE_MAP_LEN_88E, Efuse); efuse_power_switch(pAdapter, false, false); } /* Transfer current EFUSE content to shadow init and modify map. */ -void EFUSE_ShadowMapUpdate(struct adapter *pAdapter, u8 efuseType) +void EFUSE_ShadowMapUpdate(struct adapter *pAdapter) { struct eeprom_priv *pEEPROM = GET_EEPROM_EFUSE_PRIV(pAdapter); if (pEEPROM->bautoload_fail_flag) memset(pEEPROM->efuse_eeprom_data, 0xFF, EFUSE_MAP_LEN_88E); else - Efuse_ReadAllMap(pAdapter, efuseType, pEEPROM->efuse_eeprom_data); + Efuse_ReadAllMap(pAdapter, pEEPROM->efuse_eeprom_data); } |