Specify the dependency of the synaptics touchscreen modules.

(1) When all the modules are in a Kbuild file, there will be some errors
that the exported symbols are undefined. Therefore the files with
dependencies are split into independent Kbuilds, and the dependencies
between the modules and the location of Module.symvers are clearly
specified.
(2) The synaptics_i2c and syanptics_spi modules have the same symbol
table, so we should use BOARD_VENDOR_KERNEL_MODULES to determine
which module to compile.

Change-Id: I0e02d23562d0b52a20fdfd53d3db085cfffb811b
Reviewed-on: https://gerrit.mot.com/1718101
SLTApproved: Slta Waiver
SME-Granted: SME Approvals Granted
Tested-by: Jira Key
Reviewed-by: Jichao Zou <zoujc@motorola.com>
Submit-Approved: Jira Key
This commit is contained in:
litong 2020-08-24 14:27:59 +08:00 • committed by litong20
commit 610b9f510c
21 changed files with 97 additions and 34 deletions

View file

@ -0,0 +1,20 @@
DLKM_DIR := motorola/kernel/modules
LOCAL_PATH := $(call my-dir)
ifeq ($(DLKM_INSTALL_TO_VENDOR_OUT),true)
SYNA_TCM_MODULE_PATH := $(TARGET_OUT_VENDOR)/lib/modules/
else
SYNA_TCM_MODULE_PATH := $(KERNEL_MODULES_OUT)
endif
include $(CLEAR_VARS)
ifneq ($(findstring synaptics_i2c.ko,$(BOARD_VENDOR_KERNEL_MODULES)),)
KERNEL_CFLAGS += USE_TOUCHSCREEN_MMI_I2C=y
LOCAL_MODULE := synaptics_i2c.ko
else
LOCAL_MODULE := synaptics_spi.ko
endif
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_PATH := $(SYNA_TCM_MODULE_PATH)
include $(DLKM_DIR)/AndroidKernelModule.mk

View file

@ -0,0 +1,10 @@
# add -Wall to try to catch everything we can.
EXTRA_CFLAGS += -Wall
EXTRA_CFLAGS += -I$(ANDROID_BUILD_TOP)/motorola/kernel/modules/include \
-I$(ANDROID_BUILD_TOP)/motorola/kernel/modules/drivers/input/touchscreen/synaptics_tcm_mmi_v2
ifneq ($(filter m y,$(USE_TOUCHSCREEN_MMI_I2C)),)
obj-m += synaptics_i2c.o
else
obj-m += synaptics_spi.o
endif

View file

@ -36,7 +36,7 @@
#include <linux/i2c.h>
#include <linux/of_gpio.h>
#include "synaptics_core.h"
#include "../synaptics_core/synaptics_core.h"
#define XFER_ATTEMPTS 10

View file

@ -36,7 +36,7 @@
#include <linux/spi/spi.h>
#include <linux/of_gpio.h>
#include "synaptics_core.h"
#include "../synaptics_core/synaptics_core.h"
static unsigned char *buf;

View file

@ -0,0 +1,28 @@
DLKM_DIR := motorola/kernel/modules
LOCAL_PATH := $(call my-dir)
ifeq ($(DRM_PANEL_NOTIFICATIONS),true)
KERNEL_CFLAGS += CONFIG_DRM_PANEL_NOTIFICATIONS=y
endif
ifeq ($(DLKM_INSTALL_TO_VENDOR_OUT),true)
SYNA_TCM_MODULE_PATH := $(TARGET_OUT_VENDOR)/lib/modules/
else
SYNA_TCM_MODULE_PATH := $(KERNEL_MODULES_OUT)
endif
include $(CLEAR_VARS)
LOCAL_MODULE := synaptics_core_module.ko
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_PATH := $(SYNA_TCM_MODULE_PATH)
ifneq ($(findstring touchscreen_mmi.ko,$(BOARD_VENDOR_KERNEL_MODULES)),)
KERNEL_CFLAGS += CONFIG_INPUT_TOUCHSCREEN_MMI=y
LOCAL_ADDITIONAL_DEPENDENCIES += $(KERNEL_MODULES_OUT)/touchscreen_mmi.ko
endif
ifneq ($(findstring synaptics_i2c.ko,$(BOARD_VENDOR_KERNEL_MODULES)),)
LOCAL_ADDITIONAL_DEPENDENCIES += $(KERNEL_MODULES_OUT)/synaptics_i2c.ko
else
LOCAL_ADDITIONAL_DEPENDENCIES += $(KERNEL_MODULES_OUT)/synaptics_spi.ko
endif
include $(DLKM_DIR)/AndroidKernelModule.mk

View file

@ -0,0 +1,18 @@
# add -Wall to try to catch everything we can.
EXTRA_CFLAGS += -Wall
EXTRA_CFLAGS += -I$(ANDROID_BUILD_TOP)/motorola/kernel/modules/include \
-I$(ANDROID_BUILD_TOP)/motorola/kernel/modules/drivers/input/touchscreen/synaptics_tcm_mmi_v2
obj-m += synaptics_core_module.o
synaptics_core_module-objs := synaptics_core.o synaptics_touch.o
ifneq ($(filter m y, $(CONFIG_DRM_PANEL_NOTIFICATIONS)),)
EXTRA_CFLAGS += -DCONFIG_DRM_PANEL_NOTIFICATIONS
endif
ifneq ($(filter m y,$(CONFIG_INPUT_TOUCHSCREEN_MMI)),)
EXTRA_CFLAGS += -DCONFIG_INPUT_TOUCHSCREEN_MMI
synaptics_core_module-objs += synaptics_ts_mmi.o
KBUILD_EXTRA_SYMBOLS += $(CURDIR)/$(KBUILD_EXTMOD)/../../touchscreen_mmi/Module.symvers
endif
KBUILD_EXTRA_SYMBOLS += $(CURDIR)/$(KBUILD_EXTMOD)/../synaptics_bus/Module.symvers

View file

@ -4,6 +4,9 @@ LOCAL_PATH := $(call my-dir)
ifneq ($(findstring touchscreen_mmi.ko,$(BOARD_VENDOR_KERNEL_MODULES)),)
KERNEL_CFLAGS += CONFIG_INPUT_TOUCHSCREEN_MMI=y
endif
ifeq ($(DRM_PANEL_NOTIFICATIONS),true)
KERNEL_CFLAGS += CONFIG_DRM_PANEL_NOTIFICATIONS=y
endif
ifeq ($(DLKM_INSTALL_TO_VENDOR_OUT),true)
SYNA_TCM_MODULE_PATH := $(TARGET_OUT_VENDOR)/lib/modules/
@ -11,59 +14,45 @@ else
SYNA_TCM_MODULE_PATH := $(KERNEL_MODULES_OUT)
endif
include $(CLEAR_VARS)
LOCAL_MODULE := synaptics_spi.ko
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_PATH := $(SYNA_TCM_MODULE_PATH)
include $(DLKM_DIR)/AndroidKernelModule.mk
include $(CLEAR_VARS)
LOCAL_MODULE := synaptics_i2c.ko
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_PATH := $(SYNA_TCM_MODULE_PATH)
include $(DLKM_DIR)/AndroidKernelModule.mk
include $(CLEAR_VARS)
LOCAL_MODULE := synaptics_core_module.ko
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_PATH := $(SYNA_TCM_MODULE_PATH)
include $(DLKM_DIR)/AndroidKernelModule.mk
include $(CLEAR_VARS)
LOCAL_MODULE := synaptics_device.ko
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_PATH := $(SYNA_TCM_MODULE_PATH)
LOCAL_ADDITIONAL_DEPENDENCIES := $(KERNEL_MODULES_OUT)/synaptics_core_module.ko
include $(DLKM_DIR)/AndroidKernelModule.mk
include $(CLEAR_VARS)
LOCAL_MODULE := synaptics_diagnostics.ko
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_PATH := $(SYNA_TCM_MODULE_PATH)
LOCAL_ADDITIONAL_DEPENDENCIES := $(KERNEL_MODULES_OUT)/synaptics_core_module.ko
include $(DLKM_DIR)/AndroidKernelModule.mk
include $(CLEAR_VARS)
LOCAL_MODULE := synaptics_recovery.ko
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_PATH := $(SYNA_TCM_MODULE_PATH)
LOCAL_ADDITIONAL_DEPENDENCIES := $(KERNEL_MODULES_OUT)/synaptics_core_module.ko
include $(DLKM_DIR)/AndroidKernelModule.mk
include $(CLEAR_VARS)
LOCAL_MODULE := synaptics_reflash.ko
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_PATH := $(SYNA_TCM_MODULE_PATH)
LOCAL_ADDITIONAL_DEPENDENCIES := $(KERNEL_MODULES_OUT)/synaptics_core_module.ko
include $(DLKM_DIR)/AndroidKernelModule.mk
include $(CLEAR_VARS)
LOCAL_MODULE := synaptics_testing.ko
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_PATH := $(SYNA_TCM_MODULE_PATH)
LOCAL_ADDITIONAL_DEPENDENCIES := $(KERNEL_MODULES_OUT)/synaptics_core_module.ko
include $(DLKM_DIR)/AndroidKernelModule.mk
include $(CLEAR_VARS)
LOCAL_MODULE := synaptics_zeroflash.ko
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_PATH := $(SYNA_TCM_MODULE_PATH)
LOCAL_ADDITIONAL_DEPENDENCIES := $(KERNEL_MODULES_OUT)/synaptics_core_module.ko
include $(DLKM_DIR)/AndroidKernelModule.mk

View file

@ -3,9 +3,6 @@ EXTRA_CFLAGS += -Wall
EXTRA_CFLAGS += -I$(ANDROID_BUILD_TOP)/motorola/kernel/modules/include \
-I$(ANDROID_BUILD_TOP)/motorola/kernel/modules/drivers/input/touchscreen/synaptics_tcm_mmi_v2
obj-m += synaptics_spi.o
obj-m += synaptics_i2c.o
obj-m += synaptics_core_module.o
obj-m += synaptics_device.o
obj-m += synaptics_diagnostics.o
obj-m += synaptics_recovery.o
@ -13,9 +10,10 @@ obj-m += synaptics_reflash.o
obj-m += synaptics_testing.o
obj-m += synaptics_zeroflash.o
synaptics_core_module-objs := synaptics_core.o synaptics_touch.o
ifneq ($(filter m y, $(CONFIG_DRM_PANEL_NOTIFICATIONS)),)
EXTRA_CFLAGS += -DCONFIG_DRM_PANEL_NOTIFICATIONS
endif
ifneq ($(filter m y,$(CONFIG_INPUT_TOUCHSCREEN_MMI)),)
EXTRA_CFLAGS += -DCONFIG_INPUT_TOUCHSCREEN_MMI
synaptics_core_module-objs += synaptics_ts_mmi.o
KBUILD_EXTRA_SYMBOLS += $(CURDIR)/$(KBUILD_EXTMOD)/../touchscreen_mmi/Module.symvers
endif
KBUILD_EXTRA_SYMBOLS += $(CURDIR)/$(KBUILD_EXTMOD)/../synaptics_core/Module.symvers

View file

@ -37,7 +37,7 @@
#include <linux/cdev.h>
#include <linux/gpio.h>
#include <linux/uaccess.h>
#include "synaptics_core.h"
#include "../synaptics_core/synaptics_core.h"
#define CHAR_DEVICE_NAME "tcm"

View file

@ -34,7 +34,7 @@
* DOLLARS.
*/
#include "synaptics_core.h"
#include "../synaptics_core/synaptics_core.h"
#include <linux/sched/signal.h>
#include <linux/mmi_kernel_common.h>

View file

@ -34,7 +34,7 @@
* DOLLARS.
*/
#include "synaptics_core.h"
#include "../synaptics_core/synaptics_core.h"
#define SET_UP_RECOVERY_MODE true

View file

@ -36,7 +36,7 @@
#include <linux/crc32.h>
#include <linux/firmware.h>
#include "synaptics_core.h"
#include "../synaptics_core/synaptics_core.h"
/*
#define STARTUP_REFLASH
*/

View file

@ -35,7 +35,7 @@
*/
#include <linux/gpio.h>
#include "synaptics_core.h"
#include "../synaptics_core/synaptics_core.h"
#include "synaptics_testing.h"
#define SYSFS_DIR_NAME "testing"

View file

@ -37,7 +37,7 @@
#include <linux/gpio.h>
#include <linux/crc32.h>
#include <linux/firmware.h>
#include "synaptics_core.h"
#include "../synaptics_core/synaptics_core.h"
#define ENABLE_SYS_ZEROFLASH true