All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Théo Lebrun" <theo.lebrun@bootlin.com>
To: "Roger Quadros" <rogerq@kernel.org>,
	"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
	"Rob Herring" <robh@kernel.org>,
	"Krzysztof Kozlowski" <krzk+dt@kernel.org>,
	"Conor Dooley" <conor+dt@kernel.org>,
	"Peter Chen" <peter.chen@kernel.org>,
	"Pawel Laszczak" <pawell@cadence.com>,
	"Mathias Nyman" <mathias.nyman@intel.com>,
	"Nishanth Menon" <nm@ti.com>,
	"Vignesh Raghavendra" <vigneshr@ti.com>,
	"Tero Kristo" <kristo@kernel.org>
Cc: linux-usb@vger.kernel.org, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	"Kevin Hilman" <khilman@kernel.org>,
	"Grégory Clement" <gregory.clement@bootlin.com>,
	"Thomas Petazzoni" <thomas.petazzoni@bootlin.com>,
	"Conor Dooley" <conor.dooley@microchip.com>
Subject: Re: [PATCH v5 00/12] Fix USB suspend on TI J7200 (cdns3-ti, cdns3, xhci)
Date: Mon, 05 Aug 2024 10:58:45 +0200	[thread overview]
Message-ID: <D37UREKS0WIL.194M8MD5LEN2T@bootlin.com> (raw)
In-Reply-To: <37760e53-4e0d-4275-8497-1b51dcf72d5a@kernel.org>

Hello Roger,

On Sat Aug 3, 2024 at 5:14 PM CEST, Roger Quadros wrote:
> On 26/07/2024 21:17, Théo Lebrun wrote:
> > Currently, system-wide suspend is broken on J7200 because of a
> > controller reset. The TI wrapper does not get re-initialised at resume
> > and the first register access from cdns core fails.
> > 
> > We address that in a few ways:
> >  - In cdns3-ti, if a reset has occured at resume, we reconfigure the HW.
> >  - We pass the XHCI_RESET_ON_RESUME quirk, meaning the XHCI core expects
> >    a resume.
>
> OK.
> >  - We add a xhci->lost_power flag.
>
> Why?
>
> > 
> > The previous revision had one big issue: we had to know if
> > reset-on-resume was true, at probe-time. This is where the main
>
> Don't we already know this at probe-time? why not just rely on the existing
> XHCI_RESET_ON_RESUME qurik, than add a new mechanism?

Some TI platforms cannot tell, before going to suspend, if their USB
controller will reset. Suspend behavior is defined by (at least) two
features:

 - Power domains. See arch/arm64/boot/dts/ti/k3-j7200-main.dtsi:

   usbss0: cdns-usb@4104000 {
      compatible = "ti,j7200-usb", "ti,j721e-usb";
      // ...
      power-domains = <&k3_pds 288 TI_SCI_PD_EXCLUSIVE>;
      // ...
   };

   This `power-domains` property implies that even s2idle will reset
   the controller.

 - Deep suspend. The type of suspend defines what will happen to various
   controllers. Currently deep suspend is suspend-to-RAM, with the SoC
   being turned off.

   This might evolve over time with more complex rules: the chosen
   suspend behavior could depend on wakeup source and/or wakeup target
   latencies. That information might not be available to Linux, being
   decided upon by firmwares. We need to be able to resume successfully
   without being surprised by a reset.

I am sorry the precise usecase wasn't clear from the get-go.

Thanks,

--
Théo Lebrun, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com


  reply	other threads:[~2024-08-05  8:58 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-07-26 18:17 [PATCH v5 00/12] Fix USB suspend on TI J7200 (cdns3-ti, cdns3, xhci) Théo Lebrun
2024-07-26 18:17 ` [PATCH v5 01/12] dt-bindings: usb: ti,j721e-usb: fix compatible list Théo Lebrun
2024-08-05 13:31   ` Roger Quadros
2024-07-26 18:17 ` [PATCH v5 02/12] dt-bindings: usb: ti,j721e-usb: add ti,j7200-usb compatible Théo Lebrun
2024-07-26 19:26   ` Rob Herring (Arm)
2024-09-10 10:03     ` Théo Lebrun
2024-07-26 18:17 ` [PATCH v5 03/12] usb: cdns3-ti: move reg writes to separate function Théo Lebrun
2024-07-26 18:17 ` [PATCH v5 04/12] usb: cdns3-ti: run HW init at resume() if HW was reset Théo Lebrun
2024-07-26 18:17 ` [PATCH v5 05/12] usb: cdns3: add quirk to platform data for reset-on-resume Théo Lebrun
2024-08-05 13:49   ` Roger Quadros
2024-07-26 18:17 ` [PATCH v5 06/12] usb: cdns3-ti: grab auxdata from match data Théo Lebrun
2024-08-05 13:51   ` Roger Quadros
2024-07-26 18:17 ` [PATCH v5 07/12] usb: cdns3-ti: add J7200 support with reset-on-resume behavior Théo Lebrun
2024-08-05 13:54   ` Roger Quadros
2024-09-10 13:57     ` Théo Lebrun
2024-07-26 18:17 ` [PATCH v5 08/12] usb: cdns3: rename hibernated argument of role->resume() to lost_power Théo Lebrun
2024-07-26 18:17 ` [PATCH v5 09/12] xhci: introduce xhci->lost_power flag Théo Lebrun
2024-08-05 13:41   ` Roger Quadros
2024-09-10 13:50     ` Théo Lebrun
2024-11-20 14:49       ` Roger Quadros
2024-07-26 18:17 ` [PATCH v5 10/12] usb: cdns3: host: transmit lost_power signal from wrapper to XHCI Théo Lebrun
2024-07-26 18:17 ` [PATCH v5 11/12] arm64: dts: ti: k3-j7200: use J7200-specific USB compatible Théo Lebrun
2024-08-05 14:01   ` Roger Quadros
2024-07-26 18:18 ` [PATCH v5 12/12] arm64: dts: ti: k3-am64: add USB fallback compatible to J721E Théo Lebrun
2024-08-05 14:03   ` Roger Quadros
2024-08-03 15:14 ` [PATCH v5 00/12] Fix USB suspend on TI J7200 (cdns3-ti, cdns3, xhci) Roger Quadros
2024-08-05  8:58   ` Théo Lebrun [this message]
2024-08-05 14:01     ` Roger Quadros
2024-08-06 23:12     ` Kevin Hilman
2024-08-09  1:19 ` Peter Chen
2024-09-10 14:04   ` Théo Lebrun
2024-09-01 20:20 ` (subset) " Nishanth Menon

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=D37UREKS0WIL.194M8MD5LEN2T@bootlin.com \
    --to=theo.lebrun@bootlin.com \
    --cc=conor+dt@kernel.org \
    --cc=conor.dooley@microchip.com \
    --cc=devicetree@vger.kernel.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=gregory.clement@bootlin.com \
    --cc=khilman@kernel.org \
    --cc=kristo@kernel.org \
    --cc=krzk+dt@kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=mathias.nyman@intel.com \
    --cc=nm@ti.com \
    --cc=pawell@cadence.com \
    --cc=peter.chen@kernel.org \
    --cc=robh@kernel.org \
    --cc=rogerq@kernel.org \
    --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: link
Be 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.