]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
Revert "Fixes for 6.9"
authorSasha Levin <sashal@kernel.org>
Thu, 27 Jun 2024 00:30:25 +0000 (20:30 -0400)
committerSasha Levin <sashal@kernel.org>
Thu, 27 Jun 2024 00:30:25 +0000 (20:30 -0400)
This reverts commit 51e6fc138f42275ec5429e875ca47aab37aca443.

Signed-off-by: Sasha Levin <sashal@kernel.org>
queue-6.9/series
queue-6.9/usb-typec-ucsi-ack-also-failed-get-error-commands.patch [deleted file]
queue-6.9/usb-typec-ucsi-never-send-a-lone-connector-change-ac.patch [deleted file]

index 548b0d29e53e0a2fb33a593081a8082486199fad..901efefb4daac7755cd1d7af4ee9c52e9976faf5 100644 (file)
@@ -247,5 +247,3 @@ net-sched-unregister-lockdep-keys-in-qdisc_create-qdisc_alloc-error-path.patch
 kprobe-ftrace-fix-build-error-due-to-bad-function-definition.patch
 hid-asus-asus_report_fixup-fix-potential-read-out-of-bounds.patch
 revert-mm-mmap-allow-for-the-maximum-number-of-bits-for-randomizing-mmap_base-by-default.patch
-usb-typec-ucsi-never-send-a-lone-connector-change-ac.patch
-usb-typec-ucsi-ack-also-failed-get-error-commands.patch
diff --git a/queue-6.9/usb-typec-ucsi-ack-also-failed-get-error-commands.patch b/queue-6.9/usb-typec-ucsi-ack-also-failed-get-error-commands.patch
deleted file mode 100644 (file)
index ef5a644..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-From 2b5011497f01fd8669e274435bb1f536e1091f2b Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Fri, 31 May 2024 13:46:52 +0300
-Subject: usb: typec: ucsi: Ack also failed Get Error commands
-
-From: Heikki Krogerus <heikki.krogerus@linux.intel.com>
-
-[ Upstream commit 8bdf8a42bca4f47646fd105a387ab6926948c7f1 ]
-
-It is possible that also the GET_ERROR command fails. If
-that happens, the command completion still needs to be
-acknowledged. Otherwise the interface will be stuck until
-it's reset.
-
-Reported-by: Ammy Yi <ammy.yi@intel.com>
-Fixes: bdc62f2bae8f ("usb: typec: ucsi: Simplified registration and I/O API")
-Cc: stable@vger.kernel.org
-Signed-off-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
-Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
-Link: https://lore.kernel.org/r/20240531104653.1303519-1-heikki.krogerus@linux.intel.com
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/usb/typec/ucsi/ucsi.c | 7 ++++++-
- 1 file changed, 6 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/usb/typec/ucsi/ucsi.c b/drivers/usb/typec/ucsi/ucsi.c
-index 144e47ed6fae3..911d774c9805a 100644
---- a/drivers/usb/typec/ucsi/ucsi.c
-+++ b/drivers/usb/typec/ucsi/ucsi.c
-@@ -153,8 +153,13 @@ static int ucsi_exec_command(struct ucsi *ucsi, u64 cmd)
-       }
-       if (cci & UCSI_CCI_ERROR) {
--              if (cmd == UCSI_GET_ERROR_STATUS)
-+              if (cmd == UCSI_GET_ERROR_STATUS) {
-+                      ret = ucsi_acknowledge(ucsi, false);
-+                      if (ret)
-+                              return ret;
-+
-                       return -EIO;
-+              }
-               return ucsi_read_error(ucsi);
-       }
--- 
-2.43.0
-
diff --git a/queue-6.9/usb-typec-ucsi-never-send-a-lone-connector-change-ac.patch b/queue-6.9/usb-typec-ucsi-never-send-a-lone-connector-change-ac.patch
deleted file mode 100644 (file)
index 2609c53..0000000
+++ /dev/null
@@ -1,159 +0,0 @@
-From 86348adc92e8fde07a5eb41ed30a048bae529bf6 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 27 Mar 2024 23:45:53 +0100
-Subject: usb: typec: ucsi: Never send a lone connector change ack
-
-From: Christian A. Ehrhardt <lk@c--e.de>
-
-[ Upstream commit de52aca4d9d56c3b2f00b638d457075914b1a227 ]
-
-Some PPM implementation do not like UCSI_ACK_CONNECTOR_CHANGE
-without UCSI_ACK_COMMAND_COMPLETE. Moreover, doing this is racy
-as it requires sending two UCSI_ACK_CC_CI commands in a row and
-the second one will be started with UCSI_CCI_ACK_COMPLETE already
-set in CCI.
-
-Bundle the UCSI_ACK_CONNECTOR_CHANGE with the UCSI_ACK_COMMAND_COMPLETE
-for the UCSI_GET_CONNECTOR_STATUS command that is sent while
-handling a connector change event.
-
-Signed-off-by: Christian A. Ehrhardt <lk@c--e.de>
-Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
-Tested-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
-Link: https://lore.kernel.org/r/20240327224554.1772525-3-lk@c--e.de
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-Stable-dep-of: 8bdf8a42bca4 ("usb: typec: ucsi: Ack also failed Get Error commands")
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/usb/typec/ucsi/ucsi.c | 48 +++++++++++++++--------------------
- 1 file changed, 21 insertions(+), 27 deletions(-)
-
-diff --git a/drivers/usb/typec/ucsi/ucsi.c b/drivers/usb/typec/ucsi/ucsi.c
-index 7801501837b69..144e47ed6fae3 100644
---- a/drivers/usb/typec/ucsi/ucsi.c
-+++ b/drivers/usb/typec/ucsi/ucsi.c
-@@ -49,22 +49,16 @@ static int ucsi_read_message_in(struct ucsi *ucsi, void *buf,
-       return ucsi->ops->read(ucsi, UCSI_MESSAGE_IN, buf, buf_size);
- }
--static int ucsi_acknowledge_command(struct ucsi *ucsi)
-+static int ucsi_acknowledge(struct ucsi *ucsi, bool conn_ack)
- {
-       u64 ctrl;
-       ctrl = UCSI_ACK_CC_CI;
-       ctrl |= UCSI_ACK_COMMAND_COMPLETE;
--
--      return ucsi->ops->sync_write(ucsi, UCSI_CONTROL, &ctrl, sizeof(ctrl));
--}
--
--static int ucsi_acknowledge_connector_change(struct ucsi *ucsi)
--{
--      u64 ctrl;
--
--      ctrl = UCSI_ACK_CC_CI;
--      ctrl |= UCSI_ACK_CONNECTOR_CHANGE;
-+      if (conn_ack) {
-+              clear_bit(EVENT_PENDING, &ucsi->flags);
-+              ctrl |= UCSI_ACK_CONNECTOR_CHANGE;
-+      }
-       return ucsi->ops->sync_write(ucsi, UCSI_CONTROL, &ctrl, sizeof(ctrl));
- }
-@@ -77,7 +71,7 @@ static int ucsi_read_error(struct ucsi *ucsi)
-       int ret;
-       /* Acknowledge the command that failed */
--      ret = ucsi_acknowledge_command(ucsi);
-+      ret = ucsi_acknowledge(ucsi, false);
-       if (ret)
-               return ret;
-@@ -89,7 +83,7 @@ static int ucsi_read_error(struct ucsi *ucsi)
-       if (ret)
-               return ret;
--      ret = ucsi_acknowledge_command(ucsi);
-+      ret = ucsi_acknowledge(ucsi, false);
-       if (ret)
-               return ret;
-@@ -152,7 +146,7 @@ static int ucsi_exec_command(struct ucsi *ucsi, u64 cmd)
-               return -EIO;
-       if (cci & UCSI_CCI_NOT_SUPPORTED) {
--              if (ucsi_acknowledge_command(ucsi) < 0)
-+              if (ucsi_acknowledge(ucsi, false) < 0)
-                       dev_err(ucsi->dev,
-                               "ACK of unsupported command failed\n");
-               return -EOPNOTSUPP;
-@@ -165,15 +159,15 @@ static int ucsi_exec_command(struct ucsi *ucsi, u64 cmd)
-       }
-       if (cmd == UCSI_CANCEL && cci & UCSI_CCI_CANCEL_COMPLETE) {
--              ret = ucsi_acknowledge_command(ucsi);
-+              ret = ucsi_acknowledge(ucsi, false);
-               return ret ? ret : -EBUSY;
-       }
-       return UCSI_CCI_LENGTH(cci);
- }
--int ucsi_send_command(struct ucsi *ucsi, u64 command,
--                    void *data, size_t size)
-+static int ucsi_send_command_common(struct ucsi *ucsi, u64 command,
-+                                  void *data, size_t size, bool conn_ack)
- {
-       u8 length;
-       int ret;
-@@ -192,7 +186,7 @@ int ucsi_send_command(struct ucsi *ucsi, u64 command,
-                       goto out;
-       }
--      ret = ucsi_acknowledge_command(ucsi);
-+      ret = ucsi_acknowledge(ucsi, conn_ack);
-       if (ret)
-               goto out;
-@@ -201,6 +195,12 @@ int ucsi_send_command(struct ucsi *ucsi, u64 command,
-       mutex_unlock(&ucsi->ppm_lock);
-       return ret;
- }
-+
-+int ucsi_send_command(struct ucsi *ucsi, u64 command,
-+                    void *data, size_t size)
-+{
-+      return ucsi_send_command_common(ucsi, command, data, size, false);
-+}
- EXPORT_SYMBOL_GPL(ucsi_send_command);
- /* -------------------------------------------------------------------------- */
-@@ -1157,7 +1157,9 @@ static void ucsi_handle_connector_change(struct work_struct *work)
-       mutex_lock(&con->lock);
-       command = UCSI_GET_CONNECTOR_STATUS | UCSI_CONNECTOR_NUMBER(con->num);
--      ret = ucsi_send_command(ucsi, command, &con->status, sizeof(con->status));
-+
-+      ret = ucsi_send_command_common(ucsi, command, &con->status,
-+                                     sizeof(con->status), true);
-       if (ret < 0) {
-               dev_err(ucsi->dev, "%s: GET_CONNECTOR_STATUS failed (%d)\n",
-                       __func__, ret);
-@@ -1214,14 +1216,6 @@ static void ucsi_handle_connector_change(struct work_struct *work)
-       if (con->status.change & UCSI_CONSTAT_CAM_CHANGE)
-               ucsi_partner_task(con, ucsi_check_altmodes, 1, 0);
--      mutex_lock(&ucsi->ppm_lock);
--      clear_bit(EVENT_PENDING, &con->ucsi->flags);
--      ret = ucsi_acknowledge_connector_change(ucsi);
--      mutex_unlock(&ucsi->ppm_lock);
--
--      if (ret)
--              dev_err(ucsi->dev, "%s: ACK failed (%d)", __func__, ret);
--
- out_unlock:
-       mutex_unlock(&con->lock);
- }
--- 
-2.43.0
-