]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
Fixes for 5.10
authorSasha Levin <sashal@kernel.org>
Thu, 15 Sep 2022 12:31:59 +0000 (08:31 -0400)
committerSasha Levin <sashal@kernel.org>
Thu, 15 Sep 2022 12:31:59 +0000 (08:31 -0400)
Signed-off-by: Sasha Levin <sashal@kernel.org>
15 files changed:
queue-5.10/drm-amd-amdgpu-skip-ucode-loading-if-ucode_size-0.patch [new file with mode: 0644]
queue-5.10/drm-msm-rd-fix-fifo-full-deadlock.patch [new file with mode: 0644]
queue-5.10/gpio-mockup-remove-gpio-debugfs-when-remove-device.patch [new file with mode: 0644]
queue-5.10/hid-intel-ish-hid-ishtp-fix-ishtp-client-sending-dis.patch [new file with mode: 0644]
queue-5.10/hid-ishtp-hid-clienthid-ishtp-hid-client-fix-comment.patch [new file with mode: 0644]
queue-5.10/hwmon-pmbus-use-dev_err_probe-to-filter-eprobe_defer.patch [new file with mode: 0644]
queue-5.10/ieee802154-cc2520-add-rc-code-in-cc2520_tx.patch [new file with mode: 0644]
queue-5.10/input-goodix-add-support-for-gt1158.patch [new file with mode: 0644]
queue-5.10/input-iforce-add-support-for-boeder-force-feedback-w.patch [new file with mode: 0644]
queue-5.10/nvmet-tcp-fix-unhandled-tcp-states-in-nvmet_tcp_stat.patch [new file with mode: 0644]
queue-5.10/perf-arm_pmu_platform-fix-tests-for-platform_get_irq.patch [new file with mode: 0644]
queue-5.10/platform-x86-acer-wmi-acer-aspire-one-aod270-packard.patch [new file with mode: 0644]
queue-5.10/series
queue-5.10/tg3-disable-tg3-device-on-system-reboot-to-avoid-tri.patch [new file with mode: 0644]
queue-5.10/usb-storage-add-asus-0x0b05-0x1932-to-ignore_uas.patch [new file with mode: 0644]

diff --git a/queue-5.10/drm-amd-amdgpu-skip-ucode-loading-if-ucode_size-0.patch b/queue-5.10/drm-amd-amdgpu-skip-ucode-loading-if-ucode_size-0.patch
new file mode 100644 (file)
index 0000000..b1948cf
--- /dev/null
@@ -0,0 +1,35 @@
+From 382a980aee81a5da4106558ed3d53ba8f97dfee8 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Tue, 30 Aug 2022 16:33:01 +0800
+Subject: drm/amd/amdgpu: skip ucode loading if ucode_size == 0
+
+From: Chengming Gui <Jack.Gui@amd.com>
+
+[ Upstream commit 39c84b8e929dbd4f63be7e04bf1a2bcd92b44177 ]
+
+Restrict the ucode loading check to avoid frontdoor loading error.
+
+Signed-off-by: Chengming Gui <Jack.Gui@amd.com>
+Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
+index ae84d3b582aa5..8a2abcfd5a889 100644
+--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
+@@ -1921,7 +1921,7 @@ static int psp_load_smu_fw(struct psp_context *psp)
+ static bool fw_load_skip_check(struct psp_context *psp,
+                              struct amdgpu_firmware_info *ucode)
+ {
+-      if (!ucode->fw)
++      if (!ucode->fw || !ucode->ucode_size)
+               return true;
+       if (ucode->ucode_id == AMDGPU_UCODE_ID_SMC &&
+-- 
+2.35.1
+
diff --git a/queue-5.10/drm-msm-rd-fix-fifo-full-deadlock.patch b/queue-5.10/drm-msm-rd-fix-fifo-full-deadlock.patch
new file mode 100644 (file)
index 0000000..8ea4916
--- /dev/null
@@ -0,0 +1,39 @@
+From 3e4d8b7451fec8a98c25482e8b1654cc8a3f9419 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Sun, 7 Aug 2022 09:09:01 -0700
+Subject: drm/msm/rd: Fix FIFO-full deadlock
+
+From: Rob Clark <robdclark@chromium.org>
+
+[ Upstream commit 174974d8463b77c2b4065e98513adb204e64de7d ]
+
+If the previous thing cat'ing $debugfs/rd left the FIFO full, then
+subsequent open could deadlock in rd_write() (because open is blocked,
+not giving a chance for read() to consume any data in the FIFO).  Also
+it is generally a good idea to clear out old data from the FIFO.
+
+Signed-off-by: Rob Clark <robdclark@chromium.org>
+Patchwork: https://patchwork.freedesktop.org/patch/496706/
+Link: https://lore.kernel.org/r/20220807160901.2353471-2-robdclark@gmail.com
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/gpu/drm/msm/msm_rd.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/drivers/gpu/drm/msm/msm_rd.c b/drivers/gpu/drm/msm/msm_rd.c
+index fea30e7aa9e83..084b6ae2a4761 100644
+--- a/drivers/gpu/drm/msm/msm_rd.c
++++ b/drivers/gpu/drm/msm/msm_rd.c
+@@ -191,6 +191,9 @@ static int rd_open(struct inode *inode, struct file *file)
+       file->private_data = rd;
+       rd->open = true;
++      /* Reset fifo to clear any previously unread data: */
++      rd->fifo.head = rd->fifo.tail = 0;
++
+       /* the parsing tools need to know gpu-id to know which
+        * register database to load.
+        */
+-- 
+2.35.1
+
diff --git a/queue-5.10/gpio-mockup-remove-gpio-debugfs-when-remove-device.patch b/queue-5.10/gpio-mockup-remove-gpio-debugfs-when-remove-device.patch
new file mode 100644 (file)
index 0000000..4601c8e
--- /dev/null
@@ -0,0 +1,50 @@
+From 131a973b81c440c2f8b62077a8382f7de4a5771a Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Mon, 22 Aug 2022 04:10:25 +0000
+Subject: gpio: mockup: remove gpio debugfs when remove device
+
+From: Wei Yongjun <weiyongjun1@huawei.com>
+
+[ Upstream commit 303e6da99429510b1e4edf833afe90ac8542e747 ]
+
+GPIO mockup debugfs is created in gpio_mockup_probe() but
+forgot to remove when remove device. This patch add a devm
+managed callback for removing them.
+
+Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com>
+Signed-off-by: Bartosz Golaszewski <brgl@bgdev.pl>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/gpio/gpio-mockup.c | 9 ++++++++-
+ 1 file changed, 8 insertions(+), 1 deletion(-)
+
+diff --git a/drivers/gpio/gpio-mockup.c b/drivers/gpio/gpio-mockup.c
+index 67ed4f238d437..780cba4e30d0e 100644
+--- a/drivers/gpio/gpio-mockup.c
++++ b/drivers/gpio/gpio-mockup.c
+@@ -375,6 +375,13 @@ static void gpio_mockup_debugfs_setup(struct device *dev,
+       }
+ }
++static void gpio_mockup_debugfs_cleanup(void *data)
++{
++      struct gpio_mockup_chip *chip = data;
++
++      debugfs_remove_recursive(chip->dbg_dir);
++}
++
+ static void gpio_mockup_dispose_mappings(void *data)
+ {
+       struct gpio_mockup_chip *chip = data;
+@@ -457,7 +464,7 @@ static int gpio_mockup_probe(struct platform_device *pdev)
+       gpio_mockup_debugfs_setup(dev, chip);
+-      return 0;
++      return devm_add_action_or_reset(dev, gpio_mockup_debugfs_cleanup, chip);
+ }
+ static struct platform_driver gpio_mockup_driver = {
+-- 
+2.35.1
+
diff --git a/queue-5.10/hid-intel-ish-hid-ishtp-fix-ishtp-client-sending-dis.patch b/queue-5.10/hid-intel-ish-hid-ishtp-fix-ishtp-client-sending-dis.patch
new file mode 100644 (file)
index 0000000..1c482a1
--- /dev/null
@@ -0,0 +1,154 @@
+From 318334e1952e1e8435c45ba73970ce5b2ce87923 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Thu, 4 Aug 2022 08:59:19 +0800
+Subject: hid: intel-ish-hid: ishtp: Fix ishtp client sending disordered
+ message
+
+From: Even Xu <even.xu@intel.com>
+
+[ Upstream commit e1fa076706209cc447d7a2abd0843a18277e5ef7 ]
+
+There is a timing issue captured during ishtp client sending stress tests.
+It was observed during stress tests that ISH firmware is getting out of
+ordered messages. This is a rare scenario as the current set of ISH client
+drivers don't send much data to firmware. But this may not be the case
+going forward.
+
+When message size is bigger than IPC MTU, ishtp splits the message into
+fragments and uses serialized async method to send message fragments.
+The call stack:
+ishtp_cl_send_msg_ipc->ipc_tx_callback(first fregment)->
+ishtp_send_msg(with callback)->write_ipc_to_queue->
+write_ipc_from_queue->callback->ipc_tx_callback(next fregment)......
+
+When an ipc write complete interrupt is received, driver also calls
+write_ipc_from_queue->ipc_tx_callback in ISR to start sending of next fragment.
+
+Through ipc_tx_callback uses spin_lock to protect message splitting, as the
+serialized sending method will call back to ipc_tx_callback again, so it doesn't
+put sending under spin_lock, it causes driver cannot guarantee all fragments
+be sent in order.
+
+Considering this scenario:
+ipc_tx_callback just finished a fragment splitting, and not call ishtp_send_msg
+yet, there is a write complete interrupt happens, then ISR->write_ipc_from_queue
+->ipc_tx_callback->ishtp_send_msg->write_ipc_to_queue......
+
+Because ISR has higher exec priority than normal thread, this causes the new
+fragment be sent out before previous fragment. This disordered message causes
+invalid message to firmware.
+
+The solution is, to send fragments synchronously:
+Use ishtp_write_message writing fragments into tx queue directly one by one,
+instead of ishtp_send_msg only writing one fragment with completion callback.
+As no completion callback be used, so change ipc_tx_callback to ipc_tx_send.
+
+Signed-off-by: Even Xu <even.xu@intel.com>
+Acked-by: Srinivas Pandruvada <srinivas.pandruvada@intel.com>
+Signed-off-by: Jiri Kosina <jkosina@suse.cz>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/hid/intel-ish-hid/ishtp/client.c | 68 ++++++++++++++----------
+ 1 file changed, 39 insertions(+), 29 deletions(-)
+
+diff --git a/drivers/hid/intel-ish-hid/ishtp/client.c b/drivers/hid/intel-ish-hid/ishtp/client.c
+index 1cc157126fce7..c0d69303e3b09 100644
+--- a/drivers/hid/intel-ish-hid/ishtp/client.c
++++ b/drivers/hid/intel-ish-hid/ishtp/client.c
+@@ -626,13 +626,14 @@ static void ishtp_cl_read_complete(struct ishtp_cl_rb *rb)
+ }
+ /**
+- * ipc_tx_callback() - IPC tx callback function
++ * ipc_tx_send() - IPC tx send function
+  * @prm: Pointer to client device instance
+  *
+- * Send message over IPC either first time or on callback on previous message
+- * completion
++ * Send message over IPC. Message will be split into fragments
++ * if message size is bigger than IPC FIFO size, and all
++ * fragments will be sent one by one.
+  */
+-static void ipc_tx_callback(void *prm)
++static void ipc_tx_send(void *prm)
+ {
+       struct ishtp_cl *cl = prm;
+       struct ishtp_cl_tx_ring *cl_msg;
+@@ -677,32 +678,41 @@ static void ipc_tx_callback(void *prm)
+                           list);
+       rem = cl_msg->send_buf.size - cl->tx_offs;
+-      ishtp_hdr.host_addr = cl->host_client_id;
+-      ishtp_hdr.fw_addr = cl->fw_client_id;
+-      ishtp_hdr.reserved = 0;
+-      pmsg = cl_msg->send_buf.data + cl->tx_offs;
++      while (rem > 0) {
++              ishtp_hdr.host_addr = cl->host_client_id;
++              ishtp_hdr.fw_addr = cl->fw_client_id;
++              ishtp_hdr.reserved = 0;
++              pmsg = cl_msg->send_buf.data + cl->tx_offs;
++
++              if (rem <= dev->mtu) {
++                      /* Last fragment or only one packet */
++                      ishtp_hdr.length = rem;
++                      ishtp_hdr.msg_complete = 1;
++                      /* Submit to IPC queue with no callback */
++                      ishtp_write_message(dev, &ishtp_hdr, pmsg);
++                      cl->tx_offs = 0;
++                      cl->sending = 0;
+-      if (rem <= dev->mtu) {
+-              ishtp_hdr.length = rem;
+-              ishtp_hdr.msg_complete = 1;
+-              cl->sending = 0;
+-              list_del_init(&cl_msg->list);   /* Must be before write */
+-              spin_unlock_irqrestore(&cl->tx_list_spinlock, tx_flags);
+-              /* Submit to IPC queue with no callback */
+-              ishtp_write_message(dev, &ishtp_hdr, pmsg);
+-              spin_lock_irqsave(&cl->tx_free_list_spinlock, tx_free_flags);
+-              list_add_tail(&cl_msg->list, &cl->tx_free_list.list);
+-              ++cl->tx_ring_free_size;
+-              spin_unlock_irqrestore(&cl->tx_free_list_spinlock,
+-                      tx_free_flags);
+-      } else {
+-              /* Send IPC fragment */
+-              spin_unlock_irqrestore(&cl->tx_list_spinlock, tx_flags);
+-              cl->tx_offs += dev->mtu;
+-              ishtp_hdr.length = dev->mtu;
+-              ishtp_hdr.msg_complete = 0;
+-              ishtp_send_msg(dev, &ishtp_hdr, pmsg, ipc_tx_callback, cl);
++                      break;
++              } else {
++                      /* Send ipc fragment */
++                      ishtp_hdr.length = dev->mtu;
++                      ishtp_hdr.msg_complete = 0;
++                      /* All fregments submitted to IPC queue with no callback */
++                      ishtp_write_message(dev, &ishtp_hdr, pmsg);
++                      cl->tx_offs += dev->mtu;
++                      rem = cl_msg->send_buf.size - cl->tx_offs;
++              }
+       }
++
++      list_del_init(&cl_msg->list);
++      spin_unlock_irqrestore(&cl->tx_list_spinlock, tx_flags);
++
++      spin_lock_irqsave(&cl->tx_free_list_spinlock, tx_free_flags);
++      list_add_tail(&cl_msg->list, &cl->tx_free_list.list);
++      ++cl->tx_ring_free_size;
++      spin_unlock_irqrestore(&cl->tx_free_list_spinlock,
++              tx_free_flags);
+ }
+ /**
+@@ -720,7 +730,7 @@ static void ishtp_cl_send_msg_ipc(struct ishtp_device *dev,
+               return;
+       cl->tx_offs = 0;
+-      ipc_tx_callback(cl);
++      ipc_tx_send(cl);
+       ++cl->send_msg_cnt_ipc;
+ }
+-- 
+2.35.1
+
diff --git a/queue-5.10/hid-ishtp-hid-clienthid-ishtp-hid-client-fix-comment.patch b/queue-5.10/hid-ishtp-hid-clienthid-ishtp-hid-client-fix-comment.patch
new file mode 100644 (file)
index 0000000..417c077
--- /dev/null
@@ -0,0 +1,34 @@
+From 5c9583629babfbe920bbdf86f7ced7bb83a9e5db Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Thu, 4 Aug 2022 08:58:14 +0800
+Subject: HID: ishtp-hid-clientHID: ishtp-hid-client: Fix comment typo
+
+From: Jason Wang <wangborong@cdjrlc.com>
+
+[ Upstream commit 94553f8a218540d676efbf3f7827ed493d1057cf ]
+
+The double `like' is duplicated in the comment, remove one.
+
+Signed-off-by: Jason Wang <wangborong@cdjrlc.com>
+Signed-off-by: Jiri Kosina <jkosina@suse.cz>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/hid/intel-ish-hid/ishtp-hid.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/drivers/hid/intel-ish-hid/ishtp-hid.h b/drivers/hid/intel-ish-hid/ishtp-hid.h
+index 5ffd0da3cf1fa..65af0ebef79f6 100644
+--- a/drivers/hid/intel-ish-hid/ishtp-hid.h
++++ b/drivers/hid/intel-ish-hid/ishtp-hid.h
+@@ -110,7 +110,7 @@ struct report_list {
+  * @multi_packet_cnt: Count of fragmented packet count
+  *
+  * This structure is used to store completion flags and per client data like
+- * like report description, number of HID devices etc.
++ * report description, number of HID devices etc.
+  */
+ struct ishtp_cl_data {
+       /* completion flags */
+-- 
+2.35.1
+
diff --git a/queue-5.10/hwmon-pmbus-use-dev_err_probe-to-filter-eprobe_defer.patch b/queue-5.10/hwmon-pmbus-use-dev_err_probe-to-filter-eprobe_defer.patch
new file mode 100644 (file)
index 0000000..4172bac
--- /dev/null
@@ -0,0 +1,46 @@
+From d20abd39a7843f50e07b6487c205d775f3361ac1 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Wed, 17 Aug 2022 15:04:00 +0200
+Subject: hwmon: (pmbus) Use dev_err_probe() to filter -EPROBE_DEFER error
+ messages
+
+From: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
+
+[ Upstream commit 09e52d17b72d3a4bf6951a90ccd8c97fae04e5cf ]
+
+devm_regulator_register() can return -EPROBE_DEFER, so better use
+dev_err_probe() instead of dev_err(), it is less verbose in such a case.
+
+It is also more informative, which can't hurt.
+
+Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
+Link: https://lore.kernel.org/r/3adf1cea6e32e54c0f71f4604b4e98d992beaa71.1660741419.git.christophe.jaillet@wanadoo.fr
+Signed-off-by: Guenter Roeck <linux@roeck-us.net>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/hwmon/pmbus/pmbus_core.c | 9 ++++-----
+ 1 file changed, 4 insertions(+), 5 deletions(-)
+
+diff --git a/drivers/hwmon/pmbus/pmbus_core.c b/drivers/hwmon/pmbus/pmbus_core.c
+index 117e3ce9c76ad..6d8ace96b0a73 100644
+--- a/drivers/hwmon/pmbus/pmbus_core.c
++++ b/drivers/hwmon/pmbus/pmbus_core.c
+@@ -2322,11 +2322,10 @@ static int pmbus_regulator_register(struct pmbus_data *data)
+               rdev = devm_regulator_register(dev, &info->reg_desc[i],
+                                              &config);
+-              if (IS_ERR(rdev)) {
+-                      dev_err(dev, "Failed to register %s regulator\n",
+-                              info->reg_desc[i].name);
+-                      return PTR_ERR(rdev);
+-              }
++              if (IS_ERR(rdev))
++                      return dev_err_probe(dev, PTR_ERR(rdev),
++                                           "Failed to register %s regulator\n",
++                                           info->reg_desc[i].name);
+       }
+       return 0;
+-- 
+2.35.1
+
diff --git a/queue-5.10/ieee802154-cc2520-add-rc-code-in-cc2520_tx.patch b/queue-5.10/ieee802154-cc2520-add-rc-code-in-cc2520_tx.patch
new file mode 100644 (file)
index 0000000..5ec8f25
--- /dev/null
@@ -0,0 +1,35 @@
+From 6e235f24c1918c1865cc0b9e97f62d3fb55f54c9 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Mon, 29 Aug 2022 15:12:59 +0800
+Subject: ieee802154: cc2520: add rc code in cc2520_tx()
+
+From: Li Qiong <liqiong@nfschina.com>
+
+[ Upstream commit ffd7bdddaab193c38416fd5dd416d065517d266e ]
+
+The rc code is 0 at the error path "status & CC2520_STATUS_TX_UNDERFLOW".
+Assign rc code with '-EINVAL' at this error path to fix it.
+
+Signed-off-by: Li Qiong <liqiong@nfschina.com>
+Link: https://lore.kernel.org/r/20220829071259.18330-1-liqiong@nfschina.com
+Signed-off-by: Stefan Schmidt <stefan@datenfreihafen.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/net/ieee802154/cc2520.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/drivers/net/ieee802154/cc2520.c b/drivers/net/ieee802154/cc2520.c
+index 89c046b204e0c..4517517215f2b 100644
+--- a/drivers/net/ieee802154/cc2520.c
++++ b/drivers/net/ieee802154/cc2520.c
+@@ -504,6 +504,7 @@ cc2520_tx(struct ieee802154_hw *hw, struct sk_buff *skb)
+               goto err_tx;
+       if (status & CC2520_STATUS_TX_UNDERFLOW) {
++              rc = -EINVAL;
+               dev_err(&priv->spi->dev, "cc2520 tx underflow exception\n");
+               goto err_tx;
+       }
+-- 
+2.35.1
+
diff --git a/queue-5.10/input-goodix-add-support-for-gt1158.patch b/queue-5.10/input-goodix-add-support-for-gt1158.patch
new file mode 100644 (file)
index 0000000..5d8d8f7
--- /dev/null
@@ -0,0 +1,37 @@
+From 274f28fc6be962e739b5745407bcb01e6ea2822b Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Thu, 11 Aug 2022 16:16:54 -0700
+Subject: Input: goodix - add support for GT1158
+
+From: Ondrej Jirman <megi@xff.cz>
+
+[ Upstream commit 425fe4709c76e35f93f4c0e50240f0b61b2a2e54 ]
+
+This controller is used by PinePhone and PinePhone Pro. Support for
+the PinePhone Pro will be added in a later patch set.
+
+Signed-off-by: Ondrej Jirman <megi@xff.cz>
+Signed-off-by: Jarrah Gosbell <kernel@undef.tools>
+Reviewed-by: Hans de Goede <hdegoede@redhat.com>
+Link: https://lore.kernel.org/r/20220809091200.290492-1-kernel@undef.tools
+Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/input/touchscreen/goodix.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/drivers/input/touchscreen/goodix.c b/drivers/input/touchscreen/goodix.c
+index 5fc789f717c8a..1c03cbbab1332 100644
+--- a/drivers/input/touchscreen/goodix.c
++++ b/drivers/input/touchscreen/goodix.c
+@@ -154,6 +154,7 @@ static const struct goodix_chip_data gt9x_chip_data = {
+ static const struct goodix_chip_id goodix_chip_ids[] = {
+       { .id = "1151", .data = &gt1x_chip_data },
++      { .id = "1158", .data = &gt1x_chip_data },
+       { .id = "5663", .data = &gt1x_chip_data },
+       { .id = "5688", .data = &gt1x_chip_data },
+       { .id = "917S", .data = &gt1x_chip_data },
+-- 
+2.35.1
+
diff --git a/queue-5.10/input-iforce-add-support-for-boeder-force-feedback-w.patch b/queue-5.10/input-iforce-add-support-for-boeder-force-feedback-w.patch
new file mode 100644 (file)
index 0000000..6d4ea56
--- /dev/null
@@ -0,0 +1,48 @@
+From accd0e79338292c0a656ac56fde683c08118717c Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Mon, 29 Aug 2022 11:21:03 -0700
+Subject: Input: iforce - add support for Boeder Force Feedback Wheel
+
+From: Greg Tulli <greg.iforce@gmail.com>
+
+[ Upstream commit 9c9c71168f7979f3798b61c65b4530fbfbcf19d1 ]
+
+Add a new iforce_device entry to support the Boeder Force Feedback Wheel
+device.
+
+Signed-off-by: Greg Tulli <greg.iforce@gmail.com>
+Link: https://lore.kernel.org/r/3256420-c8ac-31b-8499-3c488a9880fd@gmail.com
+Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ Documentation/input/joydev/joystick.rst     | 1 +
+ drivers/input/joystick/iforce/iforce-main.c | 1 +
+ 2 files changed, 2 insertions(+)
+
+diff --git a/Documentation/input/joydev/joystick.rst b/Documentation/input/joydev/joystick.rst
+index 9746fd76cc581..f38c330c028e5 100644
+--- a/Documentation/input/joydev/joystick.rst
++++ b/Documentation/input/joydev/joystick.rst
+@@ -517,6 +517,7 @@ All I-Force devices are supported by the iforce module. This includes:
+ * AVB Mag Turbo Force
+ * AVB Top Shot Pegasus
+ * AVB Top Shot Force Feedback Racing Wheel
++* Boeder Force Feedback Wheel
+ * Logitech WingMan Force
+ * Logitech WingMan Force Wheel
+ * Guillemot Race Leader Force Feedback
+diff --git a/drivers/input/joystick/iforce/iforce-main.c b/drivers/input/joystick/iforce/iforce-main.c
+index b2a68bc9f0b4d..b86de1312512b 100644
+--- a/drivers/input/joystick/iforce/iforce-main.c
++++ b/drivers/input/joystick/iforce/iforce-main.c
+@@ -50,6 +50,7 @@ static struct iforce_device iforce_device[] = {
+       { 0x046d, 0xc291, "Logitech WingMan Formula Force",             btn_wheel, abs_wheel, ff_iforce },
+       { 0x05ef, 0x020a, "AVB Top Shot Pegasus",                       btn_joystick_avb, abs_avb_pegasus, ff_iforce },
+       { 0x05ef, 0x8884, "AVB Mag Turbo Force",                        btn_wheel, abs_wheel, ff_iforce },
++      { 0x05ef, 0x8886, "Boeder Force Feedback Wheel",                btn_wheel, abs_wheel, ff_iforce },
+       { 0x05ef, 0x8888, "AVB Top Shot Force Feedback Racing Wheel",   btn_wheel, abs_wheel, ff_iforce }, //?
+       { 0x061c, 0xc0a4, "ACT LABS Force RS",                          btn_wheel, abs_wheel, ff_iforce }, //?
+       { 0x061c, 0xc084, "ACT LABS Force RS",                          btn_wheel, abs_wheel, ff_iforce },
+-- 
+2.35.1
+
diff --git a/queue-5.10/nvmet-tcp-fix-unhandled-tcp-states-in-nvmet_tcp_stat.patch b/queue-5.10/nvmet-tcp-fix-unhandled-tcp-states-in-nvmet_tcp_stat.patch
new file mode 100644 (file)
index 0000000..c11f5ef
--- /dev/null
@@ -0,0 +1,47 @@
+From 328e650c13b609a10e33ed3cf6e1730fb6599ec4 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Mon, 29 Aug 2022 14:40:30 +0200
+Subject: nvmet-tcp: fix unhandled tcp states in nvmet_tcp_state_change()
+
+From: Maurizio Lombardi <mlombard@redhat.com>
+
+[ Upstream commit 478814a5584197fa1fb18377653626e3416e7cd6 ]
+
+TCP_FIN_WAIT2 and TCP_LAST_ACK were not handled, the connection is closing
+so we can ignore them and avoid printing the "unhandled state"
+warning message.
+
+[ 1298.852386] nvmet_tcp: queue 2 unhandled state 5
+[ 1298.879112] nvmet_tcp: queue 7 unhandled state 5
+[ 1298.884253] nvmet_tcp: queue 8 unhandled state 5
+[ 1298.889475] nvmet_tcp: queue 9 unhandled state 5
+
+v2: Do not call nvmet_tcp_schedule_release_queue(), just ignore
+the fin_wait2 and last_ack states.
+
+Signed-off-by: Maurizio Lombardi <mlombard@redhat.com>
+Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
+Reviewed-by: Chaitanya Kulkarni <kch@nvidia.com>
+Signed-off-by: Christoph Hellwig <hch@lst.de>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/nvme/target/tcp.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/drivers/nvme/target/tcp.c b/drivers/nvme/target/tcp.c
+index d030d5e69dc50..e3e35b9bd6846 100644
+--- a/drivers/nvme/target/tcp.c
++++ b/drivers/nvme/target/tcp.c
+@@ -1471,6 +1471,9 @@ static void nvmet_tcp_state_change(struct sock *sk)
+               goto done;
+       switch (sk->sk_state) {
++      case TCP_FIN_WAIT2:
++      case TCP_LAST_ACK:
++              break;
+       case TCP_FIN_WAIT1:
+       case TCP_CLOSE_WAIT:
+       case TCP_CLOSE:
+-- 
+2.35.1
+
diff --git a/queue-5.10/perf-arm_pmu_platform-fix-tests-for-platform_get_irq.patch b/queue-5.10/perf-arm_pmu_platform-fix-tests-for-platform_get_irq.patch
new file mode 100644 (file)
index 0000000..62c6684
--- /dev/null
@@ -0,0 +1,36 @@
+From 0a639a568d5e51ff7f9089eb775a5ec200dc1d04 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Thu, 25 Aug 2022 09:18:44 +0800
+Subject: perf/arm_pmu_platform: fix tests for platform_get_irq() failure
+
+From: Yu Zhe <yuzhe@nfschina.com>
+
+[ Upstream commit 6bb0d64c100091e131cd16710b62fda3319cd0af ]
+
+The platform_get_irq() returns negative error codes.  It can't actually
+return zero.
+
+Signed-off-by: Yu Zhe <yuzhe@nfschina.com>
+Link: https://lore.kernel.org/r/20220825011844.8536-1-yuzhe@nfschina.com
+Signed-off-by: Will Deacon <will@kernel.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/perf/arm_pmu_platform.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/drivers/perf/arm_pmu_platform.c b/drivers/perf/arm_pmu_platform.c
+index ef9676418c9f4..2e1f3680d8466 100644
+--- a/drivers/perf/arm_pmu_platform.c
++++ b/drivers/perf/arm_pmu_platform.c
+@@ -117,7 +117,7 @@ static int pmu_parse_irqs(struct arm_pmu *pmu)
+       if (num_irqs == 1) {
+               int irq = platform_get_irq(pdev, 0);
+-              if (irq && irq_is_percpu_devid(irq))
++              if ((irq > 0) && irq_is_percpu_devid(irq))
+                       return pmu_parse_percpu_irq(pmu, irq);
+       }
+-- 
+2.35.1
+
diff --git a/queue-5.10/platform-x86-acer-wmi-acer-aspire-one-aod270-packard.patch b/queue-5.10/platform-x86-acer-wmi-acer-aspire-one-aod270-packard.patch
new file mode 100644 (file)
index 0000000..3695277
--- /dev/null
@@ -0,0 +1,59 @@
+From 8e25c542214cc805c017d5ccb038cef5c9e15743 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Mon, 29 Aug 2022 18:35:44 +0200
+Subject: platform/x86: acer-wmi: Acer Aspire One AOD270/Packard Bell Dot
+ keymap fixes
+
+From: Hans de Goede <hdegoede@redhat.com>
+
+[ Upstream commit c3b82d26bc85f5fc2fef5ec8cce17c89633a55a8 ]
+
+2 keymap fixes for the Acer Aspire One AOD270 and the same hardware
+rebranded as Packard Bell Dot SC:
+
+1. The F2 key is marked with a big '?' symbol on the Packard Bell Dot SC,
+this sends WMID_HOTKEY_EVENTs with a scancode of 0x27 add a mapping
+for this.
+
+2. Scancode 0x61 is KEY_SWITCHVIDEOMODE. Usually this is a duplicate
+input event with the "Video Bus" input device events. But on these devices
+the "Video Bus" does not send events for this key. Map 0x61 to KEY_UNKNOWN
+instead of using KE_IGNORE so that udev/hwdb can override it on these devs.
+
+Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+Link: https://lore.kernel.org/r/20220829163544.5288-1-hdegoede@redhat.com
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/platform/x86/acer-wmi.c | 9 ++++++++-
+ 1 file changed, 8 insertions(+), 1 deletion(-)
+
+diff --git a/drivers/platform/x86/acer-wmi.c b/drivers/platform/x86/acer-wmi.c
+index 80983f9dfcd55..8e696262215fc 100644
+--- a/drivers/platform/x86/acer-wmi.c
++++ b/drivers/platform/x86/acer-wmi.c
+@@ -93,6 +93,7 @@ static const struct key_entry acer_wmi_keymap[] __initconst = {
+       {KE_KEY, 0x22, {KEY_PROG2} },    /* Arcade */
+       {KE_KEY, 0x23, {KEY_PROG3} },    /* P_Key */
+       {KE_KEY, 0x24, {KEY_PROG4} },    /* Social networking_Key */
++      {KE_KEY, 0x27, {KEY_HELP} },
+       {KE_KEY, 0x29, {KEY_PROG3} },    /* P_Key for TM8372 */
+       {KE_IGNORE, 0x41, {KEY_MUTE} },
+       {KE_IGNORE, 0x42, {KEY_PREVIOUSSONG} },
+@@ -106,7 +107,13 @@ static const struct key_entry acer_wmi_keymap[] __initconst = {
+       {KE_IGNORE, 0x48, {KEY_VOLUMEUP} },
+       {KE_IGNORE, 0x49, {KEY_VOLUMEDOWN} },
+       {KE_IGNORE, 0x4a, {KEY_VOLUMEDOWN} },
+-      {KE_IGNORE, 0x61, {KEY_SWITCHVIDEOMODE} },
++      /*
++       * 0x61 is KEY_SWITCHVIDEOMODE. Usually this is a duplicate input event
++       * with the "Video Bus" input device events. But sometimes it is not
++       * a dup. Map it to KEY_UNKNOWN instead of using KE_IGNORE so that
++       * udev/hwdb can override it on systems where it is not a dup.
++       */
++      {KE_KEY, 0x61, {KEY_UNKNOWN} },
+       {KE_IGNORE, 0x62, {KEY_BRIGHTNESSUP} },
+       {KE_IGNORE, 0x63, {KEY_BRIGHTNESSDOWN} },
+       {KE_KEY, 0x64, {KEY_SWITCHVIDEOMODE} }, /* Display Switch */
+-- 
+2.35.1
+
index 1bb1a6da73ce7a1fa58a8326818d3673c892c8c3..5816d2d3f7088696453312adae202eaa7978c732 100644 (file)
@@ -2,3 +2,17 @@ arm-dts-imx-align-spi-nor-node-name-with-dtschema.patch
 arm-dts-imx6qdl-kontron-samx6i-fix-spi-flash-compati.patch
 iommu-vt-d-correctly-calculate-sagaw-value-of-iommu.patch
 tracefs-only-clobber-mode-uid-gid-on-remount-if-aske.patch
+input-goodix-add-support-for-gt1158.patch
+drm-msm-rd-fix-fifo-full-deadlock.patch
+hwmon-pmbus-use-dev_err_probe-to-filter-eprobe_defer.patch
+hid-ishtp-hid-clienthid-ishtp-hid-client-fix-comment.patch
+hid-intel-ish-hid-ishtp-fix-ishtp-client-sending-dis.patch
+tg3-disable-tg3-device-on-system-reboot-to-avoid-tri.patch
+gpio-mockup-remove-gpio-debugfs-when-remove-device.patch
+ieee802154-cc2520-add-rc-code-in-cc2520_tx.patch
+input-iforce-add-support-for-boeder-force-feedback-w.patch
+nvmet-tcp-fix-unhandled-tcp-states-in-nvmet_tcp_stat.patch
+drm-amd-amdgpu-skip-ucode-loading-if-ucode_size-0.patch
+perf-arm_pmu_platform-fix-tests-for-platform_get_irq.patch
+platform-x86-acer-wmi-acer-aspire-one-aod270-packard.patch
+usb-storage-add-asus-0x0b05-0x1932-to-ignore_uas.patch
diff --git a/queue-5.10/tg3-disable-tg3-device-on-system-reboot-to-avoid-tri.patch b/queue-5.10/tg3-disable-tg3-device-on-system-reboot-to-avoid-tri.patch
new file mode 100644 (file)
index 0000000..a3d3f04
--- /dev/null
@@ -0,0 +1,83 @@
+From 030e8f1ebf1ee63acbae48568b0f847d94058e50 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Fri, 26 Aug 2022 08:25:30 +0800
+Subject: tg3: Disable tg3 device on system reboot to avoid triggering AER
+
+From: Kai-Heng Feng <kai.heng.feng@canonical.com>
+
+[ Upstream commit 2ca1c94ce0b65a2ce7512b718f3d8a0fe6224bca ]
+
+Commit d60cd06331a3 ("PM: ACPI: reboot: Use S5 for reboot") caused a
+reboot hang on one Dell servers so the commit was reverted.
+
+Someone managed to collect the AER log and it's caused by MSI:
+[ 148.762067] ACPI: Preparing to enter system sleep state S5
+[ 148.794638] {1}[Hardware Error]: Hardware error from APEI Generic Hardware Error Source: 5
+[ 148.803731] {1}[Hardware Error]: event severity: recoverable
+[ 148.810191] {1}[Hardware Error]: Error 0, type: fatal
+[ 148.816088] {1}[Hardware Error]: section_type: PCIe error
+[ 148.822391] {1}[Hardware Error]: port_type: 0, PCIe end point
+[ 148.829026] {1}[Hardware Error]: version: 3.0
+[ 148.834266] {1}[Hardware Error]: command: 0x0006, status: 0x0010
+[ 148.841140] {1}[Hardware Error]: device_id: 0000:04:00.0
+[ 148.847309] {1}[Hardware Error]: slot: 0
+[ 148.852077] {1}[Hardware Error]: secondary_bus: 0x00
+[ 148.857876] {1}[Hardware Error]: vendor_id: 0x14e4, device_id: 0x165f
+[ 148.865145] {1}[Hardware Error]: class_code: 020000
+[ 148.870845] {1}[Hardware Error]: aer_uncor_status: 0x00100000, aer_uncor_mask: 0x00010000
+[ 148.879842] {1}[Hardware Error]: aer_uncor_severity: 0x000ef030
+[ 148.886575] {1}[Hardware Error]: TLP Header: 40000001 0000030f 90028090 00000000
+[ 148.894823] tg3 0000:04:00.0: AER: aer_status: 0x00100000, aer_mask: 0x00010000
+[ 148.902795] tg3 0000:04:00.0: AER: [20] UnsupReq (First)
+[ 148.910234] tg3 0000:04:00.0: AER: aer_layer=Transaction Layer, aer_agent=Requester ID
+[ 148.918806] tg3 0000:04:00.0: AER: aer_uncor_severity: 0x000ef030
+[ 148.925558] tg3 0000:04:00.0: AER: TLP Header: 40000001 0000030f 90028090 00000000
+
+The MSI is probably raised by incoming packets, so power down the device
+and disable bus mastering to stop the traffic, as user confirmed this
+approach works.
+
+In addition to that, be extra safe and cancel reset task if it's running.
+
+Cc: Josef Bacik <josef@toxicpanda.com>
+Link: https://lore.kernel.org/all/b8db79e6857c41dab4ef08bdf826ea7c47e3bafc.1615947283.git.josef@toxicpanda.com/
+BugLink: https://bugs.launchpad.net/bugs/1917471
+Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
+Reviewed-by: Michael Chan <michael.chan@broadcom.com>
+Link: https://lore.kernel.org/r/20220826002530.1153296-1-kai.heng.feng@canonical.com
+Signed-off-by: Jakub Kicinski <kuba@kernel.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/net/ethernet/broadcom/tg3.c | 8 ++++++--
+ 1 file changed, 6 insertions(+), 2 deletions(-)
+
+diff --git a/drivers/net/ethernet/broadcom/tg3.c b/drivers/net/ethernet/broadcom/tg3.c
+index 5143cdd0eecad..be96116dc2ccb 100644
+--- a/drivers/net/ethernet/broadcom/tg3.c
++++ b/drivers/net/ethernet/broadcom/tg3.c
+@@ -18146,16 +18146,20 @@ static void tg3_shutdown(struct pci_dev *pdev)
+       struct net_device *dev = pci_get_drvdata(pdev);
+       struct tg3 *tp = netdev_priv(dev);
++      tg3_reset_task_cancel(tp);
++
+       rtnl_lock();
++
+       netif_device_detach(dev);
+       if (netif_running(dev))
+               dev_close(dev);
+-      if (system_state == SYSTEM_POWER_OFF)
+-              tg3_power_down(tp);
++      tg3_power_down(tp);
+       rtnl_unlock();
++
++      pci_disable_device(pdev);
+ }
+ /**
+-- 
+2.35.1
+
diff --git a/queue-5.10/usb-storage-add-asus-0x0b05-0x1932-to-ignore_uas.patch b/queue-5.10/usb-storage-add-asus-0x0b05-0x1932-to-ignore_uas.patch
new file mode 100644 (file)
index 0000000..78ee436
--- /dev/null
@@ -0,0 +1,45 @@
+From 4452bb1e0a3defacafdd1c2ca8c731206cca5649 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Thu, 1 Sep 2022 12:57:37 +0800
+Subject: usb: storage: Add ASUS <0x0b05:0x1932> to IGNORE_UAS
+
+From: Hu Xiaoying <huxiaoying@kylinos.cn>
+
+[ Upstream commit c61feaee68b9735be06f162bc046c7f1959efb0c ]
+
+USB external storage device(0x0b05:1932), use gnome-disk-utility tools
+to test usb write  < 30MB/s.
+if does not to load module of uas for this device, can increase the
+write speed from 20MB/s to >40MB/s.
+
+Suggested-by: Matthias Kaehlcke <mka@chromium.org>
+Acked-by: Alan Stern <stern@rowland.harvard.edu>
+Signed-off-by: Hu Xiaoying <huxiaoying@kylinos.cn>
+Link: https://lore.kernel.org/r/20220901045737.3438046-1-huxiaoying@kylinos.cn
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/usb/storage/unusual_uas.h | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/drivers/usb/storage/unusual_uas.h b/drivers/usb/storage/unusual_uas.h
+index 4051c8cd0cd8a..23ab3b048d9be 100644
+--- a/drivers/usb/storage/unusual_uas.h
++++ b/drivers/usb/storage/unusual_uas.h
+@@ -62,6 +62,13 @@ UNUSUAL_DEV(0x0984, 0x0301, 0x0128, 0x0128,
+               USB_SC_DEVICE, USB_PR_DEVICE, NULL,
+               US_FL_IGNORE_UAS),
++/* Reported-by: Tom Hu <huxiaoying@kylinos.cn> */
++UNUSUAL_DEV(0x0b05, 0x1932, 0x0000, 0x9999,
++              "ASUS",
++              "External HDD",
++              USB_SC_DEVICE, USB_PR_DEVICE, NULL,
++              US_FL_IGNORE_UAS),
++
+ /* Reported-by: David Webb <djw@noc.ac.uk> */
+ UNUSUAL_DEV(0x0bc2, 0x331a, 0x0000, 0x9999,
+               "Seagate",
+-- 
+2.35.1
+