From: "Théo Lebrun" <theo.lebrun@bootlin.com> To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>, Rob Herring <robh+dt@kernel.org>, Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>, Conor Dooley <conor+dt@kernel.org>, Roger Quadros <rogerq@kernel.org>, Peter Chen <peter.chen@kernel.org>, Pawel Laszczak <pawell@cadence.com>, Nishanth Menon <nm@ti.com>, Vignesh Raghavendra <vigneshr@ti.com>, Tero Kristo <kristo@kernel.org> Cc: "Thomas Petazzoni" <thomas.petazzoni@bootlin.com>, "Grégory Clement" <gregory.clement@bootlin.com>, "Kevin Hilman" <khilman@kernel.org>, "Alan Stern" <stern@rowland.harvard.edu>, linux-usb@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, "Théo Lebrun" <theo.lebrun@bootlin.com> Subject: [PATCH v3 0/8] usb: cdns: fix suspend on J7200 by assuming reset-on-resume Date: Fri, 23 Feb 2024 17:05:24 +0100 [thread overview] Message-ID: <20240223-j7200-usb-suspend-v3-0-b41c9893a130@bootlin.com> (raw) Hi, Here is a new revision of the J7200 USB suspend fix. It is currently broken on the platform, leading to a kernel panic at resume. Patches are tested on a J7200 evaluation board, both s2idle and suspend-to-RAM. Previous discussion showed that runtime PM was not to be deleted. Indeed, we cannot guarantee PM domains will stay active if we don't register to runtime PM. We therefore rely fully on runtime PM and put our init sequence previously done in the probe in our ->runtime_resume(). We then do the necessary to get it called at system-wide resume for the J7200 platform. Have a nice day, Théo -- Théo Lebrun, Bootlin Embedded Linux and Kernel engineering https://bootlin.com Signed-off-by: Théo Lebrun <theo.lebrun@bootlin.com> --- Changes in v3: - dt-bindings: use an enum to list compatibles instead of the previous odd construct. This is done in a separate patch from the one adding J7200 compatible. - dt-bindings: dropped Acked-by Conor as the changes were modified a lot. - Add runtime PM back. Put the init sequence in ->runtime_resume(). It gets called at probe for all compatibles and at resume for J7200. - Introduce a cdns_ti_match_data struct rather than rely on compatible from code. - Reorder code changes. Add infrastructure based on match data THEN add compatible and its match data. - DTSI: use only J7200 compatible rather than both J7200 then J721E. - Link to v2: https://lore.kernel.org/r/20231120-j7200-usb-suspend-v2-0-038c7e4a3df4@bootlin.com Changes in v2: - Remove runtime PM from cdns3-ti; it brings nothing. That means our cdns3-ti suspend/resume patch is simpler; there is no need to handle runtime PM at suspend/resume. - Do not add cdns3 host role suspend/resume callbacks; they are not needed as core detects reset on resume & calls cdns_drd_host_on when needed. - cdns3-ti: Move usb2_refclk_rate_code assignment closer to the value computation. - cdns3/host.c: do not pass XHCI_SUSPEND_RESUME_CLKS quirk to xHCI; it is unneeded on our platform. - Link to v1: https://lore.kernel.org/r/20231113-j7200-usb-suspend-v1-0-ad1ee714835c@bootlin.com --- Théo Lebrun (8): dt-bindings: usb: ti,j721e-usb: drop useless compatible list dt-bindings: usb: ti,j721e-usb: add ti,j7200-usb compatible usb: cdns3-ti: move reg writes from probe into ->runtime_resume() usb: cdns3-ti: support reset-on-resume behavior usb: cdns3-ti: pass auxdata from match data to of_platform_populate() usb: cdns3: add quirk to platform data for reset-on-resume usb: cdns3-ti: add J7200 support with reset-on-resume behavior arm64: dts: ti: k3-j7200: use J7200-specific USB compatible .../devicetree/bindings/usb/ti,j721e-usb.yaml | 10 +- arch/arm64/boot/dts/ti/k3-j7200-main.dtsi | 2 +- drivers/usb/cdns3/cdns3-ti.c | 125 ++++++++++++++++----- drivers/usb/cdns3/core.h | 1 + drivers/usb/cdns3/host.c | 3 + 5 files changed, 104 insertions(+), 37 deletions(-) --- base-commit: 1871c27e3539e5b812d50ec6ccad7567ec5414f2 change-id: 20231113-j7200-usb-suspend-2a47f2281e04 Best regards, -- Théo Lebrun <theo.lebrun@bootlin.com>
WARNING: multiple messages have this Message-ID (diff)
From: "Théo Lebrun" <theo.lebrun@bootlin.com> To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>, Rob Herring <robh+dt@kernel.org>, Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>, Conor Dooley <conor+dt@kernel.org>, Roger Quadros <rogerq@kernel.org>, Peter Chen <peter.chen@kernel.org>, Pawel Laszczak <pawell@cadence.com>, Nishanth Menon <nm@ti.com>, Vignesh Raghavendra <vigneshr@ti.com>, Tero Kristo <kristo@kernel.org> Cc: "Thomas Petazzoni" <thomas.petazzoni@bootlin.com>, "Grégory Clement" <gregory.clement@bootlin.com>, "Kevin Hilman" <khilman@kernel.org>, "Alan Stern" <stern@rowland.harvard.edu>, linux-usb@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, "Théo Lebrun" <theo.lebrun@bootlin.com> Subject: [PATCH v3 0/8] usb: cdns: fix suspend on J7200 by assuming reset-on-resume Date: Fri, 23 Feb 2024 17:05:24 +0100 [thread overview] Message-ID: <20240223-j7200-usb-suspend-v3-0-b41c9893a130@bootlin.com> (raw) Hi, Here is a new revision of the J7200 USB suspend fix. It is currently broken on the platform, leading to a kernel panic at resume. Patches are tested on a J7200 evaluation board, both s2idle and suspend-to-RAM. Previous discussion showed that runtime PM was not to be deleted. Indeed, we cannot guarantee PM domains will stay active if we don't register to runtime PM. We therefore rely fully on runtime PM and put our init sequence previously done in the probe in our ->runtime_resume(). We then do the necessary to get it called at system-wide resume for the J7200 platform. Have a nice day, Théo -- Théo Lebrun, Bootlin Embedded Linux and Kernel engineering https://bootlin.com Signed-off-by: Théo Lebrun <theo.lebrun@bootlin.com> --- Changes in v3: - dt-bindings: use an enum to list compatibles instead of the previous odd construct. This is done in a separate patch from the one adding J7200 compatible. - dt-bindings: dropped Acked-by Conor as the changes were modified a lot. - Add runtime PM back. Put the init sequence in ->runtime_resume(). It gets called at probe for all compatibles and at resume for J7200. - Introduce a cdns_ti_match_data struct rather than rely on compatible from code. - Reorder code changes. Add infrastructure based on match data THEN add compatible and its match data. - DTSI: use only J7200 compatible rather than both J7200 then J721E. - Link to v2: https://lore.kernel.org/r/20231120-j7200-usb-suspend-v2-0-038c7e4a3df4@bootlin.com Changes in v2: - Remove runtime PM from cdns3-ti; it brings nothing. That means our cdns3-ti suspend/resume patch is simpler; there is no need to handle runtime PM at suspend/resume. - Do not add cdns3 host role suspend/resume callbacks; they are not needed as core detects reset on resume & calls cdns_drd_host_on when needed. - cdns3-ti: Move usb2_refclk_rate_code assignment closer to the value computation. - cdns3/host.c: do not pass XHCI_SUSPEND_RESUME_CLKS quirk to xHCI; it is unneeded on our platform. - Link to v1: https://lore.kernel.org/r/20231113-j7200-usb-suspend-v1-0-ad1ee714835c@bootlin.com --- Théo Lebrun (8): dt-bindings: usb: ti,j721e-usb: drop useless compatible list dt-bindings: usb: ti,j721e-usb: add ti,j7200-usb compatible usb: cdns3-ti: move reg writes from probe into ->runtime_resume() usb: cdns3-ti: support reset-on-resume behavior usb: cdns3-ti: pass auxdata from match data to of_platform_populate() usb: cdns3: add quirk to platform data for reset-on-resume usb: cdns3-ti: add J7200 support with reset-on-resume behavior arm64: dts: ti: k3-j7200: use J7200-specific USB compatible .../devicetree/bindings/usb/ti,j721e-usb.yaml | 10 +- arch/arm64/boot/dts/ti/k3-j7200-main.dtsi | 2 +- drivers/usb/cdns3/cdns3-ti.c | 125 ++++++++++++++++----- drivers/usb/cdns3/core.h | 1 + drivers/usb/cdns3/host.c | 3 + 5 files changed, 104 insertions(+), 37 deletions(-) --- base-commit: 1871c27e3539e5b812d50ec6ccad7567ec5414f2 change-id: 20231113-j7200-usb-suspend-2a47f2281e04 Best regards, -- Théo Lebrun <theo.lebrun@bootlin.com> _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next reply other threads:[~2024-02-23 16:05 UTC|newest] Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top 2024-02-23 16:05 Théo Lebrun [this message] 2024-02-23 16:05 ` [PATCH v3 0/8] usb: cdns: fix suspend on J7200 by assuming reset-on-resume Théo Lebrun 2024-02-23 16:05 ` [PATCH v3 1/8] dt-bindings: usb: ti,j721e-usb: drop useless compatible list Théo Lebrun 2024-02-23 16:05 ` Théo Lebrun 2024-02-23 18:12 ` Conor Dooley 2024-02-23 18:12 ` Conor Dooley 2024-02-26 10:33 ` Théo Lebrun 2024-02-26 10:33 ` Théo Lebrun 2024-02-26 11:56 ` Conor Dooley 2024-02-26 11:56 ` Conor Dooley 2024-02-26 14:35 ` Théo Lebrun 2024-02-26 14:35 ` Théo Lebrun 2024-02-27 4:24 ` Vignesh Raghavendra 2024-02-27 4:24 ` Vignesh Raghavendra 2024-02-27 8:07 ` Conor Dooley 2024-02-27 8:07 ` Conor Dooley 2024-02-23 16:05 ` [PATCH v3 2/8] dt-bindings: usb: ti,j721e-usb: add ti,j7200-usb compatible Théo Lebrun 2024-02-23 16:05 ` Théo Lebrun 2024-02-23 18:13 ` Conor Dooley 2024-02-23 18:13 ` Conor Dooley 2024-02-23 16:05 ` [PATCH v3 3/8] usb: cdns3-ti: move reg writes from probe into ->runtime_resume() Théo Lebrun 2024-02-23 16:05 ` Théo Lebrun 2024-02-23 16:05 ` [PATCH v3 4/8] usb: cdns3-ti: support reset-on-resume behavior Théo Lebrun 2024-02-23 16:05 ` Théo Lebrun 2024-02-24 9:08 ` Sergei Shtylyov 2024-02-24 9:08 ` Sergei Shtylyov 2024-02-26 10:13 ` Théo Lebrun 2024-02-26 10:13 ` Théo Lebrun 2024-02-27 16:27 ` Sergei Shtylyov 2024-02-27 16:27 ` Sergei Shtylyov 2024-02-23 16:05 ` [PATCH v3 5/8] usb: cdns3-ti: pass auxdata from match data to of_platform_populate() Théo Lebrun 2024-02-23 16:05 ` Théo Lebrun 2024-02-23 16:05 ` [PATCH v3 6/8] usb: cdns3: add quirk to platform data for reset-on-resume Théo Lebrun 2024-02-23 16:05 ` Théo Lebrun 2024-02-23 16:05 ` [PATCH v3 7/8] usb: cdns3-ti: add J7200 support with reset-on-resume behavior Théo Lebrun 2024-02-23 16:05 ` Théo Lebrun 2024-02-23 16:05 ` [PATCH v3 8/8] arm64: dts: ti: k3-j7200: use J7200-specific USB compatible Théo Lebrun 2024-02-23 16:05 ` Théo Lebrun
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20240223-j7200-usb-suspend-v3-0-b41c9893a130@bootlin.com \ --to=theo.lebrun@bootlin.com \ --cc=conor+dt@kernel.org \ --cc=devicetree@vger.kernel.org \ --cc=gregkh@linuxfoundation.org \ --cc=gregory.clement@bootlin.com \ --cc=khilman@kernel.org \ --cc=kristo@kernel.org \ --cc=krzysztof.kozlowski+dt@linaro.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-usb@vger.kernel.org \ --cc=nm@ti.com \ --cc=pawell@cadence.com \ --cc=peter.chen@kernel.org \ --cc=robh+dt@kernel.org \ --cc=rogerq@kernel.org \ --cc=stern@rowland.harvard.edu \ --cc=thomas.petazzoni@bootlin.com \ --cc=vigneshr@ti.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.