mbox series

[RFC,v2,0/4] arm64: dts: qcom: sm8150: display support for Microsoft Surface Duo

Message ID 20211117013516.4111383-1-kaperez@linux.microsoft.com (mailing list archive)
Headers show
Series arm64: dts: qcom: sm8150: display support for Microsoft Surface Duo | expand

Message

Katherine Perez Nov. 17, 2021, 1:35 a.m. UTC
Hi Bjorn and Vinod,

I'm trying to enable the display subsystem on SM8150 but am having
trouble enabling the DISP_CC_MDSS_AHB_CLK. Trace shows "disp_cc_mdss_ahb_clk
status stuck at off". Do you have any pointers on enabling this clock?

msm_dsi_phy ae94400.dsi-phy: [drm:dsi_phy_driver_probe [msm]] *ERROR* dsi_phy_driver_probe: Unable to get ahb clk
disp_cc-sm8250 af00000.clock-controller: supply mmcx not found, using dummy regulator
platform ae96000.dsi: Fixing up cyclic dependency with ae00000.mdss:mdp@ae010000
------------[ cut here ]------------
disp_cc_mdss_ahb_clk status stuck at 'off'
WARNING: CPU: 6 PID: 76 at drivers/clk/qcom/clk-branch.c:91 clk_branch_wait+0x14c/0x164
CPU: 6 PID: 76 Comm: kworker/u16:2 Not tainted 5.15.0 #17
Hardware name: Microsoft Surface Duo (DT)
Workqueue: events_unbound deferred_probe_work_func
pstate: 604000c5 (nZCv daIF +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
pc : clk_branch_wait+0x14c/0x164
lr : clk_branch_wait+0x14c/0x164
sp : ffff80001078ba40
x29: ffff80001078ba40 x28: 0000000000000000 x27: ffff65e6008e2100
x26: ffffb8630ec8e278 x25: ffff65e60005e005 x24: ffffb8630ebc0f98
x23: ffffb8630e234dd8 x22: 0000000000000001 x21: ffffb8630d5b8b60
x20: 0000000000000000 x19: ffffb8630eb5e7b8 x18: 0000000000000030
x17: 2e726f74616c7567 x16: ffffb8630d5a3800 x15: ffffffffffffffff
x14: 0000000000000000 x13: 6f27207461206b63 x12: 7574732073757461
x11: 77705f313439386d x10: 0000000000000027 x9 : ffffb8630cf974bc
x8 : 0000000000000027 x7 : 0000000000000002 x6 : 0000000000000027
x5 : ffff65e6f93cc9a8 x4 : ffff80001078b890 x3 : 0000000000000001
x2 : 0000000000000000 x1 : 0000000000000000 x0 : ffff65e600851d80
Call trace:
 clk_branch_wait+0x14c/0x164
 clk_branch2_enable+0x3c/0x60
 clk_core_enable+0x78/0x220
 clk_enable+0x38/0x60
 dsi_phy_enable_resource+0x98/0xac [msm]
 dsi_phy_driver_probe+0x29c/0x4f8 [msm]
 platform_probe+0x74/0xe4
 really_probe.part.0+0xa4/0x328
 __driver_probe_device+0xa0/0x150
 driver_probe_device+0x4c/0x164
 __device_attach_driver+0xc0/0x128
 bus_for_each_drv+0x84/0xe0
 __device_attach+0xe0/0x188
 device_initial_probe+0x20/0x2c
 bus_probe_device+0xa8/0xbc
 deferred_probe_work_func+0x90/0xc8
 process_one_work+0x1f4/0x43c
 worker_thread+0x78/0x4f0
 kthread+0x154/0x160
 ret_from_fork+0x10/0x20
---[ end trace 734ed75908fc6b0e ]---

Katherine Perez (4):
  arm64: dts: qcom: sm8150: add dispcc node
  arm64: dts: qcom: sm8150: add display nodes
  arm64: dts: qcom: sm8150: add DSI display nodes
  arm64: dts: qcom: sm8150: display support for Microsoft Surface Duo

 .../dts/qcom/sm8150-microsoft-surface-duo.dts |  26 ++
 arch/arm64/boot/dts/qcom/sm8150.dtsi          | 292 ++++++++++++++++++
 2 files changed, 318 insertions(+)

--
2.31.1

Comments

Bjorn Andersson Nov. 17, 2021, 6:20 a.m. UTC | #1
On Tue 16 Nov 19:35 CST 2021, Katherine Perez wrote:

> Hi Bjorn and Vinod,
> 
> I'm trying to enable the display subsystem on SM8150 but am having
> trouble enabling the DISP_CC_MDSS_AHB_CLK. Trace shows "disp_cc_mdss_ahb_clk
> status stuck at off". Do you have any pointers on enabling this clock?
> 

Hi Katherine,

This looks quite similar to an issue I'm chasing the past few days on
the sc8180x platform (which is derived from sm8150).

The problem seems to come down to the fact that we're not holding the
MMCX power-domain at a high enough performance_state through the boot
process and in contrast with other platforms these two are stricter in
their requirements.

For these platforms, the essence of the solution is that we need to hold
MMCX at nominal as long as there's display clocks ticking at high speed,
unfortunately there doesn't seem to be any quick way to achieve this -
so I now have a handful of patches that fix various aspects of this
issue, but not something reliable enough to post just yet.

Regards,
Bjorn

> msm_dsi_phy ae94400.dsi-phy: [drm:dsi_phy_driver_probe [msm]] *ERROR* dsi_phy_driver_probe: Unable to get ahb clk
> disp_cc-sm8250 af00000.clock-controller: supply mmcx not found, using dummy regulator
> platform ae96000.dsi: Fixing up cyclic dependency with ae00000.mdss:mdp@ae010000
> ------------[ cut here ]------------
> disp_cc_mdss_ahb_clk status stuck at 'off'
> WARNING: CPU: 6 PID: 76 at drivers/clk/qcom/clk-branch.c:91 clk_branch_wait+0x14c/0x164
> CPU: 6 PID: 76 Comm: kworker/u16:2 Not tainted 5.15.0 #17
> Hardware name: Microsoft Surface Duo (DT)
> Workqueue: events_unbound deferred_probe_work_func
> pstate: 604000c5 (nZCv daIF +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
> pc : clk_branch_wait+0x14c/0x164
> lr : clk_branch_wait+0x14c/0x164
> sp : ffff80001078ba40
> x29: ffff80001078ba40 x28: 0000000000000000 x27: ffff65e6008e2100
> x26: ffffb8630ec8e278 x25: ffff65e60005e005 x24: ffffb8630ebc0f98
> x23: ffffb8630e234dd8 x22: 0000000000000001 x21: ffffb8630d5b8b60
> x20: 0000000000000000 x19: ffffb8630eb5e7b8 x18: 0000000000000030
> x17: 2e726f74616c7567 x16: ffffb8630d5a3800 x15: ffffffffffffffff
> x14: 0000000000000000 x13: 6f27207461206b63 x12: 7574732073757461
> x11: 77705f313439386d x10: 0000000000000027 x9 : ffffb8630cf974bc
> x8 : 0000000000000027 x7 : 0000000000000002 x6 : 0000000000000027
> x5 : ffff65e6f93cc9a8 x4 : ffff80001078b890 x3 : 0000000000000001
> x2 : 0000000000000000 x1 : 0000000000000000 x0 : ffff65e600851d80
> Call trace:
>  clk_branch_wait+0x14c/0x164
>  clk_branch2_enable+0x3c/0x60
>  clk_core_enable+0x78/0x220
>  clk_enable+0x38/0x60
>  dsi_phy_enable_resource+0x98/0xac [msm]
>  dsi_phy_driver_probe+0x29c/0x4f8 [msm]
>  platform_probe+0x74/0xe4
>  really_probe.part.0+0xa4/0x328
>  __driver_probe_device+0xa0/0x150
>  driver_probe_device+0x4c/0x164
>  __device_attach_driver+0xc0/0x128
>  bus_for_each_drv+0x84/0xe0
>  __device_attach+0xe0/0x188
>  device_initial_probe+0x20/0x2c
>  bus_probe_device+0xa8/0xbc
>  deferred_probe_work_func+0x90/0xc8
>  process_one_work+0x1f4/0x43c
>  worker_thread+0x78/0x4f0
>  kthread+0x154/0x160
>  ret_from_fork+0x10/0x20
> ---[ end trace 734ed75908fc6b0e ]---
> 
> Katherine Perez (4):
>   arm64: dts: qcom: sm8150: add dispcc node
>   arm64: dts: qcom: sm8150: add display nodes
>   arm64: dts: qcom: sm8150: add DSI display nodes
>   arm64: dts: qcom: sm8150: display support for Microsoft Surface Duo
> 
>  .../dts/qcom/sm8150-microsoft-surface-duo.dts |  26 ++
>  arch/arm64/boot/dts/qcom/sm8150.dtsi          | 292 ++++++++++++++++++
>  2 files changed, 318 insertions(+)
> 
> --
> 2.31.1
>