diff --git a/dp/wifi3.0/dp_ipa.c b/dp/wifi3.0/dp_ipa.c index b9090d82a364..73cfe998f2a1 100644 --- a/dp/wifi3.0/dp_ipa.c +++ b/dp/wifi3.0/dp_ipa.c @@ -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; diff --git a/qdf/inc/qdf_ipa_wdi3.h b/qdf/inc/qdf_ipa_wdi3.h index ea400bf49e69..004f8e7d7e50 100644 --- a/qdf/inc/qdf_ipa_wdi3.h +++ b/qdf/inc/qdf_ipa_wdi3.h @@ -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) \ diff --git a/qdf/linux/src/i_qdf_ipa_wdi3.h b/qdf/linux/src/i_qdf_ipa_wdi3.h index 7eacd37a5989..fa3758aa2a61 100644 --- a/qdf/linux/src/i_qdf_ipa_wdi3.h +++ b/qdf/linux/src/i_qdf_ipa_wdi3.h @@ -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) \