On 11/05/2023 11:15, Manivannan Sadhasivam wrote:
On Tue, May 09, 2023 at 02:20:07PM +0300, Dmitry Baryshkov wrote:
On Tue, 9 May 2023 at 08:50, Manivannan Sadhasivam
<manivannan.sadhasivam@xxxxxxxxxx> wrote:
On Sun, May 07, 2023 at 08:53:35PM +0300, Dmitry Baryshkov wrote:
Using PWRSTS_RET on msm8974's MDSS_GDSC causes display to stop working.
The gdsc doesn't fully come out of retention mode. Change it's pwrsts
flags to PWRSTS_OFF_ON.
What does "stop working" implies? Does it work during boot and randomly stopped
working or it stopped working after resume from suspend?
It stops working during the boot. I observed the MDP not starting up
properly. Mea culpa, I did not look deep enough into the details, just
stomped upon this change which fixes the problem for me.
IIUC, GDSC will be transitioned to retention mode only if the parent domain goes
to low power mode. So if the MDSS GDSC goes to retention mode during boot, then
it suggests that the parent domain is not voted properly. Unless I misunderstood
something...
Not sure, what is the parent domain here. Note, it is a pretty old
implementation.
Or is the GDSC behavior changes between RPM and RPMh?
- Mani
Even though reverting to non-retention mode works, I think the issue might be
somewhere else. Like the vote might be missing to get the GDSC out of retention
mode.
I don't think there is a vote missing. The driver votes on MDSS_GDSC
before enabling access to any of the registers from the MDSS region.
- Mani
Fixes: d399723950c4 ("clk: qcom: gdsc: Fix the handling of PWRSTS_RET support")
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@xxxxxxxxxx>
---
drivers/clk/qcom/mmcc-msm8974.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/clk/qcom/mmcc-msm8974.c b/drivers/clk/qcom/mmcc-msm8974.c
index aa29c79fcd55..277ef0065aae 100644
--- a/drivers/clk/qcom/mmcc-msm8974.c
+++ b/drivers/clk/qcom/mmcc-msm8974.c
@@ -2401,7 +2401,7 @@ static struct gdsc mdss_gdsc = {
.pd = {
.name = "mdss",
},
- .pwrsts = PWRSTS_RET_ON,
+ .pwrsts = PWRSTS_OFF_ON,
};
static struct gdsc camss_jpeg_gdsc = {
--
2.39.2
--
மணிவண்ணன் சதாசிவம்
--
With best wishes
Dmitry
--
With best wishes
Dmitry