summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPrashanth K <quic_prashk@quicinc.com>2023-09-11 14:34:15 +0530
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2023-10-19 23:08:58 +0200
commit71d323072af76149b49b11078a913cce0d3b9edd (patch)
tree4b24c2a3f804d33f34989c09e8a827f38570b43b
parent4d85f1ce6ca46f0af5964802ed5fa374459c6770 (diff)
downloadlinux-stable-71d323072af76149b49b11078a913cce0d3b9edd.tar.gz
linux-stable-71d323072af76149b49b11078a913cce0d3b9edd.tar.bz2
linux-stable-71d323072af76149b49b11078a913cce0d3b9edd.zip
usb: typec: ucsi: Clear EVENT_PENDING bit if ucsi_send_command fails
commit a00e197daec52bcd955e118f5f57d706da5bfe50 upstream. Currently if ucsi_send_command() fails, then we bail out without clearing EVENT_PENDING flag. So when the next connector change event comes, ucsi_connector_change() won't queue the con->work, because of which none of the new events will be processed. Fix this by clearing EVENT_PENDING flag if ucsi_send_command() fails. Cc: stable@vger.kernel.org # 5.16 Fixes: 512df95b9432 ("usb: typec: ucsi: Better fix for missing unplug events issue") Signed-off-by: Prashanth K <quic_prashk@quicinc.com> Acked-by: Heikki Krogerus <heikki.krogerus@linux.intel.com> Link: https://lore.kernel.org/r/1694423055-8440-1-git-send-email-quic_prashk@quicinc.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/usb/typec/ucsi/ucsi.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/usb/typec/ucsi/ucsi.c b/drivers/usb/typec/ucsi/ucsi.c
index 47a2c73df342..dc2dea3768fb 100644
--- a/drivers/usb/typec/ucsi/ucsi.c
+++ b/drivers/usb/typec/ucsi/ucsi.c
@@ -785,6 +785,7 @@ static void ucsi_handle_connector_change(struct work_struct *work)
if (ret < 0) {
dev_err(ucsi->dev, "%s: GET_CONNECTOR_STATUS failed (%d)\n",
__func__, ret);
+ clear_bit(EVENT_PENDING, &con->ucsi->flags);
goto out_unlock;
}