qcacmn: Set pcie addr flag for IPA rings
IPA driver adds is_txr_rn_db_pcie_addr and is_evt_rn_db_pcie_addr in ipa_wdi_pipe_setup_info and ipa_wdi_pipe_setup_info_smmu structure to check if doorbell address is DDR address or PCIe memory mapped address. Thus set the addr flag accordingly for IPA transfer and event rings. Change-Id: Ia55d14535db3818439e3884cfb61c3a1d81b86fb CRs-Fixed: 2422162
This commit is contained in:
@@ -803,6 +803,7 @@ static void dp_ipa_wdi_tx_params(struct dp_soc *soc,
|
||||
/* WBM Tail Pointer Address */
|
||||
QDF_IPA_WDI_SETUP_INFO_TRANSFER_RING_DOORBELL_PA(tx) =
|
||||
soc->ipa_uc_tx_rsc.ipa_wbm_tp_paddr;
|
||||
QDF_IPA_WDI_SETUP_INFO_IS_TXR_RN_DB_PCIE_ADDR(tx) = true;
|
||||
|
||||
QDF_IPA_WDI_SETUP_INFO_EVENT_RING_BASE_PA(tx) =
|
||||
qdf_mem_get_dma_addr(soc->osdev,
|
||||
@@ -814,6 +815,7 @@ static void dp_ipa_wdi_tx_params(struct dp_soc *soc,
|
||||
/* TCL Head Pointer Address */
|
||||
QDF_IPA_WDI_SETUP_INFO_EVENT_RING_DOORBELL_PA(tx) =
|
||||
soc->ipa_uc_tx_rsc.ipa_tcl_hp_paddr;
|
||||
QDF_IPA_WDI_SETUP_INFO_IS_EVT_RN_DB_PCIE_ADDR(tx) = true;
|
||||
|
||||
QDF_IPA_WDI_SETUP_INFO_NUM_PKT_BUFFERS(tx) =
|
||||
ipa_res->tx_num_alloc_buffer;
|
||||
@@ -856,6 +858,7 @@ static void dp_ipa_wdi_rx_params(struct dp_soc *soc,
|
||||
/* REO Tail Pointer Address */
|
||||
QDF_IPA_WDI_SETUP_INFO_TRANSFER_RING_DOORBELL_PA(rx) =
|
||||
soc->ipa_uc_rx_rsc.ipa_reo_tp_paddr;
|
||||
QDF_IPA_WDI_SETUP_INFO_IS_TXR_RN_DB_PCIE_ADDR(rx) = true;
|
||||
|
||||
QDF_IPA_WDI_SETUP_INFO_EVENT_RING_BASE_PA(rx) =
|
||||
qdf_mem_get_dma_addr(soc->osdev,
|
||||
@@ -867,6 +870,7 @@ static void dp_ipa_wdi_rx_params(struct dp_soc *soc,
|
||||
/* FW Head Pointer Address */
|
||||
QDF_IPA_WDI_SETUP_INFO_EVENT_RING_DOORBELL_PA(rx) =
|
||||
soc->ipa_uc_rx_rsc.ipa_rx_refill_buf_hp_paddr;
|
||||
QDF_IPA_WDI_SETUP_INFO_IS_EVT_RN_DB_PCIE_ADDR(rx) = false;
|
||||
|
||||
QDF_IPA_WDI_SETUP_INFO_PKT_OFFSET(rx) =
|
||||
RX_PKT_TLVS_LEN + L3_HEADER_PADDING;
|
||||
@@ -898,6 +902,7 @@ dp_ipa_wdi_tx_smmu_params(struct dp_soc *soc,
|
||||
/* WBM Tail Pointer Address */
|
||||
QDF_IPA_WDI_SETUP_INFO_SMMU_TRANSFER_RING_DOORBELL_PA(tx_smmu) =
|
||||
soc->ipa_uc_tx_rsc.ipa_wbm_tp_paddr;
|
||||
QDF_IPA_WDI_SETUP_INFO_SMMU_IS_TXR_RN_DB_PCIE_ADDR(tx_smmu) = true;
|
||||
|
||||
qdf_mem_copy(&QDF_IPA_WDI_SETUP_INFO_SMMU_EVENT_RING_BASE(tx_smmu),
|
||||
&ipa_res->tx_ring.sgtable,
|
||||
@@ -908,6 +913,7 @@ dp_ipa_wdi_tx_smmu_params(struct dp_soc *soc,
|
||||
/* TCL Head Pointer Address */
|
||||
QDF_IPA_WDI_SETUP_INFO_SMMU_EVENT_RING_DOORBELL_PA(tx_smmu) =
|
||||
soc->ipa_uc_tx_rsc.ipa_tcl_hp_paddr;
|
||||
QDF_IPA_WDI_SETUP_INFO_SMMU_IS_EVT_RN_DB_PCIE_ADDR(tx_smmu) = true;
|
||||
|
||||
QDF_IPA_WDI_SETUP_INFO_SMMU_NUM_PKT_BUFFERS(tx_smmu) =
|
||||
ipa_res->tx_num_alloc_buffer;
|
||||
@@ -949,6 +955,7 @@ dp_ipa_wdi_rx_smmu_params(struct dp_soc *soc,
|
||||
/* REO Tail Pointer Address */
|
||||
QDF_IPA_WDI_SETUP_INFO_SMMU_TRANSFER_RING_DOORBELL_PA(rx_smmu) =
|
||||
soc->ipa_uc_rx_rsc.ipa_reo_tp_paddr;
|
||||
QDF_IPA_WDI_SETUP_INFO_SMMU_IS_TXR_RN_DB_PCIE_ADDR(rx_smmu) = true;
|
||||
|
||||
qdf_mem_copy(&QDF_IPA_WDI_SETUP_INFO_SMMU_EVENT_RING_BASE(rx_smmu),
|
||||
&ipa_res->rx_refill_ring.sgtable,
|
||||
@@ -960,6 +967,7 @@ dp_ipa_wdi_rx_smmu_params(struct dp_soc *soc,
|
||||
/* FW Head Pointer Address */
|
||||
QDF_IPA_WDI_SETUP_INFO_SMMU_EVENT_RING_DOORBELL_PA(rx_smmu) =
|
||||
soc->ipa_uc_rx_rsc.ipa_rx_refill_buf_hp_paddr;
|
||||
QDF_IPA_WDI_SETUP_INFO_SMMU_IS_EVT_RN_DB_PCIE_ADDR(rx_smmu) = false;
|
||||
|
||||
QDF_IPA_WDI_SETUP_INFO_SMMU_PKT_OFFSET(rx_smmu) =
|
||||
RX_PKT_TLVS_LEN + L3_HEADER_PADDING;
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2017-2018, The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2017-2019, The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
@@ -73,12 +73,16 @@ typedef __qdf_ipa_wdi_pipe_setup_info_smmu_t qdf_ipa_wdi_pipe_setup_info_smmu_t;
|
||||
__QDF_IPA_WDI_SETUP_INFO_SMMU_TRANSFER_RING_SIZE(txrx)
|
||||
#define QDF_IPA_WDI_SETUP_INFO_SMMU_TRANSFER_RING_DOORBELL_PA(txrx) \
|
||||
__QDF_IPA_WDI_SETUP_INFO_SMMU_TRANSFER_RING_DOORBELL_PA(txrx)
|
||||
#define QDF_IPA_WDI_SETUP_INFO_SMMU_IS_TXR_RN_DB_PCIE_ADDR(txrx) \
|
||||
__QDF_IPA_WDI_SETUP_INFO_SMMU_IS_TXR_RN_DB_PCIE_ADDR(txrx)
|
||||
#define QDF_IPA_WDI_SETUP_INFO_SMMU_EVENT_RING_BASE(txrx) \
|
||||
__QDF_IPA_WDI_SETUP_INFO_SMMU_EVENT_RING_BASE(txrx)
|
||||
#define QDF_IPA_WDI_SETUP_INFO_SMMU_EVENT_RING_SIZE(txrx) \
|
||||
__QDF_IPA_WDI_SETUP_INFO_SMMU_EVENT_RING_SIZE(txrx)
|
||||
#define QDF_IPA_WDI_SETUP_INFO_SMMU_EVENT_RING_DOORBELL_PA(txrx) \
|
||||
__QDF_IPA_WDI_SETUP_INFO_SMMU_EVENT_RING_DOORBELL_PA(txrx)
|
||||
#define QDF_IPA_WDI_SETUP_INFO_SMMU_IS_EVT_RN_DB_PCIE_ADDR(txrx) \
|
||||
__QDF_IPA_WDI_SETUP_INFO_SMMU_IS_EVT_RN_DB_PCIE_ADDR(txrx)
|
||||
#define QDF_IPA_WDI_SETUP_INFO_SMMU_NUM_PKT_BUFFERS(txrx) \
|
||||
__QDF_IPA_WDI_SETUP_INFO_SMMU_NUM_PKT_BUFFERS(txrx)
|
||||
#define QDF_IPA_WDI_SETUP_INFO_SMMU_PKT_OFFSET(txrx) \
|
||||
@@ -202,12 +206,16 @@ typedef __qdf_ipa_wdi_pipe_setup_info_t qdf_ipa_wdi_pipe_setup_info_t;
|
||||
__QDF_IPA_WDI_SETUP_INFO_TRANSFER_RING_SIZE(txrx)
|
||||
#define QDF_IPA_WDI_SETUP_INFO_TRANSFER_RING_DOORBELL_PA(txrx) \
|
||||
__QDF_IPA_WDI_SETUP_INFO_TRANSFER_RING_DOORBELL_PA(txrx)
|
||||
#define QDF_IPA_WDI_SETUP_INFO_IS_TXR_RN_DB_PCIE_ADDR(txrx) \
|
||||
__QDF_IPA_WDI_SETUP_INFO_IS_TXR_RN_DB_PCIE_ADDR(txrx)
|
||||
#define QDF_IPA_WDI_SETUP_INFO_EVENT_RING_BASE_PA(txrx) \
|
||||
__QDF_IPA_WDI_SETUP_INFO_EVENT_RING_BASE_PA(txrx)
|
||||
#define QDF_IPA_WDI_SETUP_INFO_EVENT_RING_SIZE(txrx) \
|
||||
__QDF_IPA_WDI_SETUP_INFO_EVENT_RING_SIZE(txrx)
|
||||
#define QDF_IPA_WDI_SETUP_INFO_EVENT_RING_DOORBELL_PA(txrx) \
|
||||
__QDF_IPA_WDI_SETUP_INFO_EVENT_RING_DOORBELL_PA(txrx)
|
||||
#define QDF_IPA_WDI_SETUP_INFO_IS_EVT_RN_DB_PCIE_ADDR(txrx) \
|
||||
__QDF_IPA_WDI_SETUP_INFO_IS_EVT_RN_DB_PCIE_ADDR(txrx)
|
||||
#define QDF_IPA_WDI_SETUP_INFO_NUM_PKT_BUFFERS(txrx) \
|
||||
__QDF_IPA_WDI_SETUP_INFO_NUM_PKT_BUFFERS(txrx)
|
||||
#define QDF_IPA_WDI_SETUP_INFO_PKT_OFFSET(txrx) \
|
||||
|
@@ -135,12 +135,16 @@ typedef struct ipa_wdi_pipe_setup_info __qdf_ipa_wdi_pipe_setup_info_t;
|
||||
(((struct ipa_wdi_pipe_setup_info *)(txrx))->transfer_ring_size)
|
||||
#define __QDF_IPA_WDI_SETUP_INFO_TRANSFER_RING_DOORBELL_PA(txrx) \
|
||||
(((struct ipa_wdi_pipe_setup_info *)(txrx))->transfer_ring_doorbell_pa)
|
||||
#define __QDF_IPA_WDI_SETUP_INFO_IS_TXR_RN_DB_PCIE_ADDR(txrx) \
|
||||
(((struct ipa_wdi_pipe_setup_info *)(txrx))->is_txr_rn_db_pcie_addr)
|
||||
#define __QDF_IPA_WDI_SETUP_INFO_EVENT_RING_BASE_PA(txrx) \
|
||||
(((struct ipa_wdi_pipe_setup_info *)(txrx))->event_ring_base_pa)
|
||||
#define __QDF_IPA_WDI_SETUP_INFO_EVENT_RING_SIZE(txrx) \
|
||||
(((struct ipa_wdi_pipe_setup_info *)(txrx))->event_ring_size)
|
||||
#define __QDF_IPA_WDI_SETUP_INFO_EVENT_RING_DOORBELL_PA(txrx) \
|
||||
(((struct ipa_wdi_pipe_setup_info *)(txrx))->event_ring_doorbell_pa)
|
||||
#define __QDF_IPA_WDI_SETUP_INFO_IS_EVT_RN_DB_PCIE_ADDR(txrx) \
|
||||
(((struct ipa_wdi_pipe_setup_info *)(txrx))->is_evt_rn_db_pcie_addr)
|
||||
#define __QDF_IPA_WDI_SETUP_INFO_NUM_PKT_BUFFERS(txrx) \
|
||||
(((struct ipa_wdi_pipe_setup_info *)(txrx))->num_pkt_buffers)
|
||||
#define __QDF_IPA_WDI_SETUP_INFO_PKT_OFFSET(txrx) \
|
||||
@@ -164,12 +168,18 @@ typedef struct ipa_wdi_pipe_setup_info_smmu __qdf_ipa_wdi_pipe_setup_info_smmu_t
|
||||
(((struct ipa_wdi_pipe_setup_info_smmu *)(txrx))->transfer_ring_size)
|
||||
#define __QDF_IPA_WDI_SETUP_INFO_SMMU_TRANSFER_RING_DOORBELL_PA(txrx) \
|
||||
(((struct ipa_wdi_pipe_setup_info_smmu *)(txrx))->transfer_ring_doorbell_pa)
|
||||
#define __QDF_IPA_WDI_SETUP_INFO_SMMU_IS_TXR_RN_DB_PCIE_ADDR(txrx) \
|
||||
(((struct ipa_wdi_pipe_setup_info_smmu *) \
|
||||
(txrx))->is_txr_rn_db_pcie_addr)
|
||||
#define __QDF_IPA_WDI_SETUP_INFO_SMMU_EVENT_RING_BASE(txrx) \
|
||||
(((struct ipa_wdi_pipe_setup_info_smmu *)(txrx))->event_ring_base)
|
||||
#define __QDF_IPA_WDI_SETUP_INFO_SMMU_EVENT_RING_SIZE(txrx) \
|
||||
(((struct ipa_wdi_pipe_setup_info_smmu *)(txrx))->event_ring_size)
|
||||
#define __QDF_IPA_WDI_SETUP_INFO_SMMU_EVENT_RING_DOORBELL_PA(txrx) \
|
||||
(((struct ipa_wdi_pipe_setup_info_smmu *)(txrx))->event_ring_doorbell_pa)
|
||||
#define __QDF_IPA_WDI_SETUP_INFO_SMMU_IS_EVT_RN_DB_PCIE_ADDR(txrx) \
|
||||
(((struct ipa_wdi_pipe_setup_info_smmu *) \
|
||||
(txrx))->is_evt_rn_db_pcie_addr)
|
||||
#define __QDF_IPA_WDI_SETUP_INFO_SMMU_NUM_PKT_BUFFERS(txrx) \
|
||||
(((struct ipa_wdi_pipe_setup_info_smmu *)(txrx))->num_pkt_buffers)
|
||||
#define __QDF_IPA_WDI_SETUP_INFO_SMMU_PKT_OFFSET(txrx) \
|
||||
|
Reference in New Issue
Block a user