diff --git a/drivers/input/touchscreen/synaptics_tcm_mmi_v2/synaptics_bus/Kbuild b/drivers/input/touchscreen/synaptics_tcm_mmi_v2/synaptics_bus/Kbuild index 2e3eec5411bf..dc356420f482 100644 --- a/drivers/input/touchscreen/synaptics_tcm_mmi_v2/synaptics_bus/Kbuild +++ b/drivers/input/touchscreen/synaptics_tcm_mmi_v2/synaptics_bus/Kbuild @@ -5,6 +5,7 @@ EXTRA_CFLAGS += -I$(ANDROID_BUILD_TOP)/motorola/kernel/modules/include \ ifneq ($(filter m y,$(USE_TOUCHSCREEN_MMI_I2C)),) obj-m += synaptics_i2c.o + KBUILD_EXTRA_SYMBOLS += $(CURDIR)/$(KBUILD_EXTMOD)/../../../../mmi_info/Module.symvers else - obj-m += synaptics_spi.o + obj-m += synaptics_spi.o endif diff --git a/drivers/input/touchscreen/synaptics_tcm_mmi_v2/synaptics_bus/synaptics_i2c.c b/drivers/input/touchscreen/synaptics_tcm_mmi_v2/synaptics_bus/synaptics_i2c.c index 6c6acfcedddb..b594dea71305 100644 --- a/drivers/input/touchscreen/synaptics_tcm_mmi_v2/synaptics_bus/synaptics_i2c.c +++ b/drivers/input/touchscreen/synaptics_tcm_mmi_v2/synaptics_bus/synaptics_i2c.c @@ -36,6 +36,7 @@ #include #include +#include #include "../synaptics_core/synaptics_core.h" #define XFER_ATTEMPTS 10 @@ -462,6 +463,11 @@ static int syna_tcm_i2c_probe(struct i2c_client *i2c, i2c_set_clientdata(i2c, syna_tcm_i2c_device); + if (i2c->dev.of_node && !mmi_device_is_available(i2c->dev.of_node)) { + LOGE(&i2c->dev, "%s: mmi: device not supported\n", __func__); + return -ENODEV; + } + #ifdef CONFIG_OF hw_if.bdata = devm_kzalloc(&i2c->dev, sizeof(*hw_if.bdata), GFP_KERNEL); if (!hw_if.bdata) { diff --git a/drivers/input/touchscreen/synaptics_tcm_mmi_v2/synaptics_core/Android.mk b/drivers/input/touchscreen/synaptics_tcm_mmi_v2/synaptics_core/Android.mk index 35677cbe9f6f..789915335605 100644 --- a/drivers/input/touchscreen/synaptics_tcm_mmi_v2/synaptics_core/Android.mk +++ b/drivers/input/touchscreen/synaptics_tcm_mmi_v2/synaptics_core/Android.mk @@ -20,6 +20,7 @@ ifneq ($(findstring touchscreen_mmi.ko,$(BOARD_VENDOR_KERNEL_MODULES)),) 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)/mmi_info.ko LOCAL_ADDITIONAL_DEPENDENCIES += $(KERNEL_MODULES_OUT)/synaptics_i2c.ko else LOCAL_ADDITIONAL_DEPENDENCIES += $(KERNEL_MODULES_OUT)/synaptics_spi.ko