qcacld-3.0: Register target if ops for DP control ops

As part of DP-CP interaction convergence register common
converged target if ops for DP control ops.

Change-Id: Ifbe5d20e32262782016c3b0c20a7d2e149a071c3
CRs-fixed: 2273037
This commit is contained in:
Sravan Kumar Kairam
2018-05-30 22:14:50 +05:30
committed by nshrivas
parent a1ea7c5d2b
commit b8bdf522fc
4 changed files with 18 additions and 76 deletions

7
Kbuild
View File

@@ -941,8 +941,10 @@ endif
ifeq ($(CONFIG_LITHIUM), y)
############ DP 3.0 ############
DP_TARGET_INC_DIR := $(WLAN_COMMON_ROOT)/target_if/dp/inc
DP_INC := -I$(WLAN_COMMON_ROOT)/dp/inc \
-I$(WLAN_COMMON_ROOT)/dp/wifi3.0
-I$(WLAN_COMMON_ROOT)/dp/wifi3.0 \
-I$(WLAN_ROOT)/$(DP_TARGET_INC_DIR)
DP_SRC := $(WLAN_COMMON_ROOT)/dp/wifi3.0
DP_OBJS := $(DP_SRC)/dp_main.o \
@@ -957,7 +959,8 @@ DP_OBJS := $(DP_SRC)/dp_main.o \
$(DP_SRC)/dp_rx_mon_dest.o \
$(DP_SRC)/dp_rx_mon_status.o \
$(DP_SRC)/dp_rx_defrag.o \
$(DP_SRC)/dp_stats.o
$(DP_SRC)/dp_stats.o \
$(WLAN_COMMON_ROOT)/target_if/dp/src/target_if_dp.o
ifeq ($(CONFIG_WLAN_TX_FLOW_CONTROL_V2), y)
DP_OBJS += $(DP_SRC)/dp_tx_flow_control.o
endif

View File

@@ -64,6 +64,11 @@
#include <asm/dma-iommu.h>
#include <linux/iommu.h>
#endif
#ifdef QCA_WIFI_QCA8074
#include <target_if_dp.h>
#endif
/* Preprocessor Definitions and Constants */
/* Preprocessor Definitions and Constants */
@@ -75,15 +80,19 @@ static struct __qdf_device g_qdf_ctx;
static uint8_t cds_multicast_logging;
#ifdef QCA_WIFI_QCA8074
static struct ol_if_ops dp_ol_if_ops = {
.peer_set_default_routing = wma_peer_set_default_routing,
.peer_rx_reorder_queue_setup = wma_peer_rx_reorder_queue_setup,
.peer_rx_reorder_queue_remove = wma_peer_rx_reorder_queue_remove,
.peer_set_default_routing = target_if_peer_set_default_routing,
.peer_rx_reorder_queue_setup = target_if_peer_rx_reorder_queue_setup,
.peer_rx_reorder_queue_remove = target_if_peer_rx_reorder_queue_remove,
.is_hw_dbs_2x2_capable = policy_mgr_is_hw_dbs_2x2_capable,
.lro_hash_config = wma_lro_config_cmd,
.lro_hash_config = target_if_lro_hash_config,
.rx_mic_error = wma_rx_mic_error_ind
/* TODO: Add any other control path calls required to OL_IF/WMA layer */
};
#else
static struct ol_if_ops dp_ol_if_ops;
#endif
static void cds_trigger_recovery_work(void *param);

View File

@@ -2290,13 +2290,6 @@ void wma_register_packetdump_callback(
void wma_deregister_packetdump_callback(void);
void wma_update_sta_inactivity_timeout(tp_wma_handle wma,
struct sme_sta_inactivity_timeout *sta_inactivity_timer);
void wma_peer_set_default_routing(void *scn_handle, uint8_t *peer_macaddr,
uint8_t vdev_id, bool hash_based, uint8_t ring_num);
int wma_peer_rx_reorder_queue_setup(void *scn_handle,
uint8_t vdev_id, uint8_t *peer_macaddr, qdf_dma_addr_t hw_qdesc,
int tid, uint16_t queue_no);
int wma_peer_rx_reorder_queue_remove(void *scn_handle,
uint8_t vdev_id, uint8_t *peer_macaddr, uint32_t peer_tid_bitmap);
/**
* wma_form_rx_packet() - form rx cds packet

View File

@@ -8840,69 +8840,6 @@ int wma_lro_init(struct cdp_lro_hash_config *lro_config)
}
#endif
void wma_peer_set_default_routing(void *scn_handle, uint8_t *peer_macaddr,
uint8_t vdev_id, bool hash_based, uint8_t ring_num)
{
tp_wma_handle wma = cds_get_context(QDF_MODULE_ID_WMA);
struct peer_set_params param;
if (!wma) {
WMA_LOGE("%s:wma_handle is NULL", __func__);
return;
}
/* TODO: Need bit definitions for ring number and hash based routing
* fields in common wmi header file
*/
param.param_id = WMI_HOST_PEER_SET_DEFAULT_ROUTING;
param.vdev_id = vdev_id;
param.param_value = ((hash_based) ? 1 : 0) | (ring_num << 1);
WMA_LOGD("%s: param_value 0x%x", __func__, param.param_value);
wmi_set_peer_param_send(wma->wmi_handle, peer_macaddr, &param);
}
int wma_peer_rx_reorder_queue_setup(void *scn_handle,
uint8_t vdev_id, uint8_t *peer_macaddr, qdf_dma_addr_t hw_qdesc,
int tid, uint16_t queue_no)
{
tp_wma_handle wma = cds_get_context(QDF_MODULE_ID_WMA);
struct rx_reorder_queue_setup_params param;
if (!wma) {
WMA_LOGE("%s:wma_handle is NULL", __func__);
return QDF_STATUS_E_FAILURE;
}
param.tid = tid;
param.vdev_id = vdev_id;
param.peer_macaddr = peer_macaddr;
param.hw_qdesc_paddr_lo = hw_qdesc & 0xffffffff;
param.hw_qdesc_paddr_hi = (uint64_t)hw_qdesc >> 32;
param.queue_no = queue_no;
return wmi_unified_peer_rx_reorder_queue_setup_send(wma->wmi_handle,
&param);
}
int wma_peer_rx_reorder_queue_remove(void *scn_handle,
uint8_t vdev_id, uint8_t *peer_macaddr, uint32_t peer_tid_bitmap)
{
tp_wma_handle wma = cds_get_context(QDF_MODULE_ID_WMA);
struct rx_reorder_queue_remove_params param;
if (!wma) {
WMA_LOGE("%s:wma_handle is NULL", __func__);
return QDF_STATUS_E_FAILURE;
}
param.vdev_id = vdev_id;
param.peer_macaddr = peer_macaddr;
param.peer_tid_bitmap = peer_tid_bitmap;
return wmi_unified_peer_rx_reorder_queue_remove_send(wma->wmi_handle,
&param);
}
QDF_STATUS wma_configure_smps_params(uint32_t vdev_id, uint32_t param_id,
uint32_t param_val)
{