synaptics_tcm_mmi: mmi status check

Added MMI status check to driver's probe. Kernel module will be loaded
only when MMI status check succeed. Driver node needs to have property
mmi,status in device tree for this to work.

Change-Id: I93a077aee70f45dde1aa6c760b7cd73ed7cf4b3e
Signed-off-by: Konstantin Makariev <hcv867@motorola.com>
Reviewed-on: https://gerrit.mot.com/1827965
SME-Granted: SME Approvals Granted
SLTApproved: Slta Waiver
Tested-by: Jira Key
Reviewed-by: Ling Jin <lingjin@motorola.com>
Submit-Approved: Jira Key
This commit is contained in:
Konstantin Makariev 2020-12-15 10:02:37 -06:00 • committed by Konstantin Makariev
commit 4828b47192
3 changed files with 9 additions and 1 deletions

View file

@ -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

View file

@ -36,6 +36,7 @@
#include <linux/i2c.h>
#include <linux/of_gpio.h>
#include <linux/mmi_device.h>
#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) {

View file

@ -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