2020-05-08 06:05:18

by Jiada Wang

[permalink] [raw]
Subject: [PATCH v11 00/56] atmel_mxt_ts misc

This patch-set forward ports Nick Dyer's work in ndyer/linux github
repository as long as some other features and fixes

Balasubramani Vivekanandan (2):
Input: atmel_mxt_ts: Limit the max bytes transferred in an i2c
transaction
Input: atmel_mxt_ts: use gpiod_set_value_cansleep for reset pin

Dean Jenkins (1):
Input: atmel_mxt_ts: return error from
mxt_process_messages_until_invalid()

Deepak Das (6):
Input: Atmel: improve error handling in mxt_start()
Input: Atmel: improve error handling in mxt_initialize()
Input: Atmel: improve error handling in mxt_update_cfg()
Input: Atmel: Improve error handling in mxt_initialize_input_device()
Input: Atmel: handle ReportID "0x00" while processing T5 messages
Input: Atmel: use T44 object to process T5 messages

George G. Davis (1):
input: atmel_mxt_ts: export GPIO reset line via sysfs

Janus Cheng (1):
Input: atmel_mxt_ts - check data->input_dev is not null in
mxt_input_sync()

Jiada Wang (12):
Input: introduce input_mt_report_slot_inactive
dt-bindings: input: atmel: add suspend mode support
Input: atmel_mxt_ts: Rename mxt_fw_version_show to fw_version_show
Input: atmel_mxt_ts: Rename mxt_hw_version_show to hw_version_show
Input: atmel_mxt_ts: rename mxt_update_fw_store to update_fw_store
dt-bindings: input: atmel: provide name of configuration file
dt-bindings: input: atmel: support to specify input name
Input: atmel_mxt_ts - rename mxt_object_show to object_show
Input: atmel_mxt_ts - delay enabling IRQ when not using regulators
Input: atmel_mxt_ts - eliminate data->raw_info_block
input: atmel_mxt_ts: don't disable IRQ before remove of
mxt_fw_attr_group
Input: atmel_mxt_ts - Fix compilation warning

Karl Tsou (1):
Input: atmel_mxt_ts - add debug for T92 gesture and T93 touch seq msgs

Kautuk Consul (2):
Input: atmel_mxt_ts - Change call-points of mxt_free_* functions
Input: atmel_mxt_ts - rely on calculated_crc rather than file
config_crc

Naveen Chakka (2):
input: touchscreen: atmel_mxt_ts: Added sysfs entry for touchscreen
status
input: atmel_mxt_ts: added sysfs interface to update atmel T38 data

Nick Dyer (25):
Input: atmel_mxt_ts - rework sysfs init/remove
Input: atmel_mxt_ts - only read messages in mxt_acquire_irq() when
necessary
Input: atmel_mxt_ts - split large i2c transfers into blocks
Input: atmel_mxt_ts - output status from T48 Noise Supression
Input: atmel_mxt_ts - output status from T42 Touch Suppression
Input: atmel_mxt_ts - implement T9 vector/orientation support
Input: atmel_mxt_ts - implement T15 Key Array support
Input: atmel_mxt_ts - handle reports from T47 Stylus object
Input: atmel_mxt_ts - implement support for T107 active stylus
Input: atmel_mxt_ts - release touch state during suspend
Input: atmel_mxt_ts - add regulator control support
Input: atmel_mxt_ts - report failures in suspend/resume
Input: atmel_mxt_ts - allow specification of firmware file name
Input: atmel_mxt_ts - handle cfg filename via pdata/sysfs
Input: atmel_mxt_ts - allow input name to be specified in platform
data
Input: atmel_mxt_ts - refactor firmware flash to extract context into
struct
Input: atmel_mxt_ts - refactor code to enter bootloader into separate
func
Input: atmel_mxt_ts - combine bootloader version query with probe
Input: atmel_mxt_ts - improve bootloader state machine handling
Input: atmel_mxt_ts - rename bl_completion to chg_completion
Input: atmel_mxt_ts - make bootloader interrupt driven
Input: atmel_mxt_ts - implement I2C retries
Input: atmel_mxt_ts - orientation is not present in hover
Input: atmel_mxt_ts - implement debug output for messages
Input: atmel_mxt_ts - implement improved debug message interface

Nikhil Ravindran (1):
Input: atmel_mxt_ts: Add support for run self-test routine.

karl tsou (1):
Input: atmel_mxt_ts - add config checksum attribute to sysfs

keerthikumarp (1):
input: atmel_mxt_ts: Add Missing Delay for reset handling of Atmel
touch panel controller in detachable displays.
---
v11:
Following commits in v10 have been dropped
dt-bindings: input: atmel: support to set max bytes transferred
Input: atmel_mxt_ts: Implement synchronization during various operation

Following commits have been added
Input: atmel_mxt_ts - check data->input_dev is not null in
mxt_input_sync()
Input: atmel_mxt_ts - rename mxt_object_show to object_show
input: atmel_mxt_ts: don't disable IRQ before remove of
mxt_fw_attr_group

Following commits have been updated to address review findings
dt-bindings: input: atmel: add suspend mode support
input: touchscreen: atmel_mxt_ts: Added sysfs entry for touchscreen
status
Input: atmel_mxt_ts - handle cfg filename via pdata/sysfs
Input: atmel_mxt_ts - delay enabling IRQ when not using regulators

v10:
Following commits have been updated
input: touchscreen: atmel_mxt_ts: Added sysfs entry for touchscreen
status
dt-bindings: input: atmel: add suspend mode support
Input: atmel_mxt_ts: Implement synchronization during various operation

Re-order commits to avoid compilation error

v9:
Following commits have been added
Input: atmel_mxt_ts: rename mxt_update_fw_store to update_fw_store
Input: atmel_mxt_ts: Rename mxt_hw_version_show to hw_version_show
Input: atmel_mxt_ts: Rename mxt_fw_version_show to fw_version_show

Addressed dev_attrs related checkpatch warnings

v8:
Fix checkpatch errors and warnings

Fix issue in commit (" Input: atmel_mxt_ts - only read messages in
mxt_acquire_irq() when necessary")
reported by Dmitry Osipenko

Cleanup coding style for commits
Input: atmel_mxt_ts - add regulator control support
Input: atmel_mxt_ts - improve bootloader state machine handling

v7:
Fix regression found when updating firmware
Following commits have been updated to fix regression found when
updating firmware
Input: atmel_mxt_ts - improve bootloader state machine handling
Input: atmel_mxt_ts - make bootloader interrupt driven
input: touchscreen: atmel_mxt_ts: Added sysfs entry for touchscreen
status
Input: atmel_mxt_ts: Implement synchronization during various operation

v6:
Fix issue in commit ("Input: introduce input_mt_report_slot_inactive")
reported by kernel test robot

v5:
Following commits have been updated to address warnings & errors
reported by kbuild test robot
Input: atmel_mxt_ts - make bootloader interrupt driven
Input: atmel_mxt_ts - add debug for T92 gesture and T93 touch seq msgs

Following commit has been updated
Input: introduce input_mt_report_slot_inactive

v4:
Following commit in v3 patch-set has been removed
Input: switch to use return value of input_mt_report_slot_state

Following commit has been updated to address checkpatch warning
Input: atmel_mxt_ts: Implement synchronization during various operation

v3:
Following commits have been updated compared to v2 patchset
Input: atmel_mxt_ts - implement debug output for messages
- added inline comment
Input: atmel_mxt_ts - add debug for T92 gesture and T93 touch seq msg
- changed dev_info() to dev_dbg()

v2:
Following commit in v1 patchset has been split into two commits
Input: introduce input_mt_report_slot_inactive

Following commits have been updated compared to v1 patchset
Input: atmel_mxt_ts - split large i2c transfers into blocks
Input: atmel_mxt_ts - output status from T42 Touch Suppression

Following commits in v1 patchset have been squashed
Input: touchscreen: Atmel: Add device tree support for T15 key array
objects
Input: atmel_mxt_ts - check data->input_dev is not null in
mxt_input_sync()
Input: atmel_mxt_ts - check firmware format before entering bootloader
Input: atmel_mxt_ts: update stale use_retrigen_workaround flag
input: atmel_mxt_ts: move bootloader probe from mxt_initialize()
input: Atmel: limit the max bytes transferred while reading T5 messages
Input: atmel_mxt_ts: Use msecs_to_jiffies() instead of HZ
Input: atmel_mxt_ts: Use complete when in_bootloader true
Input: atmel_mxt_ts: Prevent crash due to freeing of input device
input: atmel_mxt_ts: Add NULL check for sysfs attribute debug_msg_attr

Following commits in v1 patchset have been dropped:
Input: atmel_mxt_ts - configure and use gpios as real gpios
Input: touchscreen: Atmel: Enable IRQ_DISABLE_UNLAZY flag for interrupt
Input: atmel_mxt_ts - add memory access interface via sysfs
Input: atmel_mxt_ts: Remove sysfs attributes during driver detach
Input: atmel_mxt_ts: Avoid race condition in freeing of input device

v1: initial version
---

.../bindings/input/atmel,maxtouch.txt | 14 +
MAINTAINERS | 1 +
drivers/hid/hid-alps.c | 3 +-
drivers/hid/hid-multitouch.c | 6 +-
drivers/input/misc/xen-kbdfront.c | 2 +-
drivers/input/mouse/elan_i2c_core.c | 2 +-
drivers/input/touchscreen/atmel_mxt_ts.c | 2072 ++++++++++++++---
drivers/input/touchscreen/cyttsp4_core.c | 5 +-
drivers/input/touchscreen/cyttsp_core.c | 2 +-
drivers/input/touchscreen/melfas_mip4.c | 4 +-
drivers/input/touchscreen/mms114.c | 2 +-
drivers/input/touchscreen/raspberrypi-ts.c | 2 +-
drivers/input/touchscreen/stmfts.c | 2 +-
include/dt-bindings/input/atmel_mxt_ts.h | 23 +
include/linux/input/mt.h | 5 +
15 files changed, 1790 insertions(+), 355 deletions(-)
create mode 100644 include/dt-bindings/input/atmel_mxt_ts.h

--
2.17.1


2020-05-08 06:05:45

by Jiada Wang

[permalink] [raw]
Subject: [PATCH v11 18/56] Input: atmel_mxt_ts: Rename mxt_hw_version_show to hw_version_show

Rename mxt_hw_version_show to hw_version_show to address checkpatch warning

Signed-off-by: Jiada Wang <[email protected]>
---
drivers/input/touchscreen/atmel_mxt_ts.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/input/touchscreen/atmel_mxt_ts.c b/drivers/input/touchscreen/atmel_mxt_ts.c
index b2a37a9597f3..cec823de4096 100644
--- a/drivers/input/touchscreen/atmel_mxt_ts.c
+++ b/drivers/input/touchscreen/atmel_mxt_ts.c
@@ -3114,8 +3114,8 @@ static ssize_t fw_version_show(struct device *dev,
}

/* Hardware Version is returned as FamilyID.VariantID */
-static ssize_t mxt_hw_version_show(struct device *dev,
- struct device_attribute *attr, char *buf)
+static ssize_t hw_version_show(struct device *dev,
+ struct device_attribute *attr, char *buf)
{
struct mxt_data *data = dev_get_drvdata(dev);
struct mxt_info *info = data->info;
@@ -3404,7 +3404,7 @@ static const struct attribute_group mxt_fw_attr_group = {
};

static DEVICE_ATTR_RO(fw_version);
-static DEVICE_ATTR(hw_version, S_IRUGO, mxt_hw_version_show, NULL);
+static DEVICE_ATTR_RO(hw_version);
static DEVICE_ATTR(object, S_IRUGO, mxt_object_show, NULL);

static struct attribute *mxt_attrs[] = {
--
2.17.1

2020-05-08 06:05:48

by Jiada Wang

[permalink] [raw]
Subject: [PATCH v11 03/56] Input: atmel_mxt_ts - only read messages in mxt_acquire_irq() when necessary

From: Nick Dyer <[email protected]>

The workaround of reading all messages until an invalid is received is a
way of forcing the CHG line high, which means that when using
edge-triggered interrupts the interrupt can be acquired.

With level-triggered interrupts the workaround is unnecessary.

Also, most recent maXTouch chips have a feature called RETRIGEN which, when
enabled, reasserts the interrupt line every cycle if there are messages
waiting. This also makes the workaround unnecessary.

Note: the RETRIGEN feature is only in some firmware versions/chips, it's
not valid simply to enable the bit.

Signed-off-by: Nick Dyer <[email protected]>
Acked-by: Benson Leung <[email protected]>
Acked-by: Yufeng Shen <[email protected]>
(cherry picked from ndyer/linux/for-upstream commit 1ae4e8281e491b22442cd5acdfca1862555f8ecb)
[gdavis: Fix conflicts due to v4.6-rc7 commit eb43335c4095 ("Input:
atmel_mxt_ts - use mxt_acquire_irq in mxt_soft_reset").]
Signed-off-by: George G. Davis <[email protected]>
[jiada: reset use_retrigen_workaround at beginning of mxt_check_retrigen()
call mxt_check_retrigen() after mxt_acquire_irq() in mxt_initialize()
replace white-spaces with tab for MXT_COMMS_RETRIGEN]
Signed-off-by: Jiada Wang <[email protected]>
---
drivers/input/touchscreen/atmel_mxt_ts.c | 51 ++++++++++++++++++++++--
1 file changed, 48 insertions(+), 3 deletions(-)

diff --git a/drivers/input/touchscreen/atmel_mxt_ts.c b/drivers/input/touchscreen/atmel_mxt_ts.c
index 49bdf5cf3a0d..3f1ebe14802f 100644
--- a/drivers/input/touchscreen/atmel_mxt_ts.c
+++ b/drivers/input/touchscreen/atmel_mxt_ts.c
@@ -20,6 +20,7 @@
#include <linux/i2c.h>
#include <linux/input/mt.h>
#include <linux/interrupt.h>
+#include <linux/irq.h>
#include <linux/of.h>
#include <linux/property.h>
#include <linux/slab.h>
@@ -129,6 +130,7 @@ struct t9_range {
/* MXT_SPT_COMMSCONFIG_T18 */
#define MXT_COMMS_CTRL 0
#define MXT_COMMS_CMD 1
+#define MXT_COMMS_RETRIGEN BIT(6)

/* MXT_DEBUG_DIAGNOSTIC_T37 */
#define MXT_DIAGNOSTIC_PAGEUP 0x01
@@ -308,6 +310,7 @@ struct mxt_data {
struct t7_config t7_cfg;
struct mxt_dbg dbg;
struct gpio_desc *reset_gpio;
+ bool use_retrigen_workaround;

/* Cached parameters from object table */
u16 T5_address;
@@ -318,6 +321,7 @@ struct mxt_data {
u16 T71_address;
u8 T9_reportid_min;
u8 T9_reportid_max;
+ u16 T18_address;
u8 T19_reportid;
u16 T44_address;
u8 T100_reportid_min;
@@ -1190,9 +1194,11 @@ static int mxt_acquire_irq(struct mxt_data *data)

enable_irq(data->irq);

- error = mxt_process_messages_until_invalid(data);
- if (error)
- return error;
+ if (data->use_retrigen_workaround) {
+ error = mxt_process_messages_until_invalid(data);
+ if (error)
+ return error;
+ }

return 0;
}
@@ -1282,6 +1288,33 @@ static u32 mxt_calculate_crc(u8 *base, off_t start_off, off_t end_off)
return crc;
}

+static int mxt_check_retrigen(struct mxt_data *data)
+{
+ struct i2c_client *client = data->client;
+ int error;
+ int val;
+
+ data->use_retrigen_workaround = false;
+
+ if (irq_get_trigger_type(data->irq) & IRQF_TRIGGER_LOW)
+ return 0;
+
+ if (data->T18_address) {
+ error = __mxt_read_reg(client,
+ data->T18_address + MXT_COMMS_CTRL,
+ 1, &val);
+ if (error)
+ return error;
+
+ if (val & MXT_COMMS_RETRIGEN)
+ return 0;
+ }
+
+ dev_warn(&client->dev, "Enabling RETRIGEN workaround\n");
+ data->use_retrigen_workaround = true;
+ return 0;
+}
+
static int mxt_prepare_cfg_mem(struct mxt_data *data, struct mxt_cfg *cfg)
{
struct device *dev = &data->client->dev;
@@ -1561,6 +1594,10 @@ static int mxt_update_cfg(struct mxt_data *data, const struct firmware *fw)

mxt_update_crc(data, MXT_COMMAND_BACKUPNV, MXT_BACKUP_VALUE);

+ ret = mxt_check_retrigen(data);
+ if (ret)
+ goto release_mem;
+
ret = mxt_soft_reset(data);
if (ret)
goto release_mem;
@@ -1604,6 +1641,7 @@ static void mxt_free_object_table(struct mxt_data *data)
data->T71_address = 0;
data->T9_reportid_min = 0;
data->T9_reportid_max = 0;
+ data->T18_address = 0;
data->T19_reportid = 0;
data->T44_address = 0;
data->T100_reportid_min = 0;
@@ -1678,6 +1716,9 @@ static int mxt_parse_object_table(struct mxt_data *data,
object->num_report_ids - 1;
data->num_touchids = object->num_report_ids;
break;
+ case MXT_SPT_COMMSCONFIG_T18:
+ data->T18_address = object->start_address;
+ break;
case MXT_SPT_MESSAGECOUNT_T44:
data->T44_address = object->start_address;
break;
@@ -2145,6 +2186,10 @@ static int mxt_initialize(struct mxt_data *data)
if (error)
return error;

+ error = mxt_check_retrigen(data);
+ if (error)
+ return error;
+
error = mxt_sysfs_init(data);
if (error)
return error;
--
2.17.1

2020-05-24 21:30:52

by Pavel Machek

[permalink] [raw]
Subject: Re: [PATCH v11 00/56] atmel_mxt_ts misc

Hi!

> This patch-set forward ports Nick Dyer's work in ndyer/linux github
> repository as long as some other features and fixes

This is quite large series, retransmitted quite often. I believe I have
hardware I could test this on (Motorola Droid 4)... but the cover letter
does not really tesll me what to expect....

Best regards,
Pavel

> Balasubramani Vivekanandan (2):
> Input: atmel_mxt_ts: Limit the max bytes transferred in an i2c
> transaction
> Input: atmel_mxt_ts: use gpiod_set_value_cansleep for reset pin
>
> Dean Jenkins (1):
> Input: atmel_mxt_ts: return error from
> mxt_process_messages_until_invalid()
>
> Deepak Das (6):
> Input: Atmel: improve error handling in mxt_start()
> Input: Atmel: improve error handling in mxt_initialize()
> Input: Atmel: improve error handling in mxt_update_cfg()
> Input: Atmel: Improve error handling in mxt_initialize_input_device()
> Input: Atmel: handle ReportID "0x00" while processing T5 messages
> Input: Atmel: use T44 object to process T5 messages
>
> George G. Davis (1):
> input: atmel_mxt_ts: export GPIO reset line via sysfs
>
> Janus Cheng (1):
> Input: atmel_mxt_ts - check data->input_dev is not null in
> mxt_input_sync()
>
> Jiada Wang (12):
> Input: introduce input_mt_report_slot_inactive
> dt-bindings: input: atmel: add suspend mode support
> Input: atmel_mxt_ts: Rename mxt_fw_version_show to fw_version_show
> Input: atmel_mxt_ts: Rename mxt_hw_version_show to hw_version_show
> Input: atmel_mxt_ts: rename mxt_update_fw_store to update_fw_store
> dt-bindings: input: atmel: provide name of configuration file
> dt-bindings: input: atmel: support to specify input name
> Input: atmel_mxt_ts - rename mxt_object_show to object_show
> Input: atmel_mxt_ts - delay enabling IRQ when not using regulators
> Input: atmel_mxt_ts - eliminate data->raw_info_block
> input: atmel_mxt_ts: don't disable IRQ before remove of
> mxt_fw_attr_group
> Input: atmel_mxt_ts - Fix compilation warning
>
> Karl Tsou (1):
> Input: atmel_mxt_ts - add debug for T92 gesture and T93 touch seq msgs
>
> Kautuk Consul (2):
> Input: atmel_mxt_ts - Change call-points of mxt_free_* functions
> Input: atmel_mxt_ts - rely on calculated_crc rather than file
> config_crc
>
> Naveen Chakka (2):
> input: touchscreen: atmel_mxt_ts: Added sysfs entry for touchscreen
> status
> input: atmel_mxt_ts: added sysfs interface to update atmel T38 data
>
> Nick Dyer (25):
> Input: atmel_mxt_ts - rework sysfs init/remove
> Input: atmel_mxt_ts - only read messages in mxt_acquire_irq() when
> necessary
> Input: atmel_mxt_ts - split large i2c transfers into blocks
> Input: atmel_mxt_ts - output status from T48 Noise Supression
> Input: atmel_mxt_ts - output status from T42 Touch Suppression
> Input: atmel_mxt_ts - implement T9 vector/orientation support
> Input: atmel_mxt_ts - implement T15 Key Array support
> Input: atmel_mxt_ts - handle reports from T47 Stylus object
> Input: atmel_mxt_ts - implement support for T107 active stylus
> Input: atmel_mxt_ts - release touch state during suspend
> Input: atmel_mxt_ts - add regulator control support
> Input: atmel_mxt_ts - report failures in suspend/resume
> Input: atmel_mxt_ts - allow specification of firmware file name
> Input: atmel_mxt_ts - handle cfg filename via pdata/sysfs
> Input: atmel_mxt_ts - allow input name to be specified in platform
> data
> Input: atmel_mxt_ts - refactor firmware flash to extract context into
> struct
> Input: atmel_mxt_ts - refactor code to enter bootloader into separate
> func
> Input: atmel_mxt_ts - combine bootloader version query with probe
> Input: atmel_mxt_ts - improve bootloader state machine handling
> Input: atmel_mxt_ts - rename bl_completion to chg_completion
> Input: atmel_mxt_ts - make bootloader interrupt driven
> Input: atmel_mxt_ts - implement I2C retries
> Input: atmel_mxt_ts - orientation is not present in hover
> Input: atmel_mxt_ts - implement debug output for messages
> Input: atmel_mxt_ts - implement improved debug message interface
>
> Nikhil Ravindran (1):
> Input: atmel_mxt_ts: Add support for run self-test routine.
>
> karl tsou (1):
> Input: atmel_mxt_ts - add config checksum attribute to sysfs
>
> keerthikumarp (1):
> input: atmel_mxt_ts: Add Missing Delay for reset handling of Atmel
> touch panel controller in detachable displays.
> ---
> v11:
> Following commits in v10 have been dropped
> dt-bindings: input: atmel: support to set max bytes transferred
> Input: atmel_mxt_ts: Implement synchronization during various operation
>
> Following commits have been added
> Input: atmel_mxt_ts - check data->input_dev is not null in
> mxt_input_sync()
> Input: atmel_mxt_ts - rename mxt_object_show to object_show
> input: atmel_mxt_ts: don't disable IRQ before remove of
> mxt_fw_attr_group
>
> Following commits have been updated to address review findings
> dt-bindings: input: atmel: add suspend mode support
> input: touchscreen: atmel_mxt_ts: Added sysfs entry for touchscreen
> status
> Input: atmel_mxt_ts - handle cfg filename via pdata/sysfs
> Input: atmel_mxt_ts - delay enabling IRQ when not using regulators
>
> v10:
> Following commits have been updated
> input: touchscreen: atmel_mxt_ts: Added sysfs entry for touchscreen
> status
> dt-bindings: input: atmel: add suspend mode support
> Input: atmel_mxt_ts: Implement synchronization during various operation
>
> Re-order commits to avoid compilation error
>
> v9:
> Following commits have been added
> Input: atmel_mxt_ts: rename mxt_update_fw_store to update_fw_store
> Input: atmel_mxt_ts: Rename mxt_hw_version_show to hw_version_show
> Input: atmel_mxt_ts: Rename mxt_fw_version_show to fw_version_show
>
> Addressed dev_attrs related checkpatch warnings
>
> v8:
> Fix checkpatch errors and warnings
>
> Fix issue in commit (" Input: atmel_mxt_ts - only read messages in
> mxt_acquire_irq() when necessary")
> reported by Dmitry Osipenko
>
> Cleanup coding style for commits
> Input: atmel_mxt_ts - add regulator control support
> Input: atmel_mxt_ts - improve bootloader state machine handling
>
> v7:
> Fix regression found when updating firmware
> Following commits have been updated to fix regression found when
> updating firmware
> Input: atmel_mxt_ts - improve bootloader state machine handling
> Input: atmel_mxt_ts - make bootloader interrupt driven
> input: touchscreen: atmel_mxt_ts: Added sysfs entry for touchscreen
> status
> Input: atmel_mxt_ts: Implement synchronization during various operation
>
> v6:
> Fix issue in commit ("Input: introduce input_mt_report_slot_inactive")
> reported by kernel test robot
>
> v5:
> Following commits have been updated to address warnings & errors
> reported by kbuild test robot
> Input: atmel_mxt_ts - make bootloader interrupt driven
> Input: atmel_mxt_ts - add debug for T92 gesture and T93 touch seq msgs
>
> Following commit has been updated
> Input: introduce input_mt_report_slot_inactive
>
> v4:
> Following commit in v3 patch-set has been removed
> Input: switch to use return value of input_mt_report_slot_state
>
> Following commit has been updated to address checkpatch warning
> Input: atmel_mxt_ts: Implement synchronization during various operation
>
> v3:
> Following commits have been updated compared to v2 patchset
> Input: atmel_mxt_ts - implement debug output for messages
> - added inline comment
> Input: atmel_mxt_ts - add debug for T92 gesture and T93 touch seq msg
> - changed dev_info() to dev_dbg()
>
> v2:
> Following commit in v1 patchset has been split into two commits
> Input: introduce input_mt_report_slot_inactive
>
> Following commits have been updated compared to v1 patchset
> Input: atmel_mxt_ts - split large i2c transfers into blocks
> Input: atmel_mxt_ts - output status from T42 Touch Suppression
>
> Following commits in v1 patchset have been squashed
> Input: touchscreen: Atmel: Add device tree support for T15 key array
> objects
> Input: atmel_mxt_ts - check data->input_dev is not null in
> mxt_input_sync()
> Input: atmel_mxt_ts - check firmware format before entering bootloader
> Input: atmel_mxt_ts: update stale use_retrigen_workaround flag
> input: atmel_mxt_ts: move bootloader probe from mxt_initialize()
> input: Atmel: limit the max bytes transferred while reading T5 messages
> Input: atmel_mxt_ts: Use msecs_to_jiffies() instead of HZ
> Input: atmel_mxt_ts: Use complete when in_bootloader true
> Input: atmel_mxt_ts: Prevent crash due to freeing of input device
> input: atmel_mxt_ts: Add NULL check for sysfs attribute debug_msg_attr
>
> Following commits in v1 patchset have been dropped:
> Input: atmel_mxt_ts - configure and use gpios as real gpios
> Input: touchscreen: Atmel: Enable IRQ_DISABLE_UNLAZY flag for interrupt
> Input: atmel_mxt_ts - add memory access interface via sysfs
> Input: atmel_mxt_ts: Remove sysfs attributes during driver detach
> Input: atmel_mxt_ts: Avoid race condition in freeing of input device
>
> v1: initial version
> ---
>
> .../bindings/input/atmel,maxtouch.txt | 14 +
> MAINTAINERS | 1 +
> drivers/hid/hid-alps.c | 3 +-
> drivers/hid/hid-multitouch.c | 6 +-
> drivers/input/misc/xen-kbdfront.c | 2 +-
> drivers/input/mouse/elan_i2c_core.c | 2 +-
> drivers/input/touchscreen/atmel_mxt_ts.c | 2072 ++++++++++++++---
> drivers/input/touchscreen/cyttsp4_core.c | 5 +-
> drivers/input/touchscreen/cyttsp_core.c | 2 +-
> drivers/input/touchscreen/melfas_mip4.c | 4 +-
> drivers/input/touchscreen/mms114.c | 2 +-
> drivers/input/touchscreen/raspberrypi-ts.c | 2 +-
> drivers/input/touchscreen/stmfts.c | 2 +-
> include/dt-bindings/input/atmel_mxt_ts.h | 23 +
> include/linux/input/mt.h | 5 +
> 15 files changed, 1790 insertions(+), 355 deletions(-)
> create mode 100644 include/dt-bindings/input/atmel_mxt_ts.h
>
> --
> 2.17.1

--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

2020-05-27 10:06:55

by Dmitry Torokhov

[permalink] [raw]
Subject: Re: [PATCH v11 00/56] atmel_mxt_ts misc

Hi Jiada,

On Thu, May 07, 2020 at 10:56:00PM -0700, Jiada Wang wrote:
> This patch-set forward ports Nick Dyer's work in ndyer/linux github
> repository as long as some other features and fixes

Sorry for ignoring the series for quite a while. I guess my biggest
issue with the series is that quite a bit of patches are trying to
handle the fallout from a very unfortunate design decision in the
driver: the fact that it attempts to automatically upload firmware and
config on every boot/probe. This design was done at my urging because I
did not have access to the technical documentation and did not realize
that the controller has non-volatile memory for both firmware and
configuration. We should only attempt to automatically load firmware
where device does not have non-volatile memory and is unable function
otherwise, in all other cases we better leave it to userspace to decide
whether to execute firmware update and when. The kernel should only
provide facilities so that userspace can initiate firmware update. This
design has worked well for Chrome OS for many years (it used Atmel
controllers in several products), and I would like to bring it to the
mainline.

Thanks.

--
Dmitry

2020-06-25 13:51:56

by Jiada Wang

[permalink] [raw]
Subject: Re: [PATCH v11 00/56] atmel_mxt_ts misc

Hello Dmitry

sorry for the delay,

On 2020/05/27 15:43, Dmitry Torokhov wrote:
> Hi Jiada,
>
> On Thu, May 07, 2020 at 10:56:00PM -0700, Jiada Wang wrote:
>> This patch-set forward ports Nick Dyer's work in ndyer/linux github
>> repository as long as some other features and fixes
>
> Sorry for ignoring the series for quite a while. I guess my biggest
> issue with the series is that quite a bit of patches are trying to
> handle the fallout from a very unfortunate design decision in the
> driver: the fact that it attempts to automatically upload firmware and
> config on every boot/probe. This design was done at my urging because I
> did not have access to the technical documentation and did not realize
> that the controller has non-volatile memory for both firmware and
> configuration. We should only attempt to automatically load firmware
> where device does not have non-volatile memory and is unable function
> otherwise, in all other cases we better leave it to userspace to decide
> whether to execute firmware update and when. The kernel should only
> provide facilities so that userspace can initiate firmware update. This
> design has worked well for Chrome OS for many years (it used Atmel
> controllers in several products), and I would like to bring it to the
> mainline.

I agree with you, I will review the patch-set,
and only pick these not related to firmware/cfg upload

Thanks,
jiada
>
> Thanks.
>

2020-07-08 13:07:02

by Jiada Wang

[permalink] [raw]
Subject: Re: [PATCH v11 00/56] atmel_mxt_ts misc

Hello Dmitry

I am working on refining this series,
regarding your comment about drop changes related to
upload firmware and config during boot.

I found currently only config is uploaded during every boot.
but firmware is only uploaded when userspace asks to do so via
sysfs interface.

Could you help to confirm if this is the case?

Thanks,
Jiada

On 2020/06/25 22:50, Wang, Jiada wrote:
> Hello Dmitry
>
> sorry for the delay,
>
> On 2020/05/27 15:43, Dmitry Torokhov wrote:
>> Hi Jiada,
>>
>> On Thu, May 07, 2020 at 10:56:00PM -0700, Jiada Wang wrote:
>>> This patch-set forward ports Nick Dyer's work in ndyer/linux github
>>> repository as long as some other features and fixes
>>
>> Sorry for ignoring the series for quite a while. I guess my biggest
>> issue with the series is that quite a bit of patches are trying to
>> handle the fallout from a very unfortunate design decision in the
>> driver: the fact that it attempts to automatically upload firmware and
>> config on every boot/probe. This design was done at my urging because I
>> did not have access to the technical documentation and did not realize
>> that the controller has non-volatile memory for both firmware and
>> configuration. We should only attempt to automatically load firmware
>> where device does not have non-volatile memory and is unable function
>> otherwise, in all other cases we better leave it to userspace to decide
>> whether to execute firmware update and when. The kernel should only
>> provide facilities so that userspace can initiate firmware update. This
>> design has worked well for Chrome OS for many years (it used Atmel
>> controllers in several products), and I would like to bring it to the
>> mainline.
>
> I agree with you, I will review the patch-set,
> and only pick these not related to firmware/cfg upload
>
> Thanks,
> jiada
>>
>> Thanks.
>>

2020-07-17 07:22:41

by Jiada Wang

[permalink] [raw]
Subject: Re: [PATCH v11 00/56] atmel_mxt_ts misc

Hello All

I am thinking it doesn't make sense to keep the series
with such a big chunk of patches,
I will divide the series into several small series

Thanks,
Jiada

On 2020/07/08 22:05, Wang, Jiada wrote:
> Hello Dmitry
>
> I am working on refining this series,
> regarding your comment about drop changes related to
> upload firmware and config during boot.
>
> I found currently only config is uploaded during every boot.
> but firmware is only uploaded when userspace asks to do so via
> sysfs interface.
>
> Could you help to confirm if this is the case?
>
> Thanks,
> Jiada
>
> On 2020/06/25 22:50, Wang, Jiada wrote:
>> Hello Dmitry
>>
>> sorry for the delay,
>>
>> On 2020/05/27 15:43, Dmitry Torokhov wrote:
>>> Hi Jiada,
>>>
>>> On Thu, May 07, 2020 at 10:56:00PM -0700, Jiada Wang wrote:
>>>> This patch-set forward ports Nick Dyer's work in ndyer/linux github
>>>> repository as long as some other features and fixes
>>>
>>> Sorry for ignoring the series for quite a while. I guess my biggest
>>> issue with the series is that quite a bit of patches are trying to
>>> handle the fallout from a very unfortunate design decision in the
>>> driver: the fact that it attempts to automatically upload firmware and
>>> config on every boot/probe. This design was done at my urging because I
>>> did not have access to the technical documentation and did not realize
>>> that the controller has non-volatile memory for both firmware and
>>> configuration. We should only attempt to automatically load firmware
>>> where device does not have non-volatile memory and is unable function
>>> otherwise, in all other cases we better leave it to userspace to decide
>>> whether to execute firmware update and when. The kernel should only
>>> provide facilities so that userspace can initiate firmware update. This
>>> design has worked well for Chrome OS for many years (it used Atmel
>>> controllers in several products), and I would like to bring it to the
>>> mainline.
>>
>> I agree with you, I will review the patch-set,
>> and only pick these not related to firmware/cfg upload
>>
>> Thanks,
>> jiada
>>>
>>> Thanks.
>>>