* FAILED: patch "[PATCH] usb: typec: tcpci: clear the fault status bit" failed to apply to 5.15-stable tree
@ 2023-09-03 16:57 gregkh
2023-09-04 13:37 ` [PATCH 5.15.y 1/2] usb: typec: tcpci: move tcpci.h to include/linux/usb/ Fabio Estevam
2023-09-04 13:47 ` FAILED: patch "[PATCH] usb: typec: tcpci: clear the fault status bit" failed to apply to 5.15-stable tree Fabio Estevam
0 siblings, 2 replies; 5+ messages in thread
From: gregkh @ 2023-09-03 16:57 UTC (permalink / raw)
To: m.felsch, angus, christian.bach, festevam, gregkh, linux; +Cc: stable
The patch below does not apply to the 5.15-stable tree.
If someone wants it applied there, or to any other stable or longterm
tree, then please email the backport, including the original git commit
id to <stable@vger.kernel.org>.
To reproduce the conflict and resubmit, you may use the following commands:
git fetch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/ linux-5.15.y
git checkout FETCH_HEAD
git cherry-pick -x 23e60c8daf5ec2ab1b731310761b668745fcf6ed
# <resolve conflicts, build, test, etc.>
git commit -s
git send-email --to '<stable@vger.kernel.org>' --in-reply-to '2023090314-headroom-doorbell-3ac8@gregkh' --subject-prefix 'PATCH 5.15.y' HEAD^..
Possible dependencies:
23e60c8daf5e ("usb: typec: tcpci: clear the fault status bit")
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From 23e60c8daf5ec2ab1b731310761b668745fcf6ed Mon Sep 17 00:00:00 2001
From: Marco Felsch <m.felsch@pengutronix.de>
Date: Wed, 16 Aug 2023 14:25:02 -0300
Subject: [PATCH] usb: typec: tcpci: clear the fault status bit
According the "USB Type-C Port Controller Interface Specification v2.0"
the TCPC sets the fault status register bit-7
(AllRegistersResetToDefault) once the registers have been reset to
their default values.
This triggers an alert(-irq) on PTN5110 devices albeit we do mask the
fault-irq, which may cause a kernel hang. Fix this generically by writing
a one to the corresponding bit-7.
Cc: stable@vger.kernel.org
Fixes: 74e656d6b055 ("staging: typec: Type-C Port Controller Interface driver (tcpci)")
Reported-by: "Angus Ainslie (Purism)" <angus@akkea.ca>
Closes: https://lore.kernel.org/all/20190508002749.14816-2-angus@akkea.ca/
Reported-by: Christian Bach <christian.bach@scs.ch>
Closes: https://lore.kernel.org/regressions/ZR0P278MB07737E5F1D48632897D51AC3EB329@ZR0P278MB0773.CHEP278.PROD.OUTLOOK.COM/t/
Signed-off-by: Marco Felsch <m.felsch@pengutronix.de>
Signed-off-by: Fabio Estevam <festevam@denx.de>
Reviewed-by: Guenter Roeck <linux@roeck-us.net>
Link: https://lore.kernel.org/r/20230816172502.1155079-1-festevam@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
diff --git a/drivers/usb/typec/tcpm/tcpci.c b/drivers/usb/typec/tcpm/tcpci.c
index fc708c289a73..0ee3e6e29bb1 100644
--- a/drivers/usb/typec/tcpm/tcpci.c
+++ b/drivers/usb/typec/tcpm/tcpci.c
@@ -602,6 +602,10 @@ static int tcpci_init(struct tcpc_dev *tcpc)
if (time_after(jiffies, timeout))
return -ETIMEDOUT;
+ ret = tcpci_write16(tcpci, TCPC_FAULT_STATUS, TCPC_FAULT_STATUS_ALL_REG_RST_TO_DEFAULT);
+ if (ret < 0)
+ return ret;
+
/* Handle vendor init */
if (tcpci->data->init) {
ret = tcpci->data->init(tcpci, tcpci->data);
diff --git a/include/linux/usb/tcpci.h b/include/linux/usb/tcpci.h
index 85e95a3251d3..83376473ac76 100644
--- a/include/linux/usb/tcpci.h
+++ b/include/linux/usb/tcpci.h
@@ -103,6 +103,7 @@
#define TCPC_POWER_STATUS_SINKING_VBUS BIT(0)
#define TCPC_FAULT_STATUS 0x1f
+#define TCPC_FAULT_STATUS_ALL_REG_RST_TO_DEFAULT BIT(7)
#define TCPC_ALERT_EXTENDED 0x21
^ permalink raw reply related [flat|nested] 5+ messages in thread* [PATCH 5.15.y 1/2] usb: typec: tcpci: move tcpci.h to include/linux/usb/
2023-09-03 16:57 FAILED: patch "[PATCH] usb: typec: tcpci: clear the fault status bit" failed to apply to 5.15-stable tree gregkh
@ 2023-09-04 13:37 ` Fabio Estevam
2023-09-04 13:37 ` [PATCH 5.15.y 2/2] usb: typec: tcpci: clear the fault status bit Fabio Estevam
2023-09-04 13:47 ` FAILED: patch "[PATCH] usb: typec: tcpci: clear the fault status bit" failed to apply to 5.15-stable tree Fabio Estevam
1 sibling, 1 reply; 5+ messages in thread
From: Fabio Estevam @ 2023-09-04 13:37 UTC (permalink / raw)
To: stable; +Cc: Xin Ji, Heikki Krogerus, Greg Kroah-Hartman, Fabio Estevam
From: Xin Ji <xji@analogixsemi.com>
[ Upstream commit 7963d4d710112bc457f99bdb56608211e561190e ]
USB PD controllers which consisting of a microcontroller (acting as the TCPM)
and a port controller (TCPC) - may require that the driver for the PD
controller accesses directly also the on-chip port controller in some cases.
Move tcpci.h to include/linux/usb/ is convenience access TCPC registers.
Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Signed-off-by: Xin Ji <xji@analogixsemi.com>
Link: https://lore.kernel.org/r/20220706083433.2415524-1-xji@analogixsemi.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Stable-dep-of: 23e60c8daf5e ("usb: typec: tcpci: clear the fault status bit")
Signed-off-by: Fabio Estevam <festevam@denx.de>
---
drivers/usb/typec/tcpm/tcpci.c | 3 +--
drivers/usb/typec/tcpm/tcpci_maxim.c | 3 +--
drivers/usb/typec/tcpm/tcpci_mt6360.c | 3 +--
drivers/usb/typec/tcpm/tcpci_rt1711h.c | 2 +-
{drivers/usb/typec/tcpm => include/linux/usb}/tcpci.h | 1 +
5 files changed, 5 insertions(+), 7 deletions(-)
rename {drivers/usb/typec/tcpm => include/linux/usb}/tcpci.h (99%)
diff --git a/drivers/usb/typec/tcpm/tcpci.c b/drivers/usb/typec/tcpm/tcpci.c
index 5340a3a3a81b..1a6aea9edc78 100644
--- a/drivers/usb/typec/tcpm/tcpci.c
+++ b/drivers/usb/typec/tcpm/tcpci.c
@@ -13,11 +13,10 @@
#include <linux/property.h>
#include <linux/regmap.h>
#include <linux/usb/pd.h>
+#include <linux/usb/tcpci.h>
#include <linux/usb/tcpm.h>
#include <linux/usb/typec.h>
-#include "tcpci.h"
-
#define PD_RETRY_COUNT_DEFAULT 3
#define PD_RETRY_COUNT_3_0_OR_HIGHER 2
#define AUTO_DISCHARGE_DEFAULT_THRESHOLD_MV 3500
diff --git a/drivers/usb/typec/tcpm/tcpci_maxim.c b/drivers/usb/typec/tcpm/tcpci_maxim.c
index df2505570f07..4b6705f3d7b7 100644
--- a/drivers/usb/typec/tcpm/tcpci_maxim.c
+++ b/drivers/usb/typec/tcpm/tcpci_maxim.c
@@ -11,11 +11,10 @@
#include <linux/module.h>
#include <linux/regmap.h>
#include <linux/usb/pd.h>
+#include <linux/usb/tcpci.h>
#include <linux/usb/tcpm.h>
#include <linux/usb/typec.h>
-#include "tcpci.h"
-
#define PD_ACTIVITY_TIMEOUT_MS 10000
#define TCPC_VENDOR_ALERT 0x80
diff --git a/drivers/usb/typec/tcpm/tcpci_mt6360.c b/drivers/usb/typec/tcpm/tcpci_mt6360.c
index 8a952eaf9016..1b7c31278ebb 100644
--- a/drivers/usb/typec/tcpm/tcpci_mt6360.c
+++ b/drivers/usb/typec/tcpm/tcpci_mt6360.c
@@ -11,10 +11,9 @@
#include <linux/of.h>
#include <linux/platform_device.h>
#include <linux/regmap.h>
+#include <linux/usb/tcpci.h>
#include <linux/usb/tcpm.h>
-#include "tcpci.h"
-
#define MT6360_REG_PHYCTRL1 0x80
#define MT6360_REG_PHYCTRL3 0x82
#define MT6360_REG_PHYCTRL7 0x86
diff --git a/drivers/usb/typec/tcpm/tcpci_rt1711h.c b/drivers/usb/typec/tcpm/tcpci_rt1711h.c
index b56a0880a044..3291ca4948da 100644
--- a/drivers/usb/typec/tcpm/tcpci_rt1711h.c
+++ b/drivers/usb/typec/tcpm/tcpci_rt1711h.c
@@ -10,9 +10,9 @@
#include <linux/i2c.h>
#include <linux/interrupt.h>
#include <linux/gpio/consumer.h>
+#include <linux/usb/tcpci.h>
#include <linux/usb/tcpm.h>
#include <linux/regmap.h>
-#include "tcpci.h"
#define RT1711H_VID 0x29CF
#define RT1711H_PID 0x1711
diff --git a/drivers/usb/typec/tcpm/tcpci.h b/include/linux/usb/tcpci.h
similarity index 99%
rename from drivers/usb/typec/tcpm/tcpci.h
rename to include/linux/usb/tcpci.h
index b2edd45f13c6..20c0bedb8ec8 100644
--- a/drivers/usb/typec/tcpm/tcpci.h
+++ b/include/linux/usb/tcpci.h
@@ -9,6 +9,7 @@
#define __LINUX_USB_TCPCI_H
#include <linux/usb/typec.h>
+#include <linux/usb/tcpm.h>
#define TCPC_VENDOR_ID 0x0
#define TCPC_PRODUCT_ID 0x2
--
2.34.1
^ permalink raw reply related [flat|nested] 5+ messages in thread* [PATCH 5.15.y 2/2] usb: typec: tcpci: clear the fault status bit
2023-09-04 13:37 ` [PATCH 5.15.y 1/2] usb: typec: tcpci: move tcpci.h to include/linux/usb/ Fabio Estevam
@ 2023-09-04 13:37 ` Fabio Estevam
0 siblings, 0 replies; 5+ messages in thread
From: Fabio Estevam @ 2023-09-04 13:37 UTC (permalink / raw)
To: stable
Cc: Marco Felsch, Angus Ainslie (Purism), Christian Bach,
Fabio Estevam, Guenter Roeck, Greg Kroah-Hartman
From: Marco Felsch <m.felsch@pengutronix.de>
[ Upstream commit 23e60c8daf5ec2ab1b731310761b668745fcf6ed ]
According the "USB Type-C Port Controller Interface Specification v2.0"
the TCPC sets the fault status register bit-7
(AllRegistersResetToDefault) once the registers have been reset to
their default values.
This triggers an alert(-irq) on PTN5110 devices albeit we do mask the
fault-irq, which may cause a kernel hang. Fix this generically by writing
a one to the corresponding bit-7.
Cc: stable@vger.kernel.org
Fixes: 74e656d6b055 ("staging: typec: Type-C Port Controller Interface driver (tcpci)")
Reported-by: "Angus Ainslie (Purism)" <angus@akkea.ca>
Closes: https://lore.kernel.org/all/20190508002749.14816-2-angus@akkea.ca/
Reported-by: Christian Bach <christian.bach@scs.ch>
Closes: https://lore.kernel.org/regressions/ZR0P278MB07737E5F1D48632897D51AC3EB329@ZR0P278MB0773.CHEP278.PROD.OUTLOOK.COM/t/
Signed-off-by: Marco Felsch <m.felsch@pengutronix.de>
Signed-off-by: Fabio Estevam <festevam@denx.de>
Reviewed-by: Guenter Roeck <linux@roeck-us.net>
Link: https://lore.kernel.org/r/20230816172502.1155079-1-festevam@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/usb/typec/tcpm/tcpci.c | 4 ++++
include/linux/usb/tcpci.h | 1 +
2 files changed, 5 insertions(+)
diff --git a/drivers/usb/typec/tcpm/tcpci.c b/drivers/usb/typec/tcpm/tcpci.c
index 1a6aea9edc78..a7b0134d382b 100644
--- a/drivers/usb/typec/tcpm/tcpci.c
+++ b/drivers/usb/typec/tcpm/tcpci.c
@@ -615,6 +615,10 @@ static int tcpci_init(struct tcpc_dev *tcpc)
if (time_after(jiffies, timeout))
return -ETIMEDOUT;
+ ret = tcpci_write16(tcpci, TCPC_FAULT_STATUS, TCPC_FAULT_STATUS_ALL_REG_RST_TO_DEFAULT);
+ if (ret < 0)
+ return ret;
+
/* Handle vendor init */
if (tcpci->data->init) {
ret = tcpci->data->init(tcpci, tcpci->data);
diff --git a/include/linux/usb/tcpci.h b/include/linux/usb/tcpci.h
index 20c0bedb8ec8..f7c01ce879a2 100644
--- a/include/linux/usb/tcpci.h
+++ b/include/linux/usb/tcpci.h
@@ -103,6 +103,7 @@
#define TCPC_POWER_STATUS_SINKING_VBUS BIT(0)
#define TCPC_FAULT_STATUS 0x1f
+#define TCPC_FAULT_STATUS_ALL_REG_RST_TO_DEFAULT BIT(7)
#define TCPC_ALERT_EXTENDED 0x21
--
2.34.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: FAILED: patch "[PATCH] usb: typec: tcpci: clear the fault status bit" failed to apply to 5.15-stable tree
2023-09-03 16:57 FAILED: patch "[PATCH] usb: typec: tcpci: clear the fault status bit" failed to apply to 5.15-stable tree gregkh
2023-09-04 13:37 ` [PATCH 5.15.y 1/2] usb: typec: tcpci: move tcpci.h to include/linux/usb/ Fabio Estevam
@ 2023-09-04 13:47 ` Fabio Estevam
2023-09-04 18:27 ` Greg KH
1 sibling, 1 reply; 5+ messages in thread
From: Fabio Estevam @ 2023-09-04 13:47 UTC (permalink / raw)
To: gregkh; +Cc: m.felsch, angus, christian.bach, linux, stable
On 03/09/2023 13:57, gregkh@linuxfoundation.org wrote:
> The patch below does not apply to the 5.15-stable tree.
> If someone wants it applied there, or to any other stable or longterm
> tree, then please email the backport, including the original git commit
> id to <stable@vger.kernel.org>.
The reason that it fails to apply against 5.15 is due to the missing
commit:
7963d4d71011 ("usb: typec: tcpci: move tcpci.h to include/linux/usb/")
I have submitted it as part of a series that applies cleanly against
5.15.
Thanks
^ permalink raw reply [flat|nested] 5+ messages in thread* Re: FAILED: patch "[PATCH] usb: typec: tcpci: clear the fault status bit" failed to apply to 5.15-stable tree
2023-09-04 13:47 ` FAILED: patch "[PATCH] usb: typec: tcpci: clear the fault status bit" failed to apply to 5.15-stable tree Fabio Estevam
@ 2023-09-04 18:27 ` Greg KH
0 siblings, 0 replies; 5+ messages in thread
From: Greg KH @ 2023-09-04 18:27 UTC (permalink / raw)
To: Fabio Estevam; +Cc: m.felsch, angus, christian.bach, linux, stable
On Mon, Sep 04, 2023 at 10:47:05AM -0300, Fabio Estevam wrote:
> On 03/09/2023 13:57, gregkh@linuxfoundation.org wrote:
> > The patch below does not apply to the 5.15-stable tree.
> > If someone wants it applied there, or to any other stable or longterm
> > tree, then please email the backport, including the original git commit
> > id to <stable@vger.kernel.org>.
>
> The reason that it fails to apply against 5.15 is due to the missing commit:
>
> 7963d4d71011 ("usb: typec: tcpci: move tcpci.h to include/linux/usb/")
>
> I have submitted it as part of a series that applies cleanly against 5.15.
Thanks all now queued up.
greg k-h
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2023-09-04 18:27 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-09-03 16:57 FAILED: patch "[PATCH] usb: typec: tcpci: clear the fault status bit" failed to apply to 5.15-stable tree gregkh
2023-09-04 13:37 ` [PATCH 5.15.y 1/2] usb: typec: tcpci: move tcpci.h to include/linux/usb/ Fabio Estevam
2023-09-04 13:37 ` [PATCH 5.15.y 2/2] usb: typec: tcpci: clear the fault status bit Fabio Estevam
2023-09-04 13:47 ` FAILED: patch "[PATCH] usb: typec: tcpci: clear the fault status bit" failed to apply to 5.15-stable tree Fabio Estevam
2023-09-04 18:27 ` Greg KH
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox