Просмотр исходного кода

qcacld-3.0: Support for broadcast TWT configuration

Add configuration support for broadcast TWT parameters.

Change-Id: I066f4509e094c81f51eda4cc08a432beab4e0e57
CRs-Fixed: 2924717
Kiran Kumar Lokere 4 лет назад
Родитель
Сommit
aa2f7953d2
1 измененных файлов с 30 добавлено и 0 удалено
  1. 30 0
      core/hdd/src/wlan_hdd_twt.c

+ 30 - 0
core/hdd/src/wlan_hdd_twt.c

@@ -69,6 +69,10 @@ qca_wlan_vendor_twt_add_dialog_policy[QCA_WLAN_VENDOR_ATTR_TWT_SETUP_MAX + 1] =
 	[QCA_WLAN_VENDOR_ATTR_TWT_SETUP_MAX_WAKE_INTVL] = {.type = NLA_U32 },
 	[QCA_WLAN_VENDOR_ATTR_TWT_SETUP_WAKE_INTVL2_MANTISSA] = {.type = NLA_U32 },
 	[QCA_WLAN_VENDOR_ATTR_TWT_SETUP_MAC_ADDR] = VENDOR_NLA_POLICY_MAC_ADDR,
+	[QCA_WLAN_VENDOR_ATTR_TWT_SETUP_BCAST_ID] = {.type = NLA_U8 },
+	[QCA_WLAN_VENDOR_ATTR_TWT_SETUP_BCAST_RECOMMENDATION] = {
+							.type = NLA_U8 },
+	[QCA_WLAN_VENDOR_ATTR_TWT_SETUP_BCAST_PERSISTENCE] = {.type = NLA_U8 },
 };
 
 static const struct nla_policy
@@ -174,6 +178,26 @@ int hdd_twt_get_add_dialog_values(struct nlattr **tb,
 	cmd_id = QCA_WLAN_VENDOR_ATTR_TWT_SETUP_BCAST;
 	params->flag_bcast = nla_get_flag(tb[cmd_id]);
 
+	cmd_id = QCA_WLAN_VENDOR_ATTR_TWT_SETUP_BCAST_ID;
+	if (tb[cmd_id]) {
+		params->dialog_id = nla_get_u8(tb[cmd_id]);
+		hdd_debug("TWT_SETUP_BCAST_ID %d", params->dialog_id);
+	}
+
+	cmd_id = QCA_WLAN_VENDOR_ATTR_TWT_SETUP_BCAST_RECOMMENDATION;
+	if (tb[cmd_id]) {
+		params->b_twt_recommendation = nla_get_u8(tb[cmd_id]);
+		hdd_debug("TWT_SETUP_BCAST_RECOMM %d",
+			  params->b_twt_recommendation);
+	}
+
+	cmd_id = QCA_WLAN_VENDOR_ATTR_TWT_SETUP_BCAST_PERSISTENCE;
+	if (tb[cmd_id]) {
+		params->b_twt_persistence = nla_get_u8(tb[cmd_id]);
+		hdd_debug("TWT_SETUP_BCAST_PERSIS %d",
+			  params->b_twt_persistence);
+	}
+
 	cmd_id = QCA_WLAN_VENDOR_ATTR_TWT_SETUP_REQ_TYPE;
 	if (!tb[cmd_id]) {
 		hdd_err_rl("TWT_SETUP_REQ_TYPE is must");
@@ -2020,6 +2044,12 @@ static int hdd_sta_twt_terminate_session(struct hdd_adapter *adapter,
 		hdd_debug("TWT_TERMINATE_FLOW_ID not specified. set to zero");
 	}
 
+	id = QCA_WLAN_VENDOR_ATTR_TWT_SETUP_BCAST_ID;
+	if (tb[id]) {
+		params.dialog_id = nla_get_u8(tb[id]);
+		hdd_debug("TWT_SETUP_BCAST_ID %d", params.dialog_id);
+	}
+
 	status = hdd_twt_check_all_twt_support(adapter->hdd_ctx->psoc,
 					       params.dialog_id);
 	if (QDF_IS_STATUS_ERROR(status)) {