On Tue, Aug 2, 2022 at 12:02 AM Dmitry BaryshkovLike Rob mentioned there could be transient votes from other clients/subsystem. It could be even stuck ON when hardware is in bad shape in some very rare cases. For the worst case scenario, I have added a timeout (500msec) in the gdsc reset op.
<dmitry.baryshkov@xxxxxxxxxx> wrote:
On 30/07/2022 12:17, Akhil P Oommen wrote:Other potential votes should be transient. But I guess we eventually
Some clients like adreno gpu driver would like to ensure that its gdscIf this is votable, do we have any guarantee that the gdsc will collapse
is collapsed at hardware during a gpu reset sequence. This is because it
has a votable gdsc which could be ON due to a vote from another subsystem
like tz, hyp etc or due to an internal hardware signal.
at all? How can we proceed if it did not collapse?
need to timeout and give up. At which point we are no worse off than
before.
But hmm, we aren't using RBBM_SW_RESET_CMD for sw reset like we have
on previous generations? That does seem a bit odd. Looks like kgsl
does use it.
BR,
-R
Yes. I should replace 'trigger' with 'start' here.
To allowTrigger the polling made me think initially that we will actually
this, gpucc driver can expose an interface to the client driver using
reset framework. Using this the client driver can trigger a polling within
the gdsc driver.
trigger something in the HW. Instead the client uses reset framework to
poll for the gdsc to be reset.
This series is rebased on top of linus's master branch.
Related discussion: https://patchwork.freedesktop.org/patch/493144/
Akhil P Oommen (5):
dt-bindings: clk: qcom: Support gpu cx gdsc reset
clk: qcom: Allow custom reset ops
clk: qcom: gpucc-sc7280: Add cx collapse reset support
clk: qcom: gdsc: Add a reset op to poll gdsc collapse
arm64: dts: qcom: sc7280: Add Reset support for gpu
arch/arm64/boot/dts/qcom/sc7280.dtsi | 3 +++
drivers/clk/qcom/gdsc.c | 23 +++++++++++++++++++----
drivers/clk/qcom/gdsc.h | 7 +++++++
drivers/clk/qcom/gpucc-sc7280.c | 6 ++++++
drivers/clk/qcom/reset.c | 6 ++++++
drivers/clk/qcom/reset.h | 2 ++
include/dt-bindings/clock/qcom,gpucc-sc7280.h | 3 +++
7 files changed, 46 insertions(+), 4 deletions(-)
--
With best wishes
Dmitry