From 2d74d854008fdee05733921ee2fbbdfabd225901 Mon Sep 17 00:00:00 2001 From: miaoyi Date: Thu, 16 Feb 2023 21:05:35 +0800 Subject: [PATCH] Modify Zinitix firmware version name Modify Zinitix firmware version name, and modify firmware update process. Change-Id: I24aac107a73d8151d5ee20c90f2ce9b55cb44cd2 Signed-off-by: miaoyi Reviewed-on: https://gerrit.mot.com/2513766 SME-Granted: SME Approvals Granted SLTApproved: Slta Waiver Tested-by: Jira Key Reviewed-by: Reviewed-by: Jichao Zou Submit-Approved: Jira Key --- .../touchscreen/zinitix_ztw62x_mmi/zinitix.c | 20 ++++++++++++------- .../zinitix_ztw62x_mmi/zinitix_touch.h | 1 + .../zinitix_ztw62x_mmi/zinitix_ts_mmi.c | 5 +++-- 3 files changed, 17 insertions(+), 9 deletions(-) diff --git a/drivers/input/touchscreen/zinitix_ztw62x_mmi/zinitix.c b/drivers/input/touchscreen/zinitix_ztw62x_mmi/zinitix.c index 00f70a91e291..716947585194 100644 --- a/drivers/input/touchscreen/zinitix_ztw62x_mmi/zinitix.c +++ b/drivers/input/touchscreen/zinitix_ztw62x_mmi/zinitix.c @@ -175,16 +175,18 @@ struct reg_ioctl { #define BT541_TOUCH_MODE 0x0010 #define BT541_CHIP_REVISION 0x0011 -#define BT541_FIRMWARE_VERSION 0x0012 +#define BT541_FIRMWARE_VERSION 0x0034 #define ZINITIX_USB_DETECT 0x116 -#define BT541_MINOR_FW_VERSION 0x0121 +#define BT541_MINOR_FW_VERSION 0x0035 #define BT541_VENDOR_ID 0x001C #define BT541_HW_ID 0x0014 #define BT541_DATA_VERSION_REG 0x0013 +#define BT541_THIRD_FW_VERSION 0x0036 + #define BT541_SUPPORTED_FINGER_NUM 0x0015 #define BT541_EEPROM_INFO 0x0018 #define BT541_INITIAL_TOUCH_MODE 0x0019 @@ -1776,12 +1778,16 @@ retry_init: (u8 *)&cap->fw_minor_version, 2) < 0) goto fail_init; - if (read_data(client, BT541_DATA_VERSION_REG, + if (read_data(client, BT541_THIRD_FW_VERSION, + (u8 *)&cap->fw_third_version, 2) < 0) + goto fail_init; + + if (read_data(client, BT541_DATA_VERSION_REG, (u8 *)&cap->reg_data_version, 2) < 0) goto fail_init; - zinitix_printk("fw_version = 0x%x, fw_minor_version = 0x%x, reg_data_version = 0x%x\n", - cap->fw_version, cap->fw_minor_version, cap->reg_data_version); + zinitix_printk("fw_version = 0x%x, fw_minor_version = 0x%x, fw_third_version = 0x%x, reg_data_version = 0x%x\n", + cap->fw_version, cap->fw_minor_version, cap->fw_third_version, cap->reg_data_version); #if TOUCH_ONESHOT_UPGRADE if ((checkMode == NULL) &&(ts_check_need_upgrade(info, cap->fw_version, @@ -2364,8 +2370,8 @@ static irqreturn_t bt541_touch_work(int irq, void *data) input_report_abs(info->input_dev, ABS_MT_POSITION_X, x); input_report_abs(info->input_dev, ABS_MT_POSITION_Y, y); input_report_key(info->input_dev, BTN_TOUCH, 1); - } else if (zinitix_bit_test(sub_status, SUB_BIT_UP) || - zinitix_bit_test(prev_sub_status, SUB_BIT_EXIST)) { + } else if ((zinitix_bit_test(sub_status, SUB_BIT_UP) || + zinitix_bit_test(prev_sub_status, SUB_BIT_EXIST)) && info->finger_cnt1) { dev_info(&client->dev, "Finger [%02d] up ver0x%02x hw0x%02x mode0x%02x\n", i, info->cap_info.reg_data_version, info->cap_info.hw_id, m_optional_mode); diff --git a/drivers/input/touchscreen/zinitix_ztw62x_mmi/zinitix_touch.h b/drivers/input/touchscreen/zinitix_ztw62x_mmi/zinitix_touch.h index 5787d7b541e6..6a1a438159f5 100644 --- a/drivers/input/touchscreen/zinitix_ztw62x_mmi/zinitix_touch.h +++ b/drivers/input/touchscreen/zinitix_ztw62x_mmi/zinitix_touch.h @@ -200,6 +200,7 @@ struct capa_info { u16 ic_revision; u16 fw_version; u16 fw_minor_version; + u16 fw_third_version; u16 reg_data_version; u16 threshold; u16 key_threshold; diff --git a/drivers/input/touchscreen/zinitix_ztw62x_mmi/zinitix_ts_mmi.c b/drivers/input/touchscreen/zinitix_ztw62x_mmi/zinitix_ts_mmi.c index 4541e3eb8249..2cf0799888bd 100644 --- a/drivers/input/touchscreen/zinitix_ztw62x_mmi/zinitix_ts_mmi.c +++ b/drivers/input/touchscreen/zinitix_ztw62x_mmi/zinitix_ts_mmi.c @@ -53,10 +53,11 @@ static int zinitix_ts_mmi_methods_get_config_id(struct device *dev, void *cdata) zinitix_printk("firmware_version = 0x%x, minor_fw_version = 0x%x, data_version_reg = 0x%x\n", cap->fw_version, cap->fw_minor_version, cap->reg_data_version); - return snprintf(TO_CHARP(cdata), TS_MMI_MAX_ID_LEN, "%02d%02d%02d", + return snprintf(TO_CHARP(cdata), TS_MMI_MAX_ID_LEN, "%02d%02d%02d%02x", cap->fw_version, cap->fw_minor_version, - cap->reg_data_version); + cap->fw_third_version, + le32_to_cpu(cap->reg_data_version)); } static int zinitix_ts_mmi_methods_get_bus_type(struct device *dev, void *idata)