From: Kevin Hilman <khilman@baylibre.com>
To: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>,
Nishanth Menon <nm@ti.com>, Tero Kristo <kristo@kernel.org>,
Santosh Shilimkar <ssantosh@kernel.org>,
Ulf Hansson <ulf.hansson@linaro.org>
Cc: linux-arm-kernel@lists.infradead.org, linux-pm@vger.kernel.org,
linux-kernel@vger.kernel.org, vishalm@ti.com,
sebin.francis@ti.com, d-gole@ti.com,
Devarsh Thakkar <devarsht@ti.com>,
Vignesh Raghavendra <vigneshr@ti.com>,
Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
Subject: Re: [PATCH RFC] pmdomain: ti-sci: Set PD on/off state according to the HW state
Date: Wed, 30 Oct 2024 13:04:28 -0700 [thread overview]
Message-ID: <7hmsilqrw3.fsf@baylibre.com> (raw)
In-Reply-To: <20241022-tisci-pd-boot-state-v1-1-849a6384131b@ideasonboard.com>
Tomi Valkeinen <tomi.valkeinen@ideasonboard.com> writes:
> At the moment the driver sets the power state of all the PDs it creates
> to off, regardless of the actual HW state. This has two drawbacks:
>
> 1) The kernel cannot disable unused PDs automatically for power saving,
> as it thinks they are off already
>
> 2) A more specific case (but perhaps applicable to other scenarios
> also): bootloader enabled splash-screen cannot be kept on the screen.
>
> The issue in 2) is that the driver framework automatically enables the
> device's PD before calling probe() and disables it after the probe().
> This means that when the display subsystem (DSS) driver probes, but e.g.
> fails due to deferred probing, the DSS PD gets turned off and the driver
> cannot do anything to affect that.
>
> Solving the 2) requires more changes to actually keep the PD on during
> the boot, but a prerequisite for it is to have the correct power state
> for the PD.
>
> The downside with this patch is that it takes time to call the 'is_on'
> op, and we need to call it for each PD. In my tests with AM62 SK, using
> defconfig, I see an increase from ~3.5ms to ~7ms. However, the added
> feature is valuable, so in my opinion it's worth it.
>
> The performance could probably be improved with a new firmware API which
> returns the power states of all the PDs.
Agreed. I think we have to pay this performance price for correctness,
and we can optimizie it later with improvements to the SCI firmware and
a new API.
> There's also a related HW issue at play here: if the DSS IP is enabled
> and active, and its PD is turned off without first disabling the DSS
> display outputs, the DSS IP will hang and causes the kernel to halt if
> and when the DSS driver accesses the DSS registers the next time.
Ouch.
> With the current upstream kernel, with this patch applied, this means
> that if the bootloader enables the display, and the DSS driver is
> compiled as a module, the kernel will at some point disable unused PDs,
> including the DSS PD. When the DSS module is later loaded, it will hang
> the kernel.
>
> The same issue is already there, even without this patch, as the DSS
> driver may hit deferred probing, which causes the PD to be turned off,
> and leading to kernel halt when the DSS driver is probed again. This
> issue has been made quite rare with some arrangements in the DSS
> driver's probe, but it's still there.
>
> So, because of the DSS hang issues, I think this patch is still an RFC.
Like you said, I think that DSS hang is an issue independently of this
patch, so it shouldn't hold this up IMO.
> Hopefully we can sort out all the issues, but this patch (or similar)
> will be part of the solution so I'd like to get some acks/nacks/comments
> for this. Also, this change might have side effects to other devices
> too, if the drivers expect the PD to be on, so testing is needed.
>
> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
We already discussed this a bit off-list, but for the record, I agree
with the approach.
I also tested it on k3-am62a7-sk where I've been doing the other TI SCI
pmdomain work and everything still working fine.
Reviewed-by: Kevin Hilman <khilman@baylibre.com>
Tested-by: Kevin Hilman <khilman@baylibre.com>
Kevin
next prev parent reply other threads:[~2024-10-30 20:06 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-22 6:41 [PATCH RFC] pmdomain: ti-sci: Set PD on/off state according to the HW state Tomi Valkeinen
2024-10-22 11:18 ` Ulf Hansson
2024-10-30 20:04 ` Kevin Hilman [this message]
2024-10-31 7:39 ` Tomi Valkeinen
2024-10-31 10:25 ` Ulf Hansson
2024-11-01 6:46 ` Tomi Valkeinen
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=7hmsilqrw3.fsf@baylibre.com \
--to=khilman@baylibre.com \
--cc=d-gole@ti.com \
--cc=devarsht@ti.com \
--cc=kristo@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=nm@ti.com \
--cc=sebin.francis@ti.com \
--cc=ssantosh@kernel.org \
--cc=tomi.valkeinen@ideasonboard.com \
--cc=ulf.hansson@linaro.org \
--cc=vigneshr@ti.com \
--cc=vishalm@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.