Jelajahi Sumber

qcacmn: Make _qdf_nbuf_unmap_nbytes_single API inline

Make _qdf_nbuf_unmap_nbytes_single to use in dp_rx_process.
Non-inline version takes more CPU.

Change-Id: Iaf5e9f5f734d81b6d2c234bd8e579cf2a81c7e2c
CRs-Fixed: 2634679
Varsha Mishra 5 tahun lalu
induk
melakukan
1fb9b10ac1
2 mengubah file dengan 65 tambahan dan 71 penghapusan
  1. 65 4
      qdf/linux/src/i_qdf_nbuf.h
  2. 0 67
      qdf/linux/src/qdf_nbuf.c

+ 65 - 4
qdf/linux/src/i_qdf_nbuf.h

@@ -764,10 +764,6 @@ void __qdf_nbuf_unmap_nbytes(qdf_device_t osdev, struct sk_buff *skb,
 void __qdf_nbuf_sync_for_cpu(qdf_device_t osdev, struct sk_buff *skb,
 	qdf_dma_dir_t dir);
 
-QDF_STATUS __qdf_nbuf_map_nbytes_single(
-	qdf_device_t osdev, struct sk_buff *buf, qdf_dma_dir_t dir, int nbytes);
-void __qdf_nbuf_unmap_nbytes_single(
-	qdf_device_t osdev, struct sk_buff *buf, qdf_dma_dir_t dir, int nbytes);
 void __qdf_nbuf_dma_map_info(__qdf_dma_map_t bmap, qdf_dmamap_info_t *sg);
 uint32_t __qdf_nbuf_get_frag_size(__qdf_nbuf_t nbuf, uint32_t cur_frag);
 void __qdf_nbuf_frag_info(struct sk_buff *skb, qdf_sglist_t  *sg);
@@ -2219,6 +2215,71 @@ static inline void __qdf_nbuf_orphan(struct sk_buff *skb)
 	return skb_orphan(skb);
 }
 
+/**
+ * __qdf_nbuf_map_nbytes_single() - map nbytes
+ * @osdev: os device
+ * @buf: buffer
+ * @dir: direction
+ * @nbytes: number of bytes
+ *
+ * Return: QDF_STATUS
+ */
+#ifdef A_SIMOS_DEVHOST
+static inline QDF_STATUS __qdf_nbuf_map_nbytes_single(
+		qdf_device_t osdev, struct sk_buff *buf,
+		qdf_dma_dir_t dir, int nbytes)
+{
+	qdf_dma_addr_t paddr;
+
+	QDF_NBUF_CB_PADDR(buf) = paddr = buf->data;
+	return QDF_STATUS_SUCCESS;
+}
+#else
+static inline QDF_STATUS __qdf_nbuf_map_nbytes_single(
+		qdf_device_t osdev, struct sk_buff *buf,
+		qdf_dma_dir_t dir, int nbytes)
+{
+	qdf_dma_addr_t paddr;
+
+	/* assume that the OS only provides a single fragment */
+	QDF_NBUF_CB_PADDR(buf) = paddr =
+		dma_map_single(osdev->dev, buf->data,
+			       nbytes, __qdf_dma_dir_to_os(dir));
+	return dma_mapping_error(osdev->dev, paddr) ?
+		QDF_STATUS_E_FAULT : QDF_STATUS_SUCCESS;
+}
+#endif
+/**
+ * __qdf_nbuf_unmap_nbytes_single() - unmap nbytes
+ * @osdev: os device
+ * @buf: buffer
+ * @dir: direction
+ * @nbytes: number of bytes
+ *
+ * Return: none
+ */
+#if defined(A_SIMOS_DEVHOST)
+static inline void
+__qdf_nbuf_unmap_nbytes_single(qdf_device_t osdev, struct sk_buff *buf,
+			       qdf_dma_dir_t dir, int nbytes)
+{
+}
+
+#else
+static inline void
+__qdf_nbuf_unmap_nbytes_single(qdf_device_t osdev, struct sk_buff *buf,
+			       qdf_dma_dir_t dir, int nbytes)
+{
+	qdf_dma_addr_t paddr = QDF_NBUF_CB_PADDR(buf);
+
+	if (qdf_likely(paddr)) {
+		dma_unmap_single(osdev->dev, paddr, nbytes,
+				 __qdf_dma_dir_to_os(dir));
+		return;
+	}
+}
+#endif
+
 static inline struct sk_buff *
 __qdf_nbuf_queue_head_dequeue(struct sk_buff_head *skb_queue_head)
 {

+ 0 - 67
qdf/linux/src/qdf_nbuf.c

@@ -3588,73 +3588,6 @@ __qdf_nbuf_dmamap_destroy(qdf_device_t osdev, __qdf_dma_map_t dmap)
 }
 qdf_export_symbol(__qdf_nbuf_dmamap_destroy);
 
-/**
- * __qdf_nbuf_map_nbytes_single() - map nbytes
- * @osdev: os device
- * @buf: buffer
- * @dir: direction
- * @nbytes: number of bytes
- *
- * Return: QDF_STATUS
- */
-#ifdef A_SIMOS_DEVHOST
-QDF_STATUS __qdf_nbuf_map_nbytes_single(
-		qdf_device_t osdev, struct sk_buff *buf,
-		 qdf_dma_dir_t dir, int nbytes)
-{
-	qdf_dma_addr_t paddr;
-
-	QDF_NBUF_CB_PADDR(buf) = paddr = buf->data;
-	return QDF_STATUS_SUCCESS;
-}
-qdf_export_symbol(__qdf_nbuf_map_nbytes_single);
-#else
-QDF_STATUS __qdf_nbuf_map_nbytes_single(
-		qdf_device_t osdev, struct sk_buff *buf,
-		 qdf_dma_dir_t dir, int nbytes)
-{
-	qdf_dma_addr_t paddr;
-
-	/* assume that the OS only provides a single fragment */
-	QDF_NBUF_CB_PADDR(buf) = paddr =
-		dma_map_single(osdev->dev, buf->data,
-			nbytes, __qdf_dma_dir_to_os(dir));
-	return dma_mapping_error(osdev->dev, paddr) ?
-		QDF_STATUS_E_FAULT : QDF_STATUS_SUCCESS;
-}
-qdf_export_symbol(__qdf_nbuf_map_nbytes_single);
-#endif
-/**
- * __qdf_nbuf_unmap_nbytes_single() - unmap nbytes
- * @osdev: os device
- * @buf: buffer
- * @dir: direction
- * @nbytes: number of bytes
- *
- * Return: none
- */
-#if defined(A_SIMOS_DEVHOST)
-void
-__qdf_nbuf_unmap_nbytes_single(
-	qdf_device_t osdev, struct sk_buff *buf, qdf_dma_dir_t dir, int nbytes)
-{
-}
-qdf_export_symbol(__qdf_nbuf_unmap_nbytes_single);
-
-#else
-void
-__qdf_nbuf_unmap_nbytes_single(
-	qdf_device_t osdev, struct sk_buff *buf, qdf_dma_dir_t dir, int nbytes)
-{
-	if (0 ==  QDF_NBUF_CB_PADDR(buf)) {
-		qdf_err("ERROR: NBUF mapped physical address is NULL");
-		return;
-	}
-	dma_unmap_single(osdev->dev, QDF_NBUF_CB_PADDR(buf),
-			nbytes, __qdf_dma_dir_to_os(dir));
-}
-qdf_export_symbol(__qdf_nbuf_unmap_nbytes_single);
-#endif
 /**
  * __qdf_nbuf_map_nbytes() - get the dma map of the nbuf
  * @osdev: os device