[Freedreno] db820: smmu clocks issue in kernel

Rob Clark robdclark at gmail.com
Tue Aug 14 14:37:55 UTC 2018


On Tue, Aug 14, 2018 at 9:00 AM Pradeep Reddy
<pradeep.mundlapudi5 at gmail.com> wrote:
>
> Hi Archit,
>
> I have enabled splash screen (penguin) in bootloader with fastboot oem select-display-panel hdmi. Kernel crashes during boot. I identified that there is issue with below two smmu clocks.
> static struct clk_branch smmu_mdp_ahb_clk = {
>         .halt_reg = 0x2454,
>         .clkr = {
>                 .enable_reg = 0x2454,
>                 .enable_mask = BIT(0),
>
> static struct clk_branch smmu_mdp_axi_clk = {
>         .halt_reg = 0x2458,
>         .clkr = {
>                 .enable_reg = 0x2458,
>                 .enable_mask = BIT(0),
>
> I tried to reset the clocks in mmcc_msm8996_probe, with the below changes.
>        regmap_update_bits(regmap, 0x2454, BIT(0), 0);
>         regmap_update_bits(regmap, 0x2458, BIT(0), 0);
>
> Then i don't see a kernel crash but blue screen appears after penguin for some time. Then HDMI display comes up.
>
> Can you please let me know better way to reset smmu clocks?
>

tbh, this is probably the tip of the iceberg.. It is going to take a
fair bit of work to make this work properly, especially with something
like hdmi were we need to readback hw state to figure out display
timings.  I started something a year or so back on db410c, but it
needs some clk framework changes and some gdsc changes.  I'm not sure
anyone has had a chance to pick up this work since then.

Do you *really* need to enable the display from the bootloader.  By
*far* the easiest solution is to not do that.

BR,
-R


More information about the Freedreno mailing list