Переглянути джерело

core: Enable drivers for pineapple

Enable rmnet core and ctl drivers and update the kernel APIs to match
the appropriate kernel.

This change also adds support for the inclusion of the IPA kernel
headers from a non-core kernel location. This is achieved using the
flag KBUILD_REQUIRED_KOS.

Additionally, remove all deprecated code.

CRs-Fixed: 3311558
Change-Id: I9317f53ca8b1a370b6a5eb86734057399aee1d48
Signed-off-by: Subash Abhinov Kasiviswanathan <[email protected]>
Subash Abhinov Kasiviswanathan 3 роки тому
батько
коміт
f41ac5e8ca

+ 3 - 5
core/Android.mk

@@ -1,9 +1,5 @@
 ifneq ($(TARGET_BOARD_PLATFORM),qssi)
-RMNET_CORE_DLKM_PLATFORMS_LIST := lahaina
-RMNET_CORE_DLKM_PLATFORMS_LIST += taro
-RMNET_CORE_DLKM_PLATFORMS_LIST += sa2150p
-RMNET_CORE_DLKM_PLATFORMS_LIST += kalama
-RMNET_CORE_DLKM_PLATFORMS_LIST += bengal
+RMNET_CORE_DLKM_PLATFORMS_LIST := pineapple
 
 ifeq ($(call is-board-platform-in-list, $(RMNET_CORE_DLKM_PLATFORMS_LIST)),true)
 #Make file to create RMNET_CORE DLKM
@@ -15,6 +11,7 @@ LOCAL_CLANG :=true
 LOCAL_MODULE_PATH := $(KERNEL_MODULES_OUT)
 LOCAL_MODULE := rmnet_core.ko
 LOCAL_SRC_FILES   := $(wildcard $(LOCAL_PATH)/**/*) $(wildcard $(LOCAL_PATH)/*)
+KBUILD_REQUIRED_KOS := ipam.ko
 DLKM_DIR := $(TOP)/device/qcom/common/dlkm
 $(warning $(DLKM_DIR))
 include $(DLKM_DIR)/Build_external_kernelmodule.mk
@@ -27,6 +24,7 @@ LOCAL_CLANG :=true
 LOCAL_MODULE_PATH := $(KERNEL_MODULES_OUT)
 LOCAL_MODULE := rmnet_ctl.ko
 LOCAL_SRC_FILES   := $(wildcard $(LOCAL_PATH)/**/*) $(wildcard $(LOCAL_PATH)/*)
+KBUILD_REQUIRED_KOS := ipam.ko
 DLKM_DIR := $(TOP)/device/qcom/common/dlkm
 $(warning $(DLKM_DIR))
 include $(DLKM_DIR)/Build_external_kernelmodule.mk

+ 2 - 6
core/Kbuild

@@ -1,11 +1,7 @@
-ifneq (, $(filter y, $(CONFIG_ARCH_LAHAINA) $(CONFIG_ARCH_WAIPIO) $(CONFIG_ARCH_KALAMA) $(CONFIG_ARCH_KHAJE)))
+ifneq (, $(filter y, $(CONFIG_ARCH_PINEAPPLE)))
 ccflags-y	+= -DRMNET_LA_PLATFORM
 endif
 
-ifeq ($(CONFIG_ARCH_SDXNIGHTJAR), y)
-ccflags-y	+= -DRMNET_TRACE_INCLUDE_LE
-endif
-
 obj-m += rmnet_core.o
 
 #core sources
@@ -32,7 +28,7 @@ rmnet_core-y += \
 	rmnet_qmap.o \
 	rmnet_ll_qmap.o
 
-ifneq (, $(filter y, $(CONFIG_ARCH_LAHAINA) $(CONFIG_ARCH_WAIPIO) $(CONFIG_ARCH_KALAMA) $(CONFIG_ARCH_KHAJE)))
+ifneq (, $(filter y, $(CONFIG_ARCH_PINEAPPLE)))
 obj-m += rmnet_ctl.o
 rmnet_ctl-y := \
 	rmnet_ctl_client.o \

+ 1 - 1
core/Makefile

@@ -29,7 +29,7 @@ rmnet_core-y += 	rmnet_config.o \
 			rmnet_qmap.o \
 			rmnet_ll_qmap.o
 
-ifneq (, $(filter y, $(CONFIG_ARCH_LAHAINA) $(CONFIG_ARCH_WAIPIO) $(CONFIG_ARCH_KALAMA)))
+ifneq (, $(filter y, $(CONFIG_ARCH_PINEAPPLE)))
 rmnet_ctl-y += 		rmnet_ctl_client.o \
 			rmnet_ctl_ipa.o \
 			rmnet_ctl_mhi.o

+ 1 - 3
core/dfc.h

@@ -23,10 +23,8 @@
 	#endif
 #elif defined(__arch_um__)
 	#define TRACE_INCLUDE_PATH ../../datarmnet/core
-#elif defined(RMNET_TRACE_INCLUDE_LE)
-	#define TRACE_INCLUDE_PATH ../../../../../../../datarmnet/core
 #else
-	#define TRACE_INCLUDE_PATH ../../../../../../../src/datarmnet/core
+	#define TRACE_INCLUDE_PATH ../../../../../../../datarmnet/core
 #endif /* defined(RMNET_LA_PLATFORM) */
 
 #define TRACE_INCLUDE_FILE dfc

+ 0 - 7
core/rmnet_ctl_client.c

@@ -49,17 +49,10 @@ void rmnet_ctl_set_dbgfs(bool enable)
 				RMNET_CTL_LOG_NAME, NULL);
 
 		if (!IS_ERR_OR_NULL(ctl_ep.dbgfs_dir))
-#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 9, 0)
-			ctl_ep.dbgfs_loglvl = debugfs_create_u8(
-				RMNET_CTL_LOG_LVL, 0644, ctl_ep.dbgfs_dir,
-				&ipc_log_lvl);
-#else
 			debugfs_create_u8((const char *) RMNET_CTL_LOG_LVL,
 					  (umode_t) 0644,
 					  (struct dentry *) ctl_ep.dbgfs_dir,
 					  (u8 *) &ipc_log_lvl);
-#endif
-
 
 		if (!ctl_ep.ipc_log)
 			ctl_ep.ipc_log = ipc_log_context_create(

+ 1 - 1
core/rmnet_handlers.c

@@ -445,7 +445,7 @@ rx_handler_result_t rmnet_rx_handler(struct sk_buff **pskb)
 	dev = skb->dev;
 	port = rmnet_get_port(dev);
 	if (unlikely(!port)) {
-		atomic_long_inc(&skb->dev->rx_nohandler);
+		dev_core_stats_rx_nohandler_inc(skb->dev);
 		kfree_skb(skb);
 		goto done;
 	}

+ 0 - 6
core/rmnet_ll_ipa.c

@@ -34,15 +34,9 @@ static struct rmnet_ll_endpoint *rmnet_ll_ipa_ep;
 static struct sk_buff_head tx_pending_list;
 extern spinlock_t rmnet_ll_tx_lock;
 
-#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 9, 0)
-static void rmnet_ll_ipa_tx_pending(unsigned long data);
-DECLARE_TASKLET(tx_pending_task, rmnet_ll_ipa_tx_pending, 0);
-static void rmnet_ll_ipa_tx_pending(unsigned long data)
-#else
 static void rmnet_ll_ipa_tx_pending(struct tasklet_struct *t);
 DECLARE_TASKLET(tx_pending_task, rmnet_ll_ipa_tx_pending);
 static void rmnet_ll_ipa_tx_pending(struct tasklet_struct *t)
-#endif
 {
 	struct rmnet_ll_stats *stats = rmnet_ll_get_stats();
 	struct sk_buff *skb;

+ 6 - 12
core/rmnet_trace.h

@@ -7,19 +7,13 @@
 #define TRACE_SYSTEM rmnet
 #undef TRACE_INCLUDE_PATH
 
-#if LINUX_VERSION_CODE < KERNEL_VERSION(5,5,0)
-	#ifdef CONFIG_ARCH_SDXNIGHTJAR
-		#define TRACE_INCLUDE_PATH ../../../../../../../datarmnet/core
-	#else
-		#define TRACE_INCLUDE_PATH ../../../../../../../src/datarmnet/core
-	#endif /* CONFIG_ARCH_SDXNIGHTJAR */
+#if defined(RMNET_LA_PLATFORM)
+	#define TRACE_INCLUDE_PATH ../../../../vendor/qcom/opensource/datarmnet/core
+#elif defined(__arch_um__)
+	#define TRACE_INCLUDE_PATH ../../datarmnet/core
 #else
-	#if defined(__arch_um__)
-		#define TRACE_INCLUDE_PATH ../../../../datarmnet/core
-	#else
-		#define TRACE_INCLUDE_PATH ../../../../vendor/qcom/opensource/datarmnet/core
-	#endif /* defined(__arch_um__) */
-#endif /* endif LINUX_VERSION_CODE < KERNEL_VERSION(5,5,0) */
+	#define TRACE_INCLUDE_PATH ../../../../../../../datarmnet/core
+#endif /* defined(RMNET_LA_PLATFORM) */
 
 #define TRACE_INCLUDE_FILE rmnet_trace
 

+ 2 - 2
core/rmnet_vnd.c

@@ -707,7 +707,7 @@ void rmnet_vnd_setup(struct net_device *rmnet_dev)
 	rmnet_dev->netdev_ops = &rmnet_vnd_ops;
 	rmnet_dev->mtu = RMNET_DFLT_PACKET_SIZE;
 	rmnet_dev->needed_headroom = RMNET_NEEDED_HEADROOM;
-	random_ether_addr(rmnet_dev->perm_addr);
+	eth_hw_addr_random(rmnet_dev);
 	rmnet_dev->tx_queue_len = RMNET_TX_QUEUE_LEN;
 
 	/* Raw IP mode */
@@ -804,5 +804,5 @@ void rmnet_vnd_reset_mac_addr(struct net_device *dev)
 	if (dev->netdev_ops != &rmnet_vnd_ops)
 		return;
 
-	random_ether_addr(dev->perm_addr);
+	eth_hw_addr_random(dev);
 }

+ 1 - 3
core/wda.h

@@ -15,10 +15,8 @@
 	#endif
 #elif defined(__arch_um__)
 	#define TRACE_INCLUDE_PATH ../../datarmnet/core
-#elif defined(RMNET_TRACE_INCLUDE_LE)
-	#define TRACE_INCLUDE_PATH ../../../../../../../datarmnet/core
 #else
-	#define TRACE_INCLUDE_PATH ../../../../../../../src/datarmnet/core
+	#define TRACE_INCLUDE_PATH ../../../../../../../datarmnet/core
 #endif /* defined(RMNET_LA_PLATFORM) */
 
 #define TRACE_INCLUDE_FILE wda

+ 1 - 5
datarmnet_dlkm_vendor_board.mk

@@ -10,11 +10,7 @@ endif
 
 ifeq ($(TARGET_DATARMNET_ENABLE), true)
 	#Build rmnet core
-	DATA_DLKM_BOARD_PLATFORMS_LIST := lahaina
-	DATA_DLKM_BOARD_PLATFORMS_LIST += taro
-	DATA_DLKM_BOARD_PLATFORMS_LIST += sa2150p
-	DATA_DLKM_BOARD_PLATFORMS_LIST += kalama
-	DATA_DLKM_BOARD_PLATFORMS_LIST += bengal
+	DATA_DLKM_BOARD_PLATFORMS_LIST := pineapple
 
 	ifneq ($(TARGET_BOARD_AUTO),true)
 		ifeq ($(call is-board-platform-in-list,$(DATA_DLKM_BOARD_PLATFORMS_LIST)),true)