ath10k: Add phyerr event changes for HL1.0
HL1.0 firmware sends phyerr_mask in the phyerr event, which needs to be used to determine the type of phyerr. Add the phyerr_mask parameters for HL1.0 in the phyerr wmi event. CRs-Fixed: 2150566 Change-Id: Ib2d5286fbf45d41229e68d817d65714d18811a4e Signed-off-by: Rakesh Pillai <pillair@codeaurora.org>
This commit is contained in:
parent
3d1779cb8d
commit
8be2a9ef5d
4 changed files with 25 additions and 9 deletions
|
@ -923,6 +923,11 @@ static int ath10k_wmi_tlv_op_pull_phyerr_ev_hdr(struct ath10k *ar,
|
||||||
arg->buf_len = __le32_to_cpu(ev->buf_len);
|
arg->buf_len = __le32_to_cpu(ev->buf_len);
|
||||||
arg->phyerrs = phyerrs;
|
arg->phyerrs = phyerrs;
|
||||||
|
|
||||||
|
if (QCA_REV_WCN3990(ar)) {
|
||||||
|
arg->phy_err_mask0 = __le32_to_cpu(ev->rs_phy_err_mask0);
|
||||||
|
arg->phy_err_mask1 = __le32_to_cpu(ev->rs_phy_err_mask1);
|
||||||
|
}
|
||||||
|
|
||||||
kfree(tb);
|
kfree(tb);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1399,6 +1399,10 @@ struct wmi_tlv_phyerr_ev {
|
||||||
__le32 tsf_l32;
|
__le32 tsf_l32;
|
||||||
__le32 tsf_u32;
|
__le32 tsf_u32;
|
||||||
__le32 buf_len;
|
__le32 buf_len;
|
||||||
|
__le32 pdev_id;
|
||||||
|
__le32 rs_phy_err_mask0;
|
||||||
|
__le32 rs_phy_err_mask1;
|
||||||
|
__le32 rs_phy_err_mask2;
|
||||||
} __packed;
|
} __packed;
|
||||||
|
|
||||||
enum wmi_tlv_dbglog_param {
|
enum wmi_tlv_dbglog_param {
|
||||||
|
|
|
@ -4076,19 +4076,20 @@ void ath10k_wmi_event_phyerr(struct ath10k *ar, struct sk_buff *skb)
|
||||||
|
|
||||||
left_len -= buf_len;
|
left_len -= buf_len;
|
||||||
|
|
||||||
switch (phy_err_code) {
|
if ((phy_err_code == PHY_ERROR_RADAR) ||
|
||||||
case PHY_ERROR_RADAR:
|
(hdr_arg.phy_err_mask0 &
|
||||||
|
WMI_PHY_ERROR_MASK0_RADAR)) {
|
||||||
ath10k_wmi_event_dfs(ar, &phyerr_arg, tsf);
|
ath10k_wmi_event_dfs(ar, &phyerr_arg, tsf);
|
||||||
break;
|
} else if ((phy_err_code ==
|
||||||
case PHY_ERROR_SPECTRAL_SCAN:
|
WMI_PHY_ERROR_MASK0_SPECTRAL_SCAN) ||
|
||||||
|
(hdr_arg.phy_err_mask0 &
|
||||||
|
WMI_PHY_ERROR_MASK0_SPECTRAL_SCAN)) {
|
||||||
ath10k_wmi_event_spectral_scan(ar, &phyerr_arg, tsf);
|
ath10k_wmi_event_spectral_scan(ar, &phyerr_arg, tsf);
|
||||||
break;
|
} else if ((phy_err_code == PHY_ERROR_FALSE_RADAR_EXT) ||
|
||||||
case PHY_ERROR_FALSE_RADAR_EXT:
|
(hdr_arg.phy_err_mask0 &
|
||||||
|
WMI_PHY_ERROR_MASK0_FALSE_RADAR_EXT)) {
|
||||||
ath10k_wmi_event_dfs(ar, &phyerr_arg, tsf);
|
ath10k_wmi_event_dfs(ar, &phyerr_arg, tsf);
|
||||||
ath10k_wmi_event_spectral_scan(ar, &phyerr_arg, tsf);
|
ath10k_wmi_event_spectral_scan(ar, &phyerr_arg, tsf);
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
phyerr = phyerr + phyerr_arg.hdr_len + buf_len;
|
phyerr = phyerr + phyerr_arg.hdr_len + buf_len;
|
||||||
|
|
|
@ -3116,6 +3116,10 @@ struct wmi_mgmt_rx_ext_info {
|
||||||
#define PHY_ERROR_10_4_RADAR_MASK 0x4
|
#define PHY_ERROR_10_4_RADAR_MASK 0x4
|
||||||
#define PHY_ERROR_10_4_SPECTRAL_SCAN_MASK 0x4000000
|
#define PHY_ERROR_10_4_SPECTRAL_SCAN_MASK 0x4000000
|
||||||
|
|
||||||
|
#define WMI_PHY_ERROR_MASK0_RADAR BIT(2)
|
||||||
|
#define WMI_PHY_ERROR_MASK0_FALSE_RADAR_EXT BIT(24)
|
||||||
|
#define WMI_PHY_ERROR_MASK0_SPECTRAL_SCAN BIT(26)
|
||||||
|
|
||||||
enum phy_err_type {
|
enum phy_err_type {
|
||||||
PHY_ERROR_UNKNOWN,
|
PHY_ERROR_UNKNOWN,
|
||||||
PHY_ERROR_SPECTRAL_SCAN,
|
PHY_ERROR_SPECTRAL_SCAN,
|
||||||
|
@ -6303,6 +6307,8 @@ struct wmi_phyerr_hdr_arg {
|
||||||
u32 tsf_u32;
|
u32 tsf_u32;
|
||||||
u32 buf_len;
|
u32 buf_len;
|
||||||
const void *phyerrs;
|
const void *phyerrs;
|
||||||
|
u32 phy_err_mask0;
|
||||||
|
u32 phy_err_mask1;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct wmi_svc_rdy_ev_arg {
|
struct wmi_svc_rdy_ev_arg {
|
||||||
|
|
Loading…
Add table
Reference in a new issue