瀏覽代碼

qca-wifi: set frame control for BRP frame

For BRP frame ppdu, frame control is not valid in all user
completion tlv, which is causing to drop ppdu as wrong ctrl mgmt
queue checked for payload.

To fix this, updated frame control based on ppdu frame type

Change-Id: Ia5eb67da14647cccfe2ade7c0626a97171454446
CRs-Fixed: 2677252
Srinivas Pitla 5 年之前
父節點
當前提交
501f31af2d
共有 1 個文件被更改,包括 3 次插入2 次删除
  1. 3 2
      dp/wifi3.0/dp_tx_capture.c

+ 3 - 2
dp/wifi3.0/dp_tx_capture.c

@@ -2368,7 +2368,6 @@ void dp_update_frame_ctrl_from_frame_type(void *desc)
 					 IEEE80211_FC0_TYPE_CTL);
 	break;
 	case HTT_STATS_FTYPE_SGEN_BRP:
-	case HTT_STATS_FTYPE_SGEN_MU_BRP:
 		ppdu_desc->frame_ctrl = (IEEE80211_FC0_SUBTYPE_BRPOLL |
 					 IEEE80211_FC0_TYPE_CTL);
 	break;
@@ -2387,6 +2386,7 @@ void dp_update_frame_ctrl_from_frame_type(void *desc)
 	break;
 	case HTT_STATS_FTYPE_SGEN_MU_TRIG:
 	case HTT_STATS_FTYPE_SGEN_MU_BAR:
+	case HTT_STATS_FTYPE_SGEN_MU_BRP:
 		ppdu_desc->frame_ctrl = (IEEE80211_FC0_SUBTYPE_TRIGGER |
 					 IEEE80211_FC0_TYPE_CTL);
 	break;
@@ -3533,7 +3533,8 @@ dp_check_mgmt_ctrl_ppdu(struct dp_pdev *pdev,
 	user = &ppdu_desc->user[0];
 
 	ppdu_desc_frame_ctrl = ppdu_desc->frame_ctrl;
-	if (ppdu_desc->htt_frame_type == HTT_STATS_FTYPE_SGEN_MU_BAR)
+	if ((ppdu_desc->htt_frame_type == HTT_STATS_FTYPE_SGEN_MU_BAR) ||
+	    (ppdu_desc->htt_frame_type == HTT_STATS_FTYPE_SGEN_MU_BRP))
 		ppdu_desc_frame_ctrl = (IEEE80211_FC0_SUBTYPE_TRIGGER |
 					IEEE80211_FC0_TYPE_CTL);