From 33afcea6b07971def790cb8912c347f3161b3bdc Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Wed, 28 Dec 2022 15:35:15 +0100 Subject: [PATCH] 5.15-stable patches added patches: extcon-usbc-tusb320-call-the-type-c-irq-handler-only-if-a-port-is-registered.patch --- ...handler-only-if-a-port-is-registered.patch | 42 +++++++++++++++++++ queue-5.15/series | 1 + 2 files changed, 43 insertions(+) create mode 100644 queue-5.15/extcon-usbc-tusb320-call-the-type-c-irq-handler-only-if-a-port-is-registered.patch diff --git a/queue-5.15/extcon-usbc-tusb320-call-the-type-c-irq-handler-only-if-a-port-is-registered.patch b/queue-5.15/extcon-usbc-tusb320-call-the-type-c-irq-handler-only-if-a-port-is-registered.patch new file mode 100644 index 00000000000..76728a2ef0f --- /dev/null +++ b/queue-5.15/extcon-usbc-tusb320-call-the-type-c-irq-handler-only-if-a-port-is-registered.patch @@ -0,0 +1,42 @@ +From 341fd15e2e18c24d5c738496cfc3d7a272241201 Mon Sep 17 00:00:00 2001 +From: Yassine Oudjana +Date: Mon, 7 Nov 2022 18:33:17 +0300 +Subject: extcon: usbc-tusb320: Call the Type-C IRQ handler only if a port is registered + +From: Yassine Oudjana + +commit 341fd15e2e18c24d5c738496cfc3d7a272241201 upstream. + +Commit bf7571c00dca ("extcon: usbc-tusb320: Add USB TYPE-C support") +added an optional Type-C interface to the driver but missed to check +if it is in use when calling the IRQ handler. This causes an oops on +devices currently using the old extcon interface. Check if a Type-C +port is registered before calling the Type-C IRQ handler. + +Fixes: bf7571c00dca ("extcon: usbc-tusb320: Add USB TYPE-C support") +Signed-off-by: Yassine Oudjana +Reviewed-by: Marek Vasut +Reviewed-by: Heikki Krogerus +Link: https://lore.kernel.org/r/20221107153317.657803-1-y.oudjana@protonmail.com +Signed-off-by: Greg Kroah-Hartman +--- + drivers/extcon/extcon-usbc-tusb320.c | 8 +++++++- + 1 file changed, 7 insertions(+), 1 deletion(-) + +--- a/drivers/extcon/extcon-usbc-tusb320.c ++++ b/drivers/extcon/extcon-usbc-tusb320.c +@@ -327,7 +327,13 @@ static irqreturn_t tusb320_state_update_ + return IRQ_NONE; + + tusb320_extcon_irq_handler(priv, reg); +- tusb320_typec_irq_handler(priv, reg); ++ ++ /* ++ * Type-C support is optional. Only call the Type-C handler if a ++ * port had been registered previously. ++ */ ++ if (priv->port) ++ tusb320_typec_irq_handler(priv, reg); + + regmap_write(priv->regmap, TUSB320_REG9, reg); + diff --git a/queue-5.15/series b/queue-5.15/series index 2f76265e058..c581c5143a0 100644 --- a/queue-5.15/series +++ b/queue-5.15/series @@ -728,3 +728,4 @@ scsi-qla2xxx-fix-crash-when-i-o-abort-times-out.patch net-stmmac-fix-errno-when-create_singlethread_workqueue-fails.patch media-dvbdev-fix-build-warning-due-to-comments.patch media-dvbdev-fix-refcnt-bug.patch +extcon-usbc-tusb320-call-the-type-c-irq-handler-only-if-a-port-is-registered.patch -- 2.47.3