Эх сурвалжийг харах

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 жил өмнө
parent
commit
f41ac5e8ca

+ 3 - 5
core/Android.mk

@@ -1,9 +1,5 @@
 ifneq ($(TARGET_BOARD_PLATFORM),qssi)
 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)
 ifeq ($(call is-board-platform-in-list, $(RMNET_CORE_DLKM_PLATFORMS_LIST)),true)
 #Make file to create RMNET_CORE DLKM
 #Make file to create RMNET_CORE DLKM
@@ -15,6 +11,7 @@ LOCAL_CLANG :=true
 LOCAL_MODULE_PATH := $(KERNEL_MODULES_OUT)
 LOCAL_MODULE_PATH := $(KERNEL_MODULES_OUT)
 LOCAL_MODULE := rmnet_core.ko
 LOCAL_MODULE := rmnet_core.ko
 LOCAL_SRC_FILES   := $(wildcard $(LOCAL_PATH)/**/*) $(wildcard $(LOCAL_PATH)/*)
 LOCAL_SRC_FILES   := $(wildcard $(LOCAL_PATH)/**/*) $(wildcard $(LOCAL_PATH)/*)
+KBUILD_REQUIRED_KOS := ipam.ko
 DLKM_DIR := $(TOP)/device/qcom/common/dlkm
 DLKM_DIR := $(TOP)/device/qcom/common/dlkm
 $(warning $(DLKM_DIR))
 $(warning $(DLKM_DIR))
 include $(DLKM_DIR)/Build_external_kernelmodule.mk
 include $(DLKM_DIR)/Build_external_kernelmodule.mk
@@ -27,6 +24,7 @@ LOCAL_CLANG :=true
 LOCAL_MODULE_PATH := $(KERNEL_MODULES_OUT)
 LOCAL_MODULE_PATH := $(KERNEL_MODULES_OUT)
 LOCAL_MODULE := rmnet_ctl.ko
 LOCAL_MODULE := rmnet_ctl.ko
 LOCAL_SRC_FILES   := $(wildcard $(LOCAL_PATH)/**/*) $(wildcard $(LOCAL_PATH)/*)
 LOCAL_SRC_FILES   := $(wildcard $(LOCAL_PATH)/**/*) $(wildcard $(LOCAL_PATH)/*)
+KBUILD_REQUIRED_KOS := ipam.ko
 DLKM_DIR := $(TOP)/device/qcom/common/dlkm
 DLKM_DIR := $(TOP)/device/qcom/common/dlkm
 $(warning $(DLKM_DIR))
 $(warning $(DLKM_DIR))
 include $(DLKM_DIR)/Build_external_kernelmodule.mk
 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
 ccflags-y	+= -DRMNET_LA_PLATFORM
 endif
 endif
 
 
-ifeq ($(CONFIG_ARCH_SDXNIGHTJAR), y)
-ccflags-y	+= -DRMNET_TRACE_INCLUDE_LE
-endif
-
 obj-m += rmnet_core.o
 obj-m += rmnet_core.o
 
 
 #core sources
 #core sources
@@ -32,7 +28,7 @@ rmnet_core-y += \
 	rmnet_qmap.o \
 	rmnet_qmap.o \
 	rmnet_ll_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
 obj-m += rmnet_ctl.o
 rmnet_ctl-y := \
 rmnet_ctl-y := \
 	rmnet_ctl_client.o \
 	rmnet_ctl_client.o \

+ 1 - 1
core/Makefile

@@ -29,7 +29,7 @@ rmnet_core-y += 	rmnet_config.o \
 			rmnet_qmap.o \
 			rmnet_qmap.o \
 			rmnet_ll_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-y += 		rmnet_ctl_client.o \
 			rmnet_ctl_ipa.o \
 			rmnet_ctl_ipa.o \
 			rmnet_ctl_mhi.o
 			rmnet_ctl_mhi.o

+ 1 - 3
core/dfc.h

@@ -23,10 +23,8 @@
 	#endif
 	#endif
 #elif defined(__arch_um__)
 #elif defined(__arch_um__)
 	#define TRACE_INCLUDE_PATH ../../datarmnet/core
 	#define TRACE_INCLUDE_PATH ../../datarmnet/core
-#elif defined(RMNET_TRACE_INCLUDE_LE)
-	#define TRACE_INCLUDE_PATH ../../../../../../../datarmnet/core
 #else
 #else
-	#define TRACE_INCLUDE_PATH ../../../../../../../src/datarmnet/core
+	#define TRACE_INCLUDE_PATH ../../../../../../../datarmnet/core
 #endif /* defined(RMNET_LA_PLATFORM) */
 #endif /* defined(RMNET_LA_PLATFORM) */
 
 
 #define TRACE_INCLUDE_FILE dfc
 #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);
 				RMNET_CTL_LOG_NAME, NULL);
 
 
 		if (!IS_ERR_OR_NULL(ctl_ep.dbgfs_dir))
 		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,
 			debugfs_create_u8((const char *) RMNET_CTL_LOG_LVL,
 					  (umode_t) 0644,
 					  (umode_t) 0644,
 					  (struct dentry *) ctl_ep.dbgfs_dir,
 					  (struct dentry *) ctl_ep.dbgfs_dir,
 					  (u8 *) &ipc_log_lvl);
 					  (u8 *) &ipc_log_lvl);
-#endif
-
 
 
 		if (!ctl_ep.ipc_log)
 		if (!ctl_ep.ipc_log)
 			ctl_ep.ipc_log = ipc_log_context_create(
 			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;
 	dev = skb->dev;
 	port = rmnet_get_port(dev);
 	port = rmnet_get_port(dev);
 	if (unlikely(!port)) {
 	if (unlikely(!port)) {
-		atomic_long_inc(&skb->dev->rx_nohandler);
+		dev_core_stats_rx_nohandler_inc(skb->dev);
 		kfree_skb(skb);
 		kfree_skb(skb);
 		goto done;
 		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;
 static struct sk_buff_head tx_pending_list;
 extern spinlock_t rmnet_ll_tx_lock;
 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);
 static void rmnet_ll_ipa_tx_pending(struct tasklet_struct *t);
 DECLARE_TASKLET(tx_pending_task, rmnet_ll_ipa_tx_pending);
 DECLARE_TASKLET(tx_pending_task, rmnet_ll_ipa_tx_pending);
 static void rmnet_ll_ipa_tx_pending(struct tasklet_struct *t)
 static void rmnet_ll_ipa_tx_pending(struct tasklet_struct *t)
-#endif
 {
 {
 	struct rmnet_ll_stats *stats = rmnet_ll_get_stats();
 	struct rmnet_ll_stats *stats = rmnet_ll_get_stats();
 	struct sk_buff *skb;
 	struct sk_buff *skb;

+ 6 - 12
core/rmnet_trace.h

@@ -7,19 +7,13 @@
 #define TRACE_SYSTEM rmnet
 #define TRACE_SYSTEM rmnet
 #undef TRACE_INCLUDE_PATH
 #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
 #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
 #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->netdev_ops = &rmnet_vnd_ops;
 	rmnet_dev->mtu = RMNET_DFLT_PACKET_SIZE;
 	rmnet_dev->mtu = RMNET_DFLT_PACKET_SIZE;
 	rmnet_dev->needed_headroom = RMNET_NEEDED_HEADROOM;
 	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;
 	rmnet_dev->tx_queue_len = RMNET_TX_QUEUE_LEN;
 
 
 	/* Raw IP mode */
 	/* Raw IP mode */
@@ -804,5 +804,5 @@ void rmnet_vnd_reset_mac_addr(struct net_device *dev)
 	if (dev->netdev_ops != &rmnet_vnd_ops)
 	if (dev->netdev_ops != &rmnet_vnd_ops)
 		return;
 		return;
 
 
-	random_ether_addr(dev->perm_addr);
+	eth_hw_addr_random(dev);
 }
 }

+ 1 - 3
core/wda.h

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

+ 1 - 5
datarmnet_dlkm_vendor_board.mk

@@ -10,11 +10,7 @@ endif
 
 
 ifeq ($(TARGET_DATARMNET_ENABLE), true)
 ifeq ($(TARGET_DATARMNET_ENABLE), true)
 	#Build rmnet core
 	#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)
 	ifneq ($(TARGET_BOARD_AUTO),true)
 		ifeq ($(call is-board-platform-in-list,$(DATA_DLKM_BOARD_PLATFORMS_LIST)),true)
 		ifeq ($(call is-board-platform-in-list,$(DATA_DLKM_BOARD_PLATFORMS_LIST)),true)