Message ID | 1666159535-6447-1-git-send-email-quic_c_skakit@quicinc.com (mailing list archive) |
---|---|
State | Accepted |
Headers | show |
Series | clk: qcom: Update the force mem core bit for GPU clocks | expand |
Quoting Satya Priya (2022-10-18 23:05:35) > From: Taniya Das <quic_tdas@quicinc.com> > > There are few GPU clocks which are powering up the memories > and thus enable the FORCE_MEM_PERIPH always for these clocks > to force the periph_on signal to remain active during halt > state of the clock. > > Fixes: a3cc092196ef ("clk: qcom: Add Global Clock controller (GCC) driver for SC7280") > Fixes: 3e0f01d6c7e7 ("clk: qcom: Add graphics clock controller driver for SC7280") > Signed-off-by: Taniya Das <quic_tdas@quicinc.com> > Signed-off-by: Satya Priya <quic_c_skakit@quicinc.com> > --- Applied to clk-fixes
Quoting Satya Priya (2022-10-18 23:05:35) > From: Taniya Das <quic_tdas@quicinc.com> > > There are few GPU clocks which are powering up the memories > and thus enable the FORCE_MEM_PERIPH always for these clocks > to force the periph_on signal to remain active during halt > state of the clock. I take it that missing this causes GPU to lose state when it suspends and that confuses the driver?
On 10/28/2022 5:54 AM, Stephen Boyd wrote: > Quoting Satya Priya (2022-10-18 23:05:35) >> From: Taniya Das <quic_tdas@quicinc.com> >> >> There are few GPU clocks which are powering up the memories >> and thus enable the FORCE_MEM_PERIPH always for these clocks >> to force the periph_on signal to remain active during halt >> state of the clock. > I take it that missing this causes GPU to lose state when it suspends > and that confuses the driver? It is more related to GPU SMMU states and the stability issues that are encountered.
Hi, On Sun, Nov 6, 2022 at 9:38 PM Satya Priya Kakitapalli (Temp) <quic_c_skakit@quicinc.com> wrote: > > > On 10/28/2022 5:54 AM, Stephen Boyd wrote: > > Quoting Satya Priya (2022-10-18 23:05:35) > >> From: Taniya Das <quic_tdas@quicinc.com> > >> > >> There are few GPU clocks which are powering up the memories > >> and thus enable the FORCE_MEM_PERIPH always for these clocks > >> to force the periph_on signal to remain active during halt > >> state of the clock. > > I take it that missing this causes GPU to lose state when it suspends > > and that confuses the driver? > > > It is more related to GPU SMMU states and the stability issues that are > encountered. I see a very similar code sequence for sc7180. Is any similar fix needed for sc7180, or is this something unique for sc7280? -Doug
Hi Doug, On 11/7/2022 10:30 PM, Doug Anderson wrote: > Hi, > > On Sun, Nov 6, 2022 at 9:38 PM Satya Priya Kakitapalli (Temp) > <quic_c_skakit@quicinc.com> wrote: >> >> On 10/28/2022 5:54 AM, Stephen Boyd wrote: >>> Quoting Satya Priya (2022-10-18 23:05:35) >>>> From: Taniya Das <quic_tdas@quicinc.com> >>>> >>>> There are few GPU clocks which are powering up the memories >>>> and thus enable the FORCE_MEM_PERIPH always for these clocks >>>> to force the periph_on signal to remain active during halt >>>> state of the clock. >>> I take it that missing this causes GPU to lose state when it suspends >>> and that confuses the driver? >> >> It is more related to GPU SMMU states and the stability issues that are >> encountered. > I see a very similar code sequence for sc7180. Is any similar fix > needed for sc7180, or is this something unique for sc7280? This is not needed for sc7180, it is related to sc7280 only.
diff --git a/drivers/clk/qcom/gcc-sc7280.c b/drivers/clk/qcom/gcc-sc7280.c index 8afb757..46d41eb 100644 --- a/drivers/clk/qcom/gcc-sc7280.c +++ b/drivers/clk/qcom/gcc-sc7280.c @@ -3467,6 +3467,7 @@ static int gcc_sc7280_probe(struct platform_device *pdev) regmap_update_bits(regmap, 0x28004, BIT(0), BIT(0)); regmap_update_bits(regmap, 0x28014, BIT(0), BIT(0)); regmap_update_bits(regmap, 0x71004, BIT(0), BIT(0)); + regmap_update_bits(regmap, 0x7100C, BIT(13), BIT(13)); ret = qcom_cc_register_rcg_dfs(regmap, gcc_dfs_clocks, ARRAY_SIZE(gcc_dfs_clocks)); diff --git a/drivers/clk/qcom/gpucc-sc7280.c b/drivers/clk/qcom/gpucc-sc7280.c index 9a832f2..1490cd4 100644 --- a/drivers/clk/qcom/gpucc-sc7280.c +++ b/drivers/clk/qcom/gpucc-sc7280.c @@ -463,6 +463,7 @@ static int gpu_cc_sc7280_probe(struct platform_device *pdev) */ regmap_update_bits(regmap, 0x1170, BIT(0), BIT(0)); regmap_update_bits(regmap, 0x1098, BIT(0), BIT(0)); + regmap_update_bits(regmap, 0x1098, BIT(13), BIT(13)); return qcom_cc_really_probe(pdev, &gpu_cc_sc7280_desc, regmap); }