Browse Source

Merge changes Ibef1681f,Ia62137da into wlan-cmn.driver.lnx.2.0-dev

* changes:
  qcacmn: Fix checkpatch warning in policy manager component
  qcacmn: Fix the position of qdf_nbuf_map in Tx DP
CNSS_WLAN Service 8 years ago
parent
commit
f3c5a24628

+ 46 - 15
dp/wifi3.0/dp_tx.c

@@ -126,8 +126,30 @@ dp_tx_desc_release(struct dp_tx_desc_s *tx_desc, uint8_t desc_pool_id)
  * dp_tx_htt_metadata_prepare() - Prepare HTT metadata for special frames
  * @vdev: DP vdev Handle
  * @nbuf: skb
- * @align_pad: Alignment Pad bytes to be added in frame header before adding HTT
- * metadata
+ * @align_pad: Alignment Pad bytes to be pushed in headroom before adding
+ * HTT metadata
+ *
+ *  |-----------------------------|
+ *  |                             |
+ *  |-----------------------------| <-----Buffer Pointer Address given
+ *  |                             |  ^    in HW descriptor (aligned)
+ *  |                             |  |
+ *  |       HTT Metadata          |  |
+ *  |                             |  |
+ *  |                             |  | Packet Offset given in descriptor
+ *  |                             |  |
+ *  |                             |  |
+ *  |-----------------------------|  |
+ *  |       Alignment Pad         |  v
+ *  |-----------------------------| <----- Actual buffer start address
+ *  |        SKB Data             |           (Unaligned)
+ *  |                             |
+ *  |                             |
+ *  |                             |
+ *  |                             |
+ *  |                             |
+ *  |                             |
+ *  |-----------------------------|
  *
  * Prepares and fills HTT metadata in the frame pre-header for special frames
  * that should be transmitted using varying transmit parameters.
@@ -157,15 +179,25 @@ static uint8_t dp_tx_prepare_htt_metadata(struct dp_vdev *vdev, qdf_nbuf_t nbuf,
 	htt_desc_size = sizeof(struct htt_tx_msdu_desc_ext2_t);
 
 	if (vdev->mesh_vdev) {
-
 		/* Fill and add HTT metaheader */
 		hdr = qdf_nbuf_push_head(nbuf, htt_desc_size + align_pad);
-
 		qdf_mem_copy(hdr, desc_ext, htt_desc_size);
 
+		if (qdf_unlikely(QDF_STATUS_SUCCESS !=
+					qdf_nbuf_map_nbytes_single(
+						vdev->pdev->soc->osdev, nbuf,
+						QDF_DMA_TO_DEVICE,
+						(htt_desc_size + align_pad)))) {
+
+			/* Handle failure */
+			QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_ERROR,
+					"htt qdf_nbuf_map failed\n");
+
+			return 0;
+		}
+
 	} else if (vdev->opmode == wlan_op_mode_ocb) {
 		/* Todo - Add support for DSRC */
-
 	}
 
 	return htt_desc_size;
@@ -183,7 +215,6 @@ static void dp_tx_prepare_tso_ext_desc(struct qdf_tso_seg_t *tso_seg,
 		void *ext_desc)
 {
 	uint8_t num_frag;
-	uint32_t *buf_ptr;
 	uint32_t tso_flags;
 
 	/*
@@ -403,6 +434,15 @@ struct dp_tx_desc_s *dp_tx_prepare_desc_single(struct dp_vdev *vdev,
 	tx_desc->pdev = pdev;
 	tx_desc->msdu_ext_desc = NULL;
 
+	if (qdf_unlikely(QDF_STATUS_SUCCESS !=
+				qdf_nbuf_map(soc->osdev, nbuf,
+				QDF_DMA_TO_DEVICE))) {
+		/* Handle failure */
+		QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_ERROR,
+				"qdf_nbuf_map failed\n");
+		goto failure;
+	}
+
 	align_pad = ((unsigned long) qdf_nbuf_mapped_paddr_get(nbuf)) & 0x7;
 	tx_desc->pkt_offset = align_pad;
 
@@ -439,15 +479,6 @@ struct dp_tx_desc_s *dp_tx_prepare_desc_single(struct dp_vdev *vdev,
 		qdf_atomic_inc(&pdev->num_tx_exception);
 	}
 
-	if (qdf_unlikely(QDF_STATUS_SUCCESS !=
-				qdf_nbuf_map(soc->osdev, nbuf,
-				QDF_DMA_TO_DEVICE))) {
-		/* Handle failure */
-		QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_ERROR,
-				"qdf_nbuf_map failed\n");
-		goto failure;
-	}
-
 	return tx_desc;
 
 failure:

+ 3 - 3
umac/cmn_services/policy_mgr/inc/wlan_policy_mgr_api.h

@@ -757,12 +757,12 @@ struct policy_mgr_sme_cbacks {
 		uint8_t  new_nss, policy_mgr_nss_update_cback cback,
 		uint8_t next_action, struct wlan_objmgr_psoc *psoc,
 		enum policy_mgr_conn_update_reason reason);
-	QDF_STATUS (*sme_change_mcc_beacon_interval) (uint8_t session_id);
-	QDF_STATUS (*sme_get_ap_channel_from_scan) (
+	QDF_STATUS (*sme_change_mcc_beacon_interval)(uint8_t session_id);
+	QDF_STATUS (*sme_get_ap_channel_from_scan)(
 		void *roam_profile,
 		void **scan_cache,
 		uint8_t *channel);
-	QDF_STATUS (*sme_scan_result_purge) (
+	QDF_STATUS (*sme_scan_result_purge)(
 				void *scan_result);
 };
 

+ 1 - 1
umac/cmn_services/policy_mgr/src/wlan_policy_mgr_i.h

@@ -249,7 +249,7 @@ extern enum policy_mgr_conc_next_action
  * @hw_mode_change_in_progress: This is to track if HW mode
  *                            change is in progress
  * @enable_mcc_adaptive_scheduler: Enable MCC adaptive scheduler
- *      			 value from INI
+ *      value from INI
  */
 struct policy_mgr_psoc_priv_obj {
 		struct wlan_objmgr_psoc *psoc;