diff --git a/drivers/input/touchscreen/parade_tma5xx_mmi/Android.mk b/drivers/input/touchscreen/parade_tma5xx_mmi/Android.mk index 5025a1342ce1..c71b7250c8ef 100644 --- a/drivers/input/touchscreen/parade_tma5xx_mmi/Android.mk +++ b/drivers/input/touchscreen/parade_tma5xx_mmi/Android.mk @@ -38,6 +38,9 @@ ifeq ($(DRM_PANEL_NOTIFICATIONS),true) KBUILD_OPTIONS += CONFIG_DRM_PANEL_NOTIFICATIONS=y endif +ifeq ($(GTP_LIMIT_USE_SUPPLIER),true) + KBUILD_OPTIONS += CONFIG_GTP_LIMIT_USE_SUPPLIER=y +endif include $(CLEAR_VARS) LOCAL_MODULE := parade_tma5xx_mmi_core.ko diff --git a/drivers/input/touchscreen/parade_tma5xx_mmi/Kbuild b/drivers/input/touchscreen/parade_tma5xx_mmi/Kbuild index 9241634bd430..c9991cc75336 100644 --- a/drivers/input/touchscreen/parade_tma5xx_mmi/Kbuild +++ b/drivers/input/touchscreen/parade_tma5xx_mmi/Kbuild @@ -73,5 +73,8 @@ ifneq ($(filter m y,$(CONFIG_DRM_PANEL_NOTIFICATIONS)),) EXTRA_CFLAGS += -DCONFIG_DRM_PANEL_NOTIFICATIONS endif +ifneq ($(filter m y,$(CONFIG_GTP_LIMIT_USE_SUPPLIER)),) + EXTRA_CFLAGS += -DCONFIG_GTP_LIMIT_USE_SUPPLIER +endif KBUILD_EXTRA_SYMBOLS += $(CURDIR)/$(KBUILD_EXTMOD)/../touchscreen_mmi/$(GKI_OBJ_MODULE_DIR)/Module.symvers diff --git a/drivers/input/touchscreen/parade_tma5xx_mmi/cyttsp5_device_access.c b/drivers/input/touchscreen/parade_tma5xx_mmi/cyttsp5_device_access.c index 4db28fb3a1f8..a5994dd20c1c 100644 --- a/drivers/input/touchscreen/parade_tma5xx_mmi/cyttsp5_device_access.c +++ b/drivers/input/touchscreen/parade_tma5xx_mmi/cyttsp5_device_access.c @@ -36,6 +36,7 @@ #define CY_CMCP_THRESHOLD_FILE_NAME "cyttsp5_thresholdfile.csv" #define CMCP_THRESHOLD_FILE_NAME "ttdl_cmcp_thresholdfile.csv" +#define PARADE_TEST_FILE_NAME "parade" /* Max test case number */ #define MAX_CASE_NUM (22) @@ -5148,6 +5149,8 @@ static void cyttsp5_parse_cmcp_threshold_builtin( cmcp_threshold_update); struct device *dev = dad->dev; int retval; + struct cyttsp5_core_data *cd = dev_get_drvdata(dev); + char limit_file[100] = {0}; dad->si = cmd->request_sysinfo(dev); if (!dad->si) { @@ -5160,9 +5163,17 @@ static void cyttsp5_parse_cmcp_threshold_builtin( "%s: Enabling cmcp threshold class loader built-in\n", __func__); + if (cd->supplier) + snprintf(limit_file, sizeof(limit_file), "%s_%s_test_limits.csv", + cd->supplier, PARADE_TEST_FILE_NAME); + else + snprintf(limit_file, sizeof(limit_file), "%s", + CMCP_THRESHOLD_FILE_NAME); + dev_info(dev, "limit_file_name:%s", limit_file); + /* Open threshold file */ retval = request_firmware_nowait(THIS_MODULE, FW_ACTION_HOTPLUG, - CMCP_THRESHOLD_FILE_NAME, dev, GFP_KERNEL, dev, + limit_file, dev, GFP_KERNEL, dev, cyttsp5_cmcp_parse_threshold_file); if (retval < 0) { dev_err(dev, "%s: Failed loading cmcp threshold file, attempting legacy file\n", diff --git a/drivers/input/touchscreen/parade_tma5xx_mmi/cyttsp5_regs.h b/drivers/input/touchscreen/parade_tma5xx_mmi/cyttsp5_regs.h index 25090bbf8dec..6f103750f610 100644 --- a/drivers/input/touchscreen/parade_tma5xx_mmi/cyttsp5_regs.h +++ b/drivers/input/touchscreen/parade_tma5xx_mmi/cyttsp5_regs.h @@ -1036,6 +1036,7 @@ struct cyttsp5_core_data { int (*firmware_update)(struct device *dev, char *fwname); char firmware_name[CYTTSP5_FIRMWARE_NAME_MAX_LEN]; bool force_fw_upgrade; + const char *supplier; }; struct gd_sensor { int32_t cm_min; diff --git a/drivers/input/touchscreen/parade_tma5xx_mmi/cyttsp5_ts_mmi.c b/drivers/input/touchscreen/parade_tma5xx_mmi/cyttsp5_ts_mmi.c index 3cf78a4e555f..40bc7415815d 100644 --- a/drivers/input/touchscreen/parade_tma5xx_mmi/cyttsp5_ts_mmi.c +++ b/drivers/input/touchscreen/parade_tma5xx_mmi/cyttsp5_ts_mmi.c @@ -316,6 +316,11 @@ int cyttsp5_ts_mmi_dev_register(struct device *dev) { cd->imports = &cyttsp5_ts_mmi_methods.exports; +#if defined(CONFIG_GTP_LIMIT_USE_SUPPLIER) + if (cd->imports && cd->imports->get_supplier) { + ret = cd->imports->get_supplier(cd->dev, &cd->supplier); + } +#endif return 0; }