mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-04 08:16:47 +07:00
ath9k: Fix issue with parsing malformed CFP IE
All QCA chips have the ability to parse the CF Parameter Set IE in beacons. If the IE is malformed in the beacons from some APs [1], the HW locks up. In AP mode, a beacon stuck would happen and in client mode, a disconnection usually is the result. To fix this issue, set the AR_PCU_MISC_MODE2_CFP_IGNORE to ignore the CFP IE in beacons - this is applicable for all chips. For AP mode, if this issue happens, the NAV is also corrupted and has to be reset - this will be done in a subsequent patch. [1] : http://msujith.org/ath9k/cfp/Malformed-CF-Param.png Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
c694545568
commit
9ef4893234
@ -626,6 +626,8 @@ static void ar5008_hw_override_ini(struct ath_hw *ah,
|
||||
if (AR_SREV_9287_11_OR_LATER(ah))
|
||||
val = val & (~AR_PCU_MISC_MODE2_HWWAR2);
|
||||
|
||||
val |= AR_PCU_MISC_MODE2_CFP_IGNORE;
|
||||
|
||||
REG_WRITE(ah, AR_PCU_MISC_MODE2, val);
|
||||
}
|
||||
|
||||
|
@ -627,8 +627,10 @@ static void ar9003_hw_override_ini(struct ath_hw *ah)
|
||||
* MAC addr only will fail.
|
||||
*/
|
||||
val = REG_READ(ah, AR_PCU_MISC_MODE2) & (~AR_ADHOC_MCAST_KEYID_ENABLE);
|
||||
REG_WRITE(ah, AR_PCU_MISC_MODE2,
|
||||
val | AR_AGG_WEP_ENABLE_FIX | AR_AGG_WEP_ENABLE);
|
||||
val |= AR_AGG_WEP_ENABLE_FIX |
|
||||
AR_AGG_WEP_ENABLE |
|
||||
AR_PCU_MISC_MODE2_CFP_IGNORE;
|
||||
REG_WRITE(ah, AR_PCU_MISC_MODE2, val);
|
||||
|
||||
REG_SET_BIT(ah, AR_PHY_CCK_DETECT,
|
||||
AR_PHY_CCK_DETECT_BB_ENABLE_ANT_FAST_DIV);
|
||||
|
Loading…
Reference in New Issue
Block a user