]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
Fixes for 6.0
authorSasha Levin <sashal@kernel.org>
Tue, 27 Dec 2022 20:20:29 +0000 (15:20 -0500)
committerSasha Levin <sashal@kernel.org>
Tue, 27 Dec 2022 20:20:29 +0000 (15:20 -0500)
Signed-off-by: Sasha Levin <sashal@kernel.org>
queue-6.0/dt-bindings-input-iqs7222-add-support-for-iqs7222a-v.patch [new file with mode: 0644]
queue-6.0/dt-bindings-input-iqs7222-correct-minimum-slider-siz.patch [new file with mode: 0644]
queue-6.0/dt-bindings-input-iqs7222-reduce-linux-code-to-optio.patch [new file with mode: 0644]
queue-6.0/input-iqs7222-add-support-for-iqs7222a-v1.13.patch [new file with mode: 0644]
queue-6.0/input-iqs7222-trim-force-communication-command.patch [new file with mode: 0644]
queue-6.0/series

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 (file)
index 0000000..90c2e4e
--- /dev/null
@@ -0,0 +1,75 @@
+From 7481297d93bf5d140f3d4cf14ea3423b83f21ec2 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Sat, 22 Oct 2022 19:57:13 -0500
+Subject: dt-bindings: input: iqs7222: Add support for IQS7222A v1.13+
+
+From: Jeff LaBundy <jeff@labundy.com>
+
+[ 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 <jeff@labundy.com>
+Reviewed-by: Rob Herring <robh@kernel.org>
+Link: https://lore.kernel.org/r/Y1SRaVGwj30z/g6r@nixie71
+Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ .../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 = <KEY_PLAYPAUSE>;
+-                                    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 = <KEY_NEXTSONG>;
+-                                    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 (file)
index 0000000..889c8eb
--- /dev/null
@@ -0,0 +1,46 @@
+From bdd2465983aa1c8286a96d9b4d5c039acfd99a08 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Sat, 22 Oct 2022 19:56:51 -0500
+Subject: dt-bindings: input: iqs7222: Correct minimum slider size
+
+From: Jeff LaBundy <jeff@labundy.com>
+
+[ 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 <jeff@labundy.com>
+Acked-by: Rob Herring <robh@kernel.org>
+Link: https://lore.kernel.org/r/Y1SRU37t74wRvZv3@nixie71
+Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ 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 (file)
index 0000000..354a9a4
--- /dev/null
@@ -0,0 +1,51 @@
+From 75d5fe11fdd128e0c73528ae79172562a8a3659f Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Sat, 22 Oct 2022 19:56:24 -0500
+Subject: dt-bindings: input: iqs7222: Reduce 'linux,code' to optional
+
+From: Jeff LaBundy <jeff@labundy.com>
+
+[ 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 <jeff@labundy.com>
+Reviewed-by: Rob Herring <robh@kernel.org>
+Link: https://lore.kernel.org/r/Y1SROIrrC1LwX0Sd@nixie71
+Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ 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 (file)
index 0000000..04f4eb5
--- /dev/null
@@ -0,0 +1,204 @@
+From 569dabbf137cd889852dd19abe1731cdd6d82693 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Sat, 22 Oct 2022 19:57:25 -0500
+Subject: Input: iqs7222 - add support for IQS7222A v1.13+
+
+From: Jeff LaBundy <jeff@labundy.com>
+
+[ 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 <jeff@labundy.com>
+Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
+Link: https://lore.kernel.org/r/Y1SRdbK1Dp2q7O8o@nixie71
+Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ 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 (file)
index 0000000..e92e7b4
--- /dev/null
@@ -0,0 +1,38 @@
+From 598aaeee62c2b1adf6ade83f37408337bcf0090e Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Thu, 8 Sep 2022 14:22:46 -0700
+Subject: Input: iqs7222 - trim force communication command
+
+From: Jeff LaBundy <jeff@labundy.com>
+
+[ 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 <jeff@labundy.com>
+Link: https://lore.kernel.org/r/20220908131548.48120-6-jeff@labundy.com
+Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ 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
+
index dbf20c0676e13c8b352db118774ae3743faeb086..5de3c98456662c8ecfa68cc712bccbfde4c8481e 100644 (file)
@@ -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