From: Sasha Levin Date: Tue, 27 Dec 2022 20:20:29 +0000 (-0500) Subject: Fixes for 6.0 X-Git-Tag: v5.15.86~51 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=a97c3883e99ea0ce4e82a8af2ae827d84385bc51;p=thirdparty%2Fkernel%2Fstable-queue.git Fixes for 6.0 Signed-off-by: Sasha Levin --- diff --git a/queue-6.0/dt-bindings-input-iqs7222-add-support-for-iqs7222a-v.patch b/queue-6.0/dt-bindings-input-iqs7222-add-support-for-iqs7222a-v.patch new file mode 100644 index 00000000000..90c2e4e9edf --- /dev/null +++ b/queue-6.0/dt-bindings-input-iqs7222-add-support-for-iqs7222a-v.patch @@ -0,0 +1,75 @@ +From 7481297d93bf5d140f3d4cf14ea3423b83f21ec2 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Sat, 22 Oct 2022 19:57:13 -0500 +Subject: dt-bindings: input: iqs7222: Add support for IQS7222A v1.13+ + +From: Jeff LaBundy + +[ Upstream commit 97384a65c5e304ccab0477751546f5519d9371c3 ] + +IQS7222A revisions 1.13 and later widen the gesture multiplier from +x4 ms to x16 ms; update the binding accordingly. + +As part of this change, refresh the corresponding properties in the +example as well. + +Fixes: 44dc42d254bf ("dt-bindings: input: Add bindings for Azoteq IQS7222A/B/C") +Signed-off-by: Jeff LaBundy +Reviewed-by: Rob Herring +Link: https://lore.kernel.org/r/Y1SRaVGwj30z/g6r@nixie71 +Signed-off-by: Dmitry Torokhov +Signed-off-by: Sasha Levin +--- + .../bindings/input/azoteq,iqs7222.yaml | 16 ++++++++-------- + 1 file changed, 8 insertions(+), 8 deletions(-) + +diff --git a/Documentation/devicetree/bindings/input/azoteq,iqs7222.yaml b/Documentation/devicetree/bindings/input/azoteq,iqs7222.yaml +index 913fd2da9862..9ddba7f2e7aa 100644 +--- a/Documentation/devicetree/bindings/input/azoteq,iqs7222.yaml ++++ b/Documentation/devicetree/bindings/input/azoteq,iqs7222.yaml +@@ -572,9 +572,9 @@ patternProperties: + linux,code: true + + azoteq,gesture-max-ms: +- multipleOf: 4 ++ multipleOf: 16 + minimum: 0 +- maximum: 1020 ++ maximum: 4080 + description: + Specifies the length of time (in ms) within which a tap, swipe + or flick gesture must be completed in order to be acknowledged +@@ -582,9 +582,9 @@ patternProperties: + gesture applies to all remaining swipe or flick gestures. + + azoteq,gesture-min-ms: +- multipleOf: 4 ++ multipleOf: 16 + minimum: 0 +- maximum: 124 ++ maximum: 496 + description: + Specifies the length of time (in ms) for which a tap gesture must + be held in order to be acknowledged by the device. +@@ -930,14 +930,14 @@ examples: + + event-tap { + linux,code = ; +- azoteq,gesture-max-ms = <600>; +- azoteq,gesture-min-ms = <24>; ++ azoteq,gesture-max-ms = <400>; ++ azoteq,gesture-min-ms = <32>; + }; + + event-flick-pos { + linux,code = ; +- azoteq,gesture-max-ms = <600>; +- azoteq,gesture-dist = <816>; ++ azoteq,gesture-max-ms = <800>; ++ azoteq,gesture-dist = <800>; + }; + + event-flick-neg { +-- +2.35.1 + diff --git a/queue-6.0/dt-bindings-input-iqs7222-correct-minimum-slider-siz.patch b/queue-6.0/dt-bindings-input-iqs7222-correct-minimum-slider-siz.patch new file mode 100644 index 00000000000..889c8eb16a3 --- /dev/null +++ b/queue-6.0/dt-bindings-input-iqs7222-correct-minimum-slider-siz.patch @@ -0,0 +1,46 @@ +From bdd2465983aa1c8286a96d9b4d5c039acfd99a08 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Sat, 22 Oct 2022 19:56:51 -0500 +Subject: dt-bindings: input: iqs7222: Correct minimum slider size + +From: Jeff LaBundy + +[ Upstream commit 99d03b54ef8506771c15deb714396665592f6adf ] + +The minimum slider size enforced by the driver is 1 or 16 for the +IQS7222C or IQS7222A, respectively. + +Fixes: 44dc42d254bf ("dt-bindings: input: Add bindings for Azoteq IQS7222A/B/C") +Signed-off-by: Jeff LaBundy +Acked-by: Rob Herring +Link: https://lore.kernel.org/r/Y1SRU37t74wRvZv3@nixie71 +Signed-off-by: Dmitry Torokhov +Signed-off-by: Sasha Levin +--- + Documentation/devicetree/bindings/input/azoteq,iqs7222.yaml | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/Documentation/devicetree/bindings/input/azoteq,iqs7222.yaml b/Documentation/devicetree/bindings/input/azoteq,iqs7222.yaml +index b4eb650dbcb8..913fd2da9862 100644 +--- a/Documentation/devicetree/bindings/input/azoteq,iqs7222.yaml ++++ b/Documentation/devicetree/bindings/input/azoteq,iqs7222.yaml +@@ -498,7 +498,7 @@ patternProperties: + + azoteq,slider-size: + $ref: /schemas/types.yaml#/definitions/uint32 +- minimum: 0 ++ minimum: 1 + maximum: 65535 + description: + Specifies the slider's one-dimensional resolution, equal to the +@@ -687,6 +687,7 @@ allOf: + properties: + azoteq,slider-size: + multipleOf: 16 ++ minimum: 16 + maximum: 4080 + + azoteq,top-speed: +-- +2.35.1 + diff --git a/queue-6.0/dt-bindings-input-iqs7222-reduce-linux-code-to-optio.patch b/queue-6.0/dt-bindings-input-iqs7222-reduce-linux-code-to-optio.patch new file mode 100644 index 00000000000..354a9a481f7 --- /dev/null +++ b/queue-6.0/dt-bindings-input-iqs7222-reduce-linux-code-to-optio.patch @@ -0,0 +1,51 @@ +From 75d5fe11fdd128e0c73528ae79172562a8a3659f Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Sat, 22 Oct 2022 19:56:24 -0500 +Subject: dt-bindings: input: iqs7222: Reduce 'linux,code' to optional + +From: Jeff LaBundy + +[ Upstream commit ccad486525c49df2fe2e7090990522547dfd2785 ] + +Following a recent refactor of the driver to properly drop unused +device nodes, the 'linux,code' property is now optional. This can +be useful for applications that define GPIO-mapped events that do +not correspond to any keycode. + +Fixes: 44dc42d254bf ("dt-bindings: input: Add bindings for Azoteq IQS7222A/B/C") +Signed-off-by: Jeff LaBundy +Reviewed-by: Rob Herring +Link: https://lore.kernel.org/r/Y1SROIrrC1LwX0Sd@nixie71 +Signed-off-by: Dmitry Torokhov +Signed-off-by: Sasha Levin +--- + Documentation/devicetree/bindings/input/azoteq,iqs7222.yaml | 6 ------ + 1 file changed, 6 deletions(-) + +diff --git a/Documentation/devicetree/bindings/input/azoteq,iqs7222.yaml b/Documentation/devicetree/bindings/input/azoteq,iqs7222.yaml +index 02e605fac408..b4eb650dbcb8 100644 +--- a/Documentation/devicetree/bindings/input/azoteq,iqs7222.yaml ++++ b/Documentation/devicetree/bindings/input/azoteq,iqs7222.yaml +@@ -473,9 +473,6 @@ patternProperties: + Specifies whether the event is to be interpreted as a key (1) + or a switch (5). + +- required: +- - linux,code +- + additionalProperties: false + + dependencies: +@@ -620,9 +617,6 @@ patternProperties: + GPIO, they must all be of the same type (proximity, touch or + slider gesture). + +- required: +- - linux,code +- + additionalProperties: false + + required: +-- +2.35.1 + diff --git a/queue-6.0/input-iqs7222-add-support-for-iqs7222a-v1.13.patch b/queue-6.0/input-iqs7222-add-support-for-iqs7222a-v1.13.patch new file mode 100644 index 00000000000..04f4eb5047d --- /dev/null +++ b/queue-6.0/input-iqs7222-add-support-for-iqs7222a-v1.13.patch @@ -0,0 +1,204 @@ +From 569dabbf137cd889852dd19abe1731cdd6d82693 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Sat, 22 Oct 2022 19:57:25 -0500 +Subject: Input: iqs7222 - add support for IQS7222A v1.13+ + +From: Jeff LaBundy + +[ Upstream commit 8d4c313c03f104c69e25ab03058d8955be9dc387 ] + +IQS7222A revisions 1.13 and later widen the gesture multiplier from +x4 ms to x16 ms. Add a means to scale the gesture timings specified +in the device tree based on the revision of the device. + +Fixes: e505edaedcb9 ("Input: add support for Azoteq IQS7222A/B/C") +Signed-off-by: Jeff LaBundy +Reviewed-by: Mattijs Korpershoek +Link: https://lore.kernel.org/r/Y1SRdbK1Dp2q7O8o@nixie71 +Signed-off-by: Dmitry Torokhov +Signed-off-by: Sasha Levin +--- + drivers/input/misc/iqs7222.c | 111 +++++++++++++++++++++++++++++++++++ + 1 file changed, 111 insertions(+) + +diff --git a/drivers/input/misc/iqs7222.c b/drivers/input/misc/iqs7222.c +index 6af25dfd1d2a..e47ab6c1177f 100644 +--- a/drivers/input/misc/iqs7222.c ++++ b/drivers/input/misc/iqs7222.c +@@ -86,7 +86,9 @@ enum iqs7222_reg_key_id { + IQS7222_REG_KEY_TOUCH, + IQS7222_REG_KEY_DEBOUNCE, + IQS7222_REG_KEY_TAP, ++ IQS7222_REG_KEY_TAP_LEGACY, + IQS7222_REG_KEY_AXIAL, ++ IQS7222_REG_KEY_AXIAL_LEGACY, + IQS7222_REG_KEY_WHEEL, + IQS7222_REG_KEY_NO_WHEEL, + IQS7222_REG_KEY_RESERVED +@@ -202,10 +204,68 @@ struct iqs7222_dev_desc { + int allow_offset; + int event_offset; + int comms_offset; ++ bool legacy_gesture; + struct iqs7222_reg_grp_desc reg_grps[IQS7222_NUM_REG_GRPS]; + }; + + static const struct iqs7222_dev_desc iqs7222_devs[] = { ++ { ++ .prod_num = IQS7222_PROD_NUM_A, ++ .fw_major = 1, ++ .fw_minor = 13, ++ .sldr_res = U8_MAX * 16, ++ .touch_link = 1768, ++ .allow_offset = 9, ++ .event_offset = 10, ++ .comms_offset = 12, ++ .reg_grps = { ++ [IQS7222_REG_GRP_STAT] = { ++ .base = IQS7222_SYS_STATUS, ++ .num_row = 1, ++ .num_col = 8, ++ }, ++ [IQS7222_REG_GRP_CYCLE] = { ++ .base = 0x8000, ++ .num_row = 7, ++ .num_col = 3, ++ }, ++ [IQS7222_REG_GRP_GLBL] = { ++ .base = 0x8700, ++ .num_row = 1, ++ .num_col = 3, ++ }, ++ [IQS7222_REG_GRP_BTN] = { ++ .base = 0x9000, ++ .num_row = 12, ++ .num_col = 3, ++ }, ++ [IQS7222_REG_GRP_CHAN] = { ++ .base = 0xA000, ++ .num_row = 12, ++ .num_col = 6, ++ }, ++ [IQS7222_REG_GRP_FILT] = { ++ .base = 0xAC00, ++ .num_row = 1, ++ .num_col = 2, ++ }, ++ [IQS7222_REG_GRP_SLDR] = { ++ .base = 0xB000, ++ .num_row = 2, ++ .num_col = 11, ++ }, ++ [IQS7222_REG_GRP_GPIO] = { ++ .base = 0xC000, ++ .num_row = 1, ++ .num_col = 3, ++ }, ++ [IQS7222_REG_GRP_SYS] = { ++ .base = IQS7222_SYS_SETUP, ++ .num_row = 1, ++ .num_col = 13, ++ }, ++ }, ++ }, + { + .prod_num = IQS7222_PROD_NUM_A, + .fw_major = 1, +@@ -215,6 +275,7 @@ static const struct iqs7222_dev_desc iqs7222_devs[] = { + .allow_offset = 9, + .event_offset = 10, + .comms_offset = 12, ++ .legacy_gesture = true, + .reg_grps = { + [IQS7222_REG_GRP_STAT] = { + .base = IQS7222_SYS_STATUS, +@@ -874,6 +935,16 @@ static const struct iqs7222_prop_desc iqs7222_props[] = { + .reg_offset = 9, + .reg_shift = 8, + .reg_width = 8, ++ .val_pitch = 16, ++ .label = "maximum gesture time", ++ }, ++ { ++ .name = "azoteq,gesture-max-ms", ++ .reg_grp = IQS7222_REG_GRP_SLDR, ++ .reg_key = IQS7222_REG_KEY_TAP_LEGACY, ++ .reg_offset = 9, ++ .reg_shift = 8, ++ .reg_width = 8, + .val_pitch = 4, + .label = "maximum gesture time", + }, +@@ -884,6 +955,16 @@ static const struct iqs7222_prop_desc iqs7222_props[] = { + .reg_offset = 9, + .reg_shift = 3, + .reg_width = 5, ++ .val_pitch = 16, ++ .label = "minimum gesture time", ++ }, ++ { ++ .name = "azoteq,gesture-min-ms", ++ .reg_grp = IQS7222_REG_GRP_SLDR, ++ .reg_key = IQS7222_REG_KEY_TAP_LEGACY, ++ .reg_offset = 9, ++ .reg_shift = 3, ++ .reg_width = 5, + .val_pitch = 4, + .label = "minimum gesture time", + }, +@@ -897,6 +978,16 @@ static const struct iqs7222_prop_desc iqs7222_props[] = { + .val_pitch = 16, + .label = "gesture distance", + }, ++ { ++ .name = "azoteq,gesture-dist", ++ .reg_grp = IQS7222_REG_GRP_SLDR, ++ .reg_key = IQS7222_REG_KEY_AXIAL_LEGACY, ++ .reg_offset = 10, ++ .reg_shift = 8, ++ .reg_width = 8, ++ .val_pitch = 16, ++ .label = "gesture distance", ++ }, + { + .name = "azoteq,gesture-max-ms", + .reg_grp = IQS7222_REG_GRP_SLDR, +@@ -904,6 +995,16 @@ static const struct iqs7222_prop_desc iqs7222_props[] = { + .reg_offset = 10, + .reg_shift = 0, + .reg_width = 8, ++ .val_pitch = 16, ++ .label = "maximum gesture time", ++ }, ++ { ++ .name = "azoteq,gesture-max-ms", ++ .reg_grp = IQS7222_REG_GRP_SLDR, ++ .reg_key = IQS7222_REG_KEY_AXIAL_LEGACY, ++ .reg_offset = 10, ++ .reg_shift = 0, ++ .reg_width = 8, + .val_pitch = 4, + .label = "maximum gesture time", + }, +@@ -2115,8 +2216,18 @@ static int iqs7222_parse_sldr(struct iqs7222_private *iqs7222, + if (!event_node) + continue; + ++ /* ++ * Depending on the device, gestures are either offered using ++ * one of two timing resolutions, or are not supported at all. ++ */ + if (reg_offset) + reg_key = IQS7222_REG_KEY_RESERVED; ++ else if (dev_desc->legacy_gesture && ++ iqs7222_sl_events[i].reg_key == IQS7222_REG_KEY_TAP) ++ reg_key = IQS7222_REG_KEY_TAP_LEGACY; ++ else if (dev_desc->legacy_gesture && ++ iqs7222_sl_events[i].reg_key == IQS7222_REG_KEY_AXIAL) ++ reg_key = IQS7222_REG_KEY_AXIAL_LEGACY; + else + reg_key = iqs7222_sl_events[i].reg_key; + +-- +2.35.1 + diff --git a/queue-6.0/input-iqs7222-trim-force-communication-command.patch b/queue-6.0/input-iqs7222-trim-force-communication-command.patch new file mode 100644 index 00000000000..e92e7b45ce6 --- /dev/null +++ b/queue-6.0/input-iqs7222-trim-force-communication-command.patch @@ -0,0 +1,38 @@ +From 598aaeee62c2b1adf6ade83f37408337bcf0090e Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Thu, 8 Sep 2022 14:22:46 -0700 +Subject: Input: iqs7222 - trim force communication command + +From: Jeff LaBundy + +[ Upstream commit 10e629d31aacb2348a1e9110c31a29e98b31ce38 ] + +According to the datasheets, writing only 0xFF is sufficient to +elicit a communication window. Remove the superfluous 0x00 from +the force communication command. + +Fixes: e505edaedcb9 ("Input: add support for Azoteq IQS7222A/B/C") +Signed-off-by: Jeff LaBundy +Link: https://lore.kernel.org/r/20220908131548.48120-6-jeff@labundy.com +Signed-off-by: Dmitry Torokhov +Signed-off-by: Sasha Levin +--- + drivers/input/misc/iqs7222.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/drivers/input/misc/iqs7222.c b/drivers/input/misc/iqs7222.c +index 0b2bf471b3a0..6af25dfd1d2a 100644 +--- a/drivers/input/misc/iqs7222.c ++++ b/drivers/input/misc/iqs7222.c +@@ -1077,7 +1077,7 @@ static int iqs7222_hard_reset(struct iqs7222_private *iqs7222) + + static int iqs7222_force_comms(struct iqs7222_private *iqs7222) + { +- u8 msg_buf[] = { 0xFF, 0x00, }; ++ u8 msg_buf[] = { 0xFF, }; + int ret; + + /* +-- +2.35.1 + diff --git a/queue-6.0/series b/queue-6.0/series index dbf20c0676e..5de3c984566 100644 --- a/queue-6.0/series +++ b/queue-6.0/series @@ -1020,3 +1020,8 @@ afs-fix-lost-servers_outstanding-count.patch pstore-make-sure-config_pstore_pmsg-selects-config_r.patch ima-simplify-ima_lsm_copy_rule.patch input-iqs7222-avoid-sending-empty-syn_report-events.patch +dt-bindings-input-iqs7222-reduce-linux-code-to-optio.patch +dt-bindings-input-iqs7222-correct-minimum-slider-siz.patch +dt-bindings-input-iqs7222-add-support-for-iqs7222a-v.patch +input-iqs7222-trim-force-communication-command.patch +input-iqs7222-add-support-for-iqs7222a-v1.13.patch