소스 검색

qcacmn: Add HAL APIs for flow override in BE

Add HAL APIs to access TX fields to override default flow
classification by hardware.

Change-Id: If2eb0c5a966f87081a7714836c2c4bc0bd47fa86
CRs-Fixed: 3114311
Mohit Khanna 3 년 전
부모
커밋
5805824049
1개의 변경된 파일69개의 추가작업 그리고 0개의 파일을 삭제
  1. 69 0
      hal/wifi3.0/be/hal_be_tx.h

+ 69 - 0
hal/wifi3.0/be/hal_be_tx.h

@@ -64,6 +64,19 @@ enum hal_tx_vdev_mismatch_notify {
 	HAL_TX_VDEV_MISMATCH_FW_NOTIFY,
 	HAL_TX_VDEV_MISMATCH_FW_NOTIFY,
 };
 };
 
 
+/* enum hal_tx_notify_frame_type - TX notify frame type
+ * @NO_TX_NOTIFY: Not a notify frame
+ * @TX_HARD_NOTIFY: Hard notify TX frame
+ * @TX_SOFT_NOTIFY_E: Soft Notify Tx frame
+ * @TX_SEMI_HARD_NOTIFY_E: Semi Hard notify TX frame
+ */
+enum hal_tx_notify_frame_type {
+	NO_TX_NOTIFY = 0,
+	TX_HARD_NOTIFY = 1,
+	TX_SOFT_NOTIFY_E = 2,
+	TX_SEMI_HARD_NOTIFY_E = 3
+};
+
 /*---------------------------------------------------------------------------
 /*---------------------------------------------------------------------------
  * Structures
  * Structures
  * ---------------------------------------------------------------------------
  * ---------------------------------------------------------------------------
@@ -225,6 +238,62 @@ union hal_tx_ppe_pri2tid_map1_config {
  *---------------------------------------------------------------------------
  *---------------------------------------------------------------------------
  */
  */
 
 
+/**
+ * hal_tx_desc_set_tx_notify_frame - Set TX notify_frame field in Tx desc
+ * @desc: Handle to Tx Descriptor
+ * @val: Value to be set
+ *
+ * Return: None
+ */
+static inline void hal_tx_desc_set_tx_notify_frame(void *desc,
+						   uint8_t val)
+{
+	HAL_SET_FLD(desc, TCL_DATA_CMD, TX_NOTIFY_FRAME) |=
+		HAL_TX_SM(TCL_DATA_CMD, TX_NOTIFY_FRAME, val);
+}
+
+/**
+ * hal_tx_desc_set_flow_override_enable - Set flow_override_enable field
+ * @desc: Handle to Tx Descriptor
+ * @val: Value to be set
+ *
+ * Return: None
+ */
+static inline void  hal_tx_desc_set_flow_override_enable(void *desc,
+							 uint8_t val)
+{
+	HAL_SET_FLD(desc, TCL_DATA_CMD, FLOW_OVERRIDE_ENABLE) |=
+		HAL_TX_SM(TCL_DATA_CMD, FLOW_OVERRIDE_ENABLE, val);
+}
+
+/**
+ * hal_tx_desc_set_flow_override - Set flow_override field in TX desc
+ * @desc: Handle to Tx Descriptor
+ * @val: Value to be set
+ *
+ * Return: None
+ */
+static inline void  hal_tx_desc_set_flow_override(void *desc,
+						  uint8_t val)
+{
+	HAL_SET_FLD(desc, TCL_DATA_CMD, FLOW_OVERRIDE) |=
+		HAL_TX_SM(TCL_DATA_CMD, FLOW_OVERRIDE, val);
+}
+
+/**
+ * hal_tx_desc_set_who_classify_info_sel - Set who_classify_info_sel field
+ * @desc: Handle to Tx Descriptor
+ * @val: Value to be set
+ *
+ * Return: None
+ */
+static inline void  hal_tx_desc_set_who_classify_info_sel(void *desc,
+							  uint8_t val)
+{
+	HAL_SET_FLD(desc, TCL_DATA_CMD, WHO_CLASSIFY_INFO_SEL) |=
+		HAL_TX_SM(TCL_DATA_CMD, WHO_CLASSIFY_INFO_SEL, val);
+}
+
 /**
 /**
  * hal_tx_desc_set_buf_length - Set Data length in bytes in Tx Descriptor
  * hal_tx_desc_set_buf_length - Set Data length in bytes in Tx Descriptor
  * @desc: Handle to Tx Descriptor
  * @desc: Handle to Tx Descriptor