From 9e7f12f7dae44a09aca886dca8254fed12803953 Mon Sep 17 00:00:00 2001 From: Akshay Kosigi Date: Fri, 15 Dec 2017 11:16:51 +0530 Subject: [PATCH] qcacmn: Fix Scatter-Gather and TSO Fix SG and TSO for ftp data transfer Change-Id: Ide7eec987436beea08711f31362c1fa61f5bf8c3 CRs-fixed: 2159610 --- qdf/inc/qdf_nbuf.h | 16 +++++++++++++++- qdf/linux/src/i_qdf_nbuf.h | 2 ++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/qdf/inc/qdf_nbuf.h b/qdf/inc/qdf_nbuf.h index 237b811ef7c3..72d2f8fe3bbd 100644 --- a/qdf/inc/qdf_nbuf.h +++ b/qdf/inc/qdf_nbuf.h @@ -718,7 +718,8 @@ qdf_nbuf_get_frag_vaddr_always(qdf_nbuf_t buf) } /** - * qdf_nbuf_get_frag_paddr() - get fragment physical address + * qdf_nbuf_get_frag_paddr() - get physical address for skb linear buffer + * or skb fragment, based on frag_num passed * @buf: Network buffer * @frag_num: Fragment number * @@ -731,6 +732,19 @@ static inline qdf_dma_addr_t qdf_nbuf_get_frag_paddr(qdf_nbuf_t buf, return __qdf_nbuf_get_frag_paddr(buf, frag_num); } +/** + * qdf_nbuf_get_tx_frag_paddr() - get physical address for skb fragments only + * @buf: Network buffer + * + * Return: Fragment physical address + * Usage guideline: Use “qdf_nbuf_frag_map()” to dma map the specific + * skb fragment , followed by “qdf_nbuf_get_tx_frag_paddr” + */ +static inline qdf_dma_addr_t qdf_nbuf_get_tx_frag_paddr(qdf_nbuf_t buf) +{ + return __qdf_nbuf_get_tx_frag_paddr(buf); +} + /** * qdf_nbuf_get_frag_is_wordstream() - is fragment wordstream * @buf: Network buffer diff --git a/qdf/linux/src/i_qdf_nbuf.h b/qdf/linux/src/i_qdf_nbuf.h index e2fc4d63a9fa..8081e4be2bfa 100644 --- a/qdf/linux/src/i_qdf_nbuf.h +++ b/qdf/linux/src/i_qdf_nbuf.h @@ -464,6 +464,8 @@ typedef void (*qdf_nbuf_free_t)(__qdf_nbuf_t); /* assume that the OS only provides a single fragment */ \ QDF_NBUF_CB_PADDR(skb)) +#define __qdf_nbuf_get_tx_frag_paddr(skb) QDF_NBUF_CB_TX_EXTRA_FRAG_PADDR(skb) + #define __qdf_nbuf_get_frag_len(skb, frag_num) \ ((frag_num < QDF_NBUF_CB_TX_NUM_EXTRA_FRAGS(skb)) ? \ QDF_NBUF_CB_TX_EXTRA_FRAG_LEN(skb) : (skb)->len)