qcacmn: Call dp_tx_nbuf_unmap instead of directly calling unmap API
Call dp_tx_nbuf_unmap instead of directly calling qdf_nbuf_unmap_nbytes_single Change-Id: I4d28ccdc45d99b16cf9883742742ee7b36ba1022 CRs-Fixed: 3146931
This commit is contained in:

committed by
Madan Koyyalamudi

parent
b37b9b12cd
commit
fbf1e82c6b
@@ -148,36 +148,6 @@ dp_update_tx_desc_stats(struct dp_pdev *pdev)
|
|||||||
}
|
}
|
||||||
#endif /* CONFIG_WLAN_SYSFS_MEM_STATS */
|
#endif /* CONFIG_WLAN_SYSFS_MEM_STATS */
|
||||||
|
|
||||||
#if defined(WLAN_TX_PKT_CAPTURE_ENH) || defined(FEATURE_PERPKT_INFO)
|
|
||||||
static inline
|
|
||||||
void dp_tx_enh_unmap(struct dp_soc *soc, struct dp_tx_desc_s *desc)
|
|
||||||
{
|
|
||||||
qdf_nbuf_unmap_nbytes_single(soc->osdev, desc->nbuf,
|
|
||||||
QDF_DMA_TO_DEVICE,
|
|
||||||
desc->nbuf->len);
|
|
||||||
desc->flags |= DP_TX_DESC_FLAG_UNMAP_DONE;
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void dp_tx_unmap(struct dp_soc *soc, struct dp_tx_desc_s *desc)
|
|
||||||
{
|
|
||||||
if (qdf_likely(!(desc->flags & DP_TX_DESC_FLAG_UNMAP_DONE)))
|
|
||||||
qdf_nbuf_unmap_nbytes_single(soc->osdev, desc->nbuf,
|
|
||||||
QDF_DMA_TO_DEVICE,
|
|
||||||
desc->nbuf->len);
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
static inline
|
|
||||||
void dp_tx_enh_unmap(struct dp_soc *soc, struct dp_tx_desc_s *desc)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void dp_tx_unmap(struct dp_soc *soc, struct dp_tx_desc_s *desc)
|
|
||||||
{
|
|
||||||
qdf_nbuf_unmap_nbytes_single(soc->osdev, desc->nbuf,
|
|
||||||
QDF_DMA_TO_DEVICE, desc->nbuf->len);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef QCA_TX_LIMIT_CHECK
|
#ifdef QCA_TX_LIMIT_CHECK
|
||||||
/**
|
/**
|
||||||
* dp_tx_limit_check - Check if allocated tx descriptors reached
|
* dp_tx_limit_check - Check if allocated tx descriptors reached
|
||||||
@@ -1928,25 +1898,8 @@ static inline QDF_STATUS dp_tx_msdu_single_map(struct dp_vdev *vdev,
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(QCA_DP_TX_NBUF_NO_MAP_UNMAP) && !defined(BUILD_X86)
|
|
||||||
static inline
|
static inline
|
||||||
qdf_dma_addr_t dp_tx_nbuf_map(struct dp_vdev *vdev,
|
qdf_dma_addr_t dp_tx_nbuf_map_regular(struct dp_vdev *vdev,
|
||||||
struct dp_tx_desc_s *tx_desc,
|
|
||||||
qdf_nbuf_t nbuf)
|
|
||||||
{
|
|
||||||
qdf_nbuf_dma_clean_range((void *)nbuf->data,
|
|
||||||
(void *)(nbuf->data + nbuf->len));
|
|
||||||
return (qdf_dma_addr_t)qdf_mem_virt_to_phys(nbuf->data);
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline
|
|
||||||
void dp_tx_nbuf_unmap(struct dp_soc *soc,
|
|
||||||
struct dp_tx_desc_s *desc)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
static inline
|
|
||||||
qdf_dma_addr_t dp_tx_nbuf_map(struct dp_vdev *vdev,
|
|
||||||
struct dp_tx_desc_s *tx_desc,
|
struct dp_tx_desc_s *tx_desc,
|
||||||
qdf_nbuf_t nbuf)
|
qdf_nbuf_t nbuf)
|
||||||
{
|
{
|
||||||
@@ -1960,8 +1913,7 @@ qdf_dma_addr_t dp_tx_nbuf_map(struct dp_vdev *vdev,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static inline
|
static inline
|
||||||
void dp_tx_nbuf_unmap(struct dp_soc *soc,
|
void dp_tx_nbuf_unmap_regular(struct dp_soc *soc, struct dp_tx_desc_s *desc)
|
||||||
struct dp_tx_desc_s *desc)
|
|
||||||
{
|
{
|
||||||
qdf_nbuf_unmap_nbytes_single_paddr(soc->osdev,
|
qdf_nbuf_unmap_nbytes_single_paddr(soc->osdev,
|
||||||
desc->nbuf,
|
desc->nbuf,
|
||||||
@@ -1969,6 +1921,69 @@ void dp_tx_nbuf_unmap(struct dp_soc *soc,
|
|||||||
QDF_DMA_TO_DEVICE,
|
QDF_DMA_TO_DEVICE,
|
||||||
desc->length);
|
desc->length);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined(QCA_DP_TX_NBUF_NO_MAP_UNMAP) && !defined(BUILD_X86)
|
||||||
|
static inline
|
||||||
|
qdf_dma_addr_t dp_tx_nbuf_map(struct dp_vdev *vdev,
|
||||||
|
struct dp_tx_desc_s *tx_desc,
|
||||||
|
qdf_nbuf_t nbuf)
|
||||||
|
{
|
||||||
|
if (qdf_likely(tx_desc->flags & DP_TX_DESC_FLAG_SIMPLE)) {
|
||||||
|
qdf_nbuf_dma_clean_range((void *)nbuf->data,
|
||||||
|
(void *)(nbuf->data + nbuf->len));
|
||||||
|
return (qdf_dma_addr_t)qdf_mem_virt_to_phys(nbuf->data);
|
||||||
|
} else {
|
||||||
|
return dp_tx_nbuf_map_regular(vdev, tx_desc, nbuf);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline
|
||||||
|
void dp_tx_nbuf_unmap(struct dp_soc *soc,
|
||||||
|
struct dp_tx_desc_s *desc)
|
||||||
|
{
|
||||||
|
if (qdf_unlikely(!(desc->flags & DP_TX_DESC_FLAG_SIMPLE)))
|
||||||
|
return dp_tx_nbuf_unmap_regular(soc, desc);
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
static inline
|
||||||
|
qdf_dma_addr_t dp_tx_nbuf_map(struct dp_vdev *vdev,
|
||||||
|
struct dp_tx_desc_s *tx_desc,
|
||||||
|
qdf_nbuf_t nbuf)
|
||||||
|
{
|
||||||
|
return dp_tx_nbuf_map_regular(vdev, tx_desc, nbuf);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline
|
||||||
|
void dp_tx_nbuf_unmap(struct dp_soc *soc,
|
||||||
|
struct dp_tx_desc_s *desc)
|
||||||
|
{
|
||||||
|
return dp_tx_nbuf_unmap_regular(soc, desc);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(WLAN_TX_PKT_CAPTURE_ENH) || defined(FEATURE_PERPKT_INFO)
|
||||||
|
static inline
|
||||||
|
void dp_tx_enh_unmap(struct dp_soc *soc, struct dp_tx_desc_s *desc)
|
||||||
|
{
|
||||||
|
dp_tx_nbuf_unmap(soc, desc);
|
||||||
|
desc->flags |= DP_TX_DESC_FLAG_UNMAP_DONE;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void dp_tx_unmap(struct dp_soc *soc, struct dp_tx_desc_s *desc)
|
||||||
|
{
|
||||||
|
if (qdf_likely(!(desc->flags & DP_TX_DESC_FLAG_UNMAP_DONE)))
|
||||||
|
dp_tx_nbuf_unmap(soc, desc);
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
static inline
|
||||||
|
void dp_tx_enh_unmap(struct dp_soc *soc, struct dp_tx_desc_s *desc)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void dp_tx_unmap(struct dp_soc *soc, struct dp_tx_desc_s *desc)
|
||||||
|
{
|
||||||
|
dp_tx_nbuf_unmap(soc, desc);
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef MESH_MODE_SUPPORT
|
#ifdef MESH_MODE_SUPPORT
|
||||||
@@ -2181,9 +2196,7 @@ dp_tx_send_msdu_single(struct dp_vdev *vdev, qdf_nbuf_t nbuf,
|
|||||||
tx_desc, tx_q->ring_id);
|
tx_desc, tx_q->ring_id);
|
||||||
dp_tx_desc_history_add(soc, tx_desc->dma_addr, nbuf,
|
dp_tx_desc_history_add(soc, tx_desc->dma_addr, nbuf,
|
||||||
tx_desc->id, DP_TX_DESC_UNMAP);
|
tx_desc->id, DP_TX_DESC_UNMAP);
|
||||||
qdf_nbuf_unmap_nbytes_single(vdev->osdev, nbuf,
|
dp_tx_nbuf_unmap(soc, tx_desc);
|
||||||
QDF_DMA_TO_DEVICE,
|
|
||||||
nbuf->len);
|
|
||||||
drop_code = TX_HW_ENQUEUE;
|
drop_code = TX_HW_ENQUEUE;
|
||||||
goto release_desc;
|
goto release_desc;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user