qcacld-3.0: Add Driver Synchronization Core (enablement)

The Driver Synchronization Core (DSC) is a set of synchronization
primitives for use by the driver's orchestration layer. It provides APIs
for ensuring safe state transitions (including bring up and tear down)
of major driver objects: a single driver, associated psocs, and their
associated vdevs.

APIs are divided into two categories: mutual exclusion of conflicting
transitions, and operation tracking, blocking, and waiting capabilities.

For part 6, enable the DSC component.

Change-Id: I0ac37f479a4a38e346fb91ad041a4f51ccc6c879
CRs-Fixed: 2290260
Cette révision appartient à :
Dustin Brown
2018-07-06 14:32:53 -07:00
révisé par nshrivas
Parent 6661df3104
révision 6099ddc417
3 fichiers modifiés avec 36 ajouts et 2 suppressions

29
Kbuild
Voir le fichier

@@ -166,6 +166,30 @@ ifeq ($(CONFIG_WLAN_FEATURE_PACKET_FILTERING), y)
HDD_OBJS += $(HDD_SRC_DIR)/wlan_hdd_packet_filter.o
endif
########### Driver Synchronization Core (DSC) ###########
DSC_DIR := components/dsc
DSC_INC_DIR := $(DSC_DIR)/inc
DSC_SRC_DIR := $(DSC_DIR)/src
DSC_TEST_DIR := $(DSC_DIR)/test
DSC_INC := \
-I$(WLAN_ROOT)/$(DSC_INC_DIR) \
-I$(WLAN_ROOT)/$(DSC_SRC_DIR) \
-I$(WLAN_ROOT)/$(DSC_TEST_DIR)
DSC_OBJS := \
$(DSC_SRC_DIR)/__wlan_dsc.o \
$(DSC_SRC_DIR)/wlan_dsc_driver.o \
$(DSC_SRC_DIR)/wlan_dsc_psoc.o \
$(DSC_SRC_DIR)/wlan_dsc_vdev.o
ifeq ($(CONFIG_DSC_TEST), y)
DSC_OBJS += $(DSC_TEST_DIR)/wlan_dsc_test.o
endif
cppflags-$(CONFIG_DSC_DEBUG) += -DWLAN_DSC_DEBUG
cppflags-$(CONFIG_DSC_TEST) += -DWLAN_DSC_TEST
########### HOST DIAG LOG ###########
HOST_DIAG_LOG_DIR := $(WLAN_COMMON_ROOT)/utils/host_diag_log
@@ -188,8 +212,7 @@ EPPING_OBJS := $(EPPING_SRC_DIR)/epping_main.o \
$(EPPING_SRC_DIR)/epping_txrx.o \
$(EPPING_SRC_DIR)/epping_tx.o \
$(EPPING_SRC_DIR)/epping_rx.o \
$(EPPING_SRC_DIR)/epping_helper.o \
$(EPPING_SRC_DIR)/epping_helper.o
############ MAC ############
MAC_DIR := core/mac
@@ -1425,6 +1448,7 @@ endif
LINUX_INC := -Iinclude
INCS := $(HDD_INC) \
$(DSC_INC) \
$(EPPING_INC) \
$(LINUX_INC) \
$(MAC_INC) \
@@ -1519,6 +1543,7 @@ INCS += $(UMAC_SPECTRAL_INC)
INCS += $(UMAC_TARGET_SPECTRAL_INC)
OBJS := $(HDD_OBJS) \
$(DSC_OBJS) \
$(MAC_OBJS) \
$(SAP_OBJS) \
$(SME_OBJS) \

Voir le fichier

@@ -576,11 +576,16 @@ CONFIG_RX_OL := y
endif
ifeq ($(CONFIG_SLUB_DEBUG_ON), y)
CONFIG_DSC_DEBUG := y
CONFIG_FEATURE_UNIT_TEST_SUSPEND := y
CONFIG_LEAK_DETECTION := y
CONFIG_UNIT_TEST := y
endif
ifeq ($(CONFIG_UNIT_TEST), y)
CONFIG_DSC_TEST := y
endif
# enable unit-test suspend for napier builds
ifeq ($(CONFIG_LITHIUM), y)
CONFIG_FEATURE_UNIT_TEST_SUSPEND := y

Voir le fichier

@@ -92,6 +92,7 @@
#include "os_if_wifi_pos.h"
#include <cdp_txrx_stats.h>
#include <cds_api.h>
#include "wlan_dsc_test.h"
#include <wlan_osif_priv.h>
#include "wlan_hdd_regulatory.h"
#include "wlan_reg_ucfg_api.h"
@@ -5314,6 +5315,9 @@ static int hdd_we_unit_test(struct hdd_context *hdd_ctx, const char *component)
else
hdd_info("Starting unit tests for component '%s'", component);
if (all || qdf_str_eq(component, "dsc"))
errors += dsc_unit_test();
/* add future tests here */
if (errors) {