diff mbox

[PATCHv2,0/9] clk: ti: add support for clkctrl clocks

Message ID 8648f054-cf04-41df-20f3-82e0d63feefa@ti.com (mailing list archive)
State New, archived
Headers show

Commit Message

Tero Kristo March 30, 2017, 7:18 a.m. UTC
On 23/03/17 19:02, Tony Lindgren wrote:
> * Tony Lindgren <tony@atomide.com> [170322 18:03]:
>> * Tero Kristo <t-kristo@ti.com> [170317 14:39]:
>>> On 17/03/17 17:25, Tony Lindgren wrote:
>>>> * Tero Kristo <t-kristo@ti.com> [170317 02:12]:
>>>>> Any additional testing on omap4 welcome as this series basically
>>>>> tweaks every possible peripheral clock on the SoC.
>>>>
>>>> Without the last patch in this series, booting fails for me:
>>>>
>>>> [    5.074890] l4_per_cm:clk:0120:0: failed to disable
>>>> [    5.085113] l4_per_cm:clk:0128:0: failed to disable
>>>>
>>>> Care to check that booting keeps working for each patch in the
>>>> series to avoid breaking git bisect for booting?
>>>
>>> Hmm, I think patch 8+9 need to be squashed then. I can double check this
>>> next week though.
>>
>> Also looks like with this set merged HDMI stops working on
>> omap4 with:
>>
>> HDMIWP: omapdss HDMIWP error: Failed to set PHY power mode to 1
>
> Forgot to mention that's with omapdrm with encoder-tpd12s015 and
> encoder-tfp410 modules loaded to get HDMI working. Here's more verbose
> dmesg output in case that provides more clues:
>
> [   91.042877] omapdss HDMICORE error: operation stopped when reading edid
> [   91.078308] [drm] Enabling DMM ywrap scrolling
> [   91.099243] omapdss HDMIWP error: Failed to set PHY power mode to 1
> [   91.107879] omapdss HDMI error: failed to power on device
> [   91.107879] omapdrm omapdrm.0: Failed to enable display 'hdmi': -5
> [   91.359619] omapdrm omapdrm.0: atomic complete timeout (pipe 0)!
> [   91.619964] omapdrm omapdrm.0: atomic complete timeout (pipe 0)!
> [   91.620300] Console: switching to colour frame buffer device 128x48
> [   91.682434] omapdrm omapdrm.0: fb0: omapdrm frame buffer device
> [   91.770812] [drm] Initialized omapdrm 1.0.0 20110917 for omapdrm.0 on minor 0
> [   92.818054] omapdss HDMICORE error: operation stopped when reading edid
> [   93.090087] omapdrm omapdrm.0: atomic complete timeout (pipe 0)!
> [   93.349853] omapdrm omapdrm.0: atomic complete timeout (pipe 0)!
>
> Regards,
>
> Tony
>

Can you try with this additional hwmod data tweak in place? Apply this 
on top of the existing series.

Comments

Tony Lindgren March 30, 2017, 4:54 p.m. UTC | #1
* Tero Kristo <t-kristo@ti.com> [170330 00:20]:
> On 23/03/17 19:02, Tony Lindgren wrote:
> > * Tony Lindgren <tony@atomide.com> [170322 18:03]:
> > > * Tero Kristo <t-kristo@ti.com> [170317 14:39]:
> > > > On 17/03/17 17:25, Tony Lindgren wrote:
> > > > > * Tero Kristo <t-kristo@ti.com> [170317 02:12]:
> > > > > > Any additional testing on omap4 welcome as this series basically
> > > > > > tweaks every possible peripheral clock on the SoC.
> > > > > 
> > > > > Without the last patch in this series, booting fails for me:
> > > > > 
> > > > > [    5.074890] l4_per_cm:clk:0120:0: failed to disable
> > > > > [    5.085113] l4_per_cm:clk:0128:0: failed to disable
> > > > > 
> > > > > Care to check that booting keeps working for each patch in the
> > > > > series to avoid breaking git bisect for booting?
> > > > 
> > > > Hmm, I think patch 8+9 need to be squashed then. I can double check this
> > > > next week though.
> > > 
> > > Also looks like with this set merged HDMI stops working on
> > > omap4 with:
> > > 
> > > HDMIWP: omapdss HDMIWP error: Failed to set PHY power mode to 1
> > 
> > Forgot to mention that's with omapdrm with encoder-tpd12s015 and
> > encoder-tfp410 modules loaded to get HDMI working. Here's more verbose
> > dmesg output in case that provides more clues:
> > 
> > [   91.042877] omapdss HDMICORE error: operation stopped when reading edid
> > [   91.078308] [drm] Enabling DMM ywrap scrolling
> > [   91.099243] omapdss HDMIWP error: Failed to set PHY power mode to 1
> > [   91.107879] omapdss HDMI error: failed to power on device
> > [   91.107879] omapdrm omapdrm.0: Failed to enable display 'hdmi': -5
> > [   91.359619] omapdrm omapdrm.0: atomic complete timeout (pipe 0)!
> > [   91.619964] omapdrm omapdrm.0: atomic complete timeout (pipe 0)!
> > [   91.620300] Console: switching to colour frame buffer device 128x48
> > [   91.682434] omapdrm omapdrm.0: fb0: omapdrm frame buffer device
> > [   91.770812] [drm] Initialized omapdrm 1.0.0 20110917 for omapdrm.0 on minor 0
> > [   92.818054] omapdss HDMICORE error: operation stopped when reading edid
> > [   93.090087] omapdrm omapdrm.0: atomic complete timeout (pipe 0)!
> > [   93.349853] omapdrm omapdrm.0: atomic complete timeout (pipe 0)!
> > 
> > Regards,
> > 
> > Tony
> > 
> 
> Can you try with this additional hwmod data tweak in place? Apply this on
> top of the existing series.

Does not seem to help, still get the same errors. But maybe I'm doing
something wrong as the patch did not apply and I applied it manually.

Regards,

Tony
Tero Kristo April 3, 2017, 2:51 p.m. UTC | #2
On 30/03/17 19:54, Tony Lindgren wrote:
> * Tero Kristo <t-kristo@ti.com> [170330 00:20]:
>> On 23/03/17 19:02, Tony Lindgren wrote:
>>> * Tony Lindgren <tony@atomide.com> [170322 18:03]:
>>>> * Tero Kristo <t-kristo@ti.com> [170317 14:39]:
>>>>> On 17/03/17 17:25, Tony Lindgren wrote:
>>>>>> * Tero Kristo <t-kristo@ti.com> [170317 02:12]:
>>>>>>> Any additional testing on omap4 welcome as this series basically
>>>>>>> tweaks every possible peripheral clock on the SoC.
>>>>>>
>>>>>> Without the last patch in this series, booting fails for me:
>>>>>>
>>>>>> [    5.074890] l4_per_cm:clk:0120:0: failed to disable
>>>>>> [    5.085113] l4_per_cm:clk:0128:0: failed to disable
>>>>>>
>>>>>> Care to check that booting keeps working for each patch in the
>>>>>> series to avoid breaking git bisect for booting?
>>>>>
>>>>> Hmm, I think patch 8+9 need to be squashed then. I can double check this
>>>>> next week though.
>>>>
>>>> Also looks like with this set merged HDMI stops working on
>>>> omap4 with:
>>>>
>>>> HDMIWP: omapdss HDMIWP error: Failed to set PHY power mode to 1
>>>
>>> Forgot to mention that's with omapdrm with encoder-tpd12s015 and
>>> encoder-tfp410 modules loaded to get HDMI working. Here's more verbose
>>> dmesg output in case that provides more clues:
>>>
>>> [   91.042877] omapdss HDMICORE error: operation stopped when reading edid
>>> [   91.078308] [drm] Enabling DMM ywrap scrolling
>>> [   91.099243] omapdss HDMIWP error: Failed to set PHY power mode to 1
>>> [   91.107879] omapdss HDMI error: failed to power on device
>>> [   91.107879] omapdrm omapdrm.0: Failed to enable display 'hdmi': -5
>>> [   91.359619] omapdrm omapdrm.0: atomic complete timeout (pipe 0)!
>>> [   91.619964] omapdrm omapdrm.0: atomic complete timeout (pipe 0)!
>>> [   91.620300] Console: switching to colour frame buffer device 128x48
>>> [   91.682434] omapdrm omapdrm.0: fb0: omapdrm frame buffer device
>>> [   91.770812] [drm] Initialized omapdrm 1.0.0 20110917 for omapdrm.0 on minor 0
>>> [   92.818054] omapdss HDMICORE error: operation stopped when reading edid
>>> [   93.090087] omapdrm omapdrm.0: atomic complete timeout (pipe 0)!
>>> [   93.349853] omapdrm omapdrm.0: atomic complete timeout (pipe 0)!
>>>
>>> Regards,
>>>
>>> Tony
>>>
>>
>> Can you try with this additional hwmod data tweak in place? Apply this on
>> top of the existing series.
>
> Does not seem to help, still get the same errors. But maybe I'm doing
> something wrong as the patch did not apply and I applied it manually.
>
> Regards,
>
> Tony
>

Hmm ok, can you provide some brief instructions how to test what you are 
doing with the HDMI? Just connect it to some external monitor? My 
monitor has a spare HDMI connector so I could try it out.

-Tero
Tony Lindgren April 3, 2017, 3:36 p.m. UTC | #3
* Tero Kristo <t-kristo@ti.com> [170403 07:54]:
> On 30/03/17 19:54, Tony Lindgren wrote:
> > * Tero Kristo <t-kristo@ti.com> [170330 00:20]:
> > > On 23/03/17 19:02, Tony Lindgren wrote:
> > > > * Tony Lindgren <tony@atomide.com> [170322 18:03]:
> > > > > * Tero Kristo <t-kristo@ti.com> [170317 14:39]:
> > > > > > On 17/03/17 17:25, Tony Lindgren wrote:
> > > > > > > * Tero Kristo <t-kristo@ti.com> [170317 02:12]:
> > > > > > > > Any additional testing on omap4 welcome as this series basically
> > > > > > > > tweaks every possible peripheral clock on the SoC.
> > > > > > > 
> > > > > > > Without the last patch in this series, booting fails for me:
> > > > > > > 
> > > > > > > [    5.074890] l4_per_cm:clk:0120:0: failed to disable
> > > > > > > [    5.085113] l4_per_cm:clk:0128:0: failed to disable
> > > > > > > 
> > > > > > > Care to check that booting keeps working for each patch in the
> > > > > > > series to avoid breaking git bisect for booting?
> > > > > > 
> > > > > > Hmm, I think patch 8+9 need to be squashed then. I can double check this
> > > > > > next week though.
> > > > > 
> > > > > Also looks like with this set merged HDMI stops working on
> > > > > omap4 with:
> > > > > 
> > > > > HDMIWP: omapdss HDMIWP error: Failed to set PHY power mode to 1
> > > > 
> > > > Forgot to mention that's with omapdrm with encoder-tpd12s015 and
> > > > encoder-tfp410 modules loaded to get HDMI working. Here's more verbose
> > > > dmesg output in case that provides more clues:
> > > > 
> > > > [   91.042877] omapdss HDMICORE error: operation stopped when reading edid
> > > > [   91.078308] [drm] Enabling DMM ywrap scrolling
> > > > [   91.099243] omapdss HDMIWP error: Failed to set PHY power mode to 1
> > > > [   91.107879] omapdss HDMI error: failed to power on device
> > > > [   91.107879] omapdrm omapdrm.0: Failed to enable display 'hdmi': -5
> > > > [   91.359619] omapdrm omapdrm.0: atomic complete timeout (pipe 0)!
> > > > [   91.619964] omapdrm omapdrm.0: atomic complete timeout (pipe 0)!
> > > > [   91.620300] Console: switching to colour frame buffer device 128x48
> > > > [   91.682434] omapdrm omapdrm.0: fb0: omapdrm frame buffer device
> > > > [   91.770812] [drm] Initialized omapdrm 1.0.0 20110917 for omapdrm.0 on minor 0
> > > > [   92.818054] omapdss HDMICORE error: operation stopped when reading edid
> > > > [   93.090087] omapdrm omapdrm.0: atomic complete timeout (pipe 0)!
> > > > [   93.349853] omapdrm omapdrm.0: atomic complete timeout (pipe 0)!
> > > > 
> > > > Regards,
> > > > 
> > > > Tony
> > > > 
> > > 
> > > Can you try with this additional hwmod data tweak in place? Apply this on
> > > top of the existing series.
> > 
> > Does not seem to help, still get the same errors. But maybe I'm doing
> > something wrong as the patch did not apply and I applied it manually.
> > 
> > Regards,
> > 
> > Tony
> > 
> 
> Hmm ok, can you provide some brief instructions how to test what you are
> doing with the HDMI? Just connect it to some external monitor? My monitor
> has a spare HDMI connector so I could try it out.

Well build a kernel using omap2plus_defconfig, then with HDMI cable
connected load the following modules:

encoder-tpd12s015 encoder-tfp410 connector-hdmi omapfb

And a console should appear on the HDMI monitor. If using omapdrm, then
load omapdss and omapdrm instead.

And if using NFSroot, you need to have ehci and smsc drivers built-in
or use an initramfs.

Regards,

Tony
Tero Kristo April 5, 2017, 4:59 p.m. UTC | #4
On 03/04/17 18:36, Tony Lindgren wrote:
> * Tero Kristo <t-kristo@ti.com> [170403 07:54]:
>> On 30/03/17 19:54, Tony Lindgren wrote:
>>> * Tero Kristo <t-kristo@ti.com> [170330 00:20]:
>>>> On 23/03/17 19:02, Tony Lindgren wrote:
>>>>> * Tony Lindgren <tony@atomide.com> [170322 18:03]:
>>>>>> * Tero Kristo <t-kristo@ti.com> [170317 14:39]:
>>>>>>> On 17/03/17 17:25, Tony Lindgren wrote:
>>>>>>>> * Tero Kristo <t-kristo@ti.com> [170317 02:12]:
>>>>>>>>> Any additional testing on omap4 welcome as this series basically
>>>>>>>>> tweaks every possible peripheral clock on the SoC.
>>>>>>>>
>>>>>>>> Without the last patch in this series, booting fails for me:
>>>>>>>>
>>>>>>>> [    5.074890] l4_per_cm:clk:0120:0: failed to disable
>>>>>>>> [    5.085113] l4_per_cm:clk:0128:0: failed to disable
>>>>>>>>
>>>>>>>> Care to check that booting keeps working for each patch in the
>>>>>>>> series to avoid breaking git bisect for booting?
>>>>>>>
>>>>>>> Hmm, I think patch 8+9 need to be squashed then. I can double check this
>>>>>>> next week though.
>>>>>>
>>>>>> Also looks like with this set merged HDMI stops working on
>>>>>> omap4 with:
>>>>>>
>>>>>> HDMIWP: omapdss HDMIWP error: Failed to set PHY power mode to 1
>>>>>
>>>>> Forgot to mention that's with omapdrm with encoder-tpd12s015 and
>>>>> encoder-tfp410 modules loaded to get HDMI working. Here's more verbose
>>>>> dmesg output in case that provides more clues:
>>>>>
>>>>> [   91.042877] omapdss HDMICORE error: operation stopped when reading edid
>>>>> [   91.078308] [drm] Enabling DMM ywrap scrolling
>>>>> [   91.099243] omapdss HDMIWP error: Failed to set PHY power mode to 1
>>>>> [   91.107879] omapdss HDMI error: failed to power on device
>>>>> [   91.107879] omapdrm omapdrm.0: Failed to enable display 'hdmi': -5
>>>>> [   91.359619] omapdrm omapdrm.0: atomic complete timeout (pipe 0)!
>>>>> [   91.619964] omapdrm omapdrm.0: atomic complete timeout (pipe 0)!
>>>>> [   91.620300] Console: switching to colour frame buffer device 128x48
>>>>> [   91.682434] omapdrm omapdrm.0: fb0: omapdrm frame buffer device
>>>>> [   91.770812] [drm] Initialized omapdrm 1.0.0 20110917 for omapdrm.0 on minor 0
>>>>> [   92.818054] omapdss HDMICORE error: operation stopped when reading edid
>>>>> [   93.090087] omapdrm omapdrm.0: atomic complete timeout (pipe 0)!
>>>>> [   93.349853] omapdrm omapdrm.0: atomic complete timeout (pipe 0)!
>>>>>
>>>>> Regards,
>>>>>
>>>>> Tony
>>>>>
>>>>
>>>> Can you try with this additional hwmod data tweak in place? Apply this on
>>>> top of the existing series.
>>>
>>> Does not seem to help, still get the same errors. But maybe I'm doing
>>> something wrong as the patch did not apply and I applied it manually.
>>>
>>> Regards,
>>>
>>> Tony
>>>
>>
>> Hmm ok, can you provide some brief instructions how to test what you are
>> doing with the HDMI? Just connect it to some external monitor? My monitor
>> has a spare HDMI connector so I could try it out.
>
> Well build a kernel using omap2plus_defconfig, then with HDMI cable
> connected load the following modules:
>
> encoder-tpd12s015 encoder-tfp410 connector-hdmi omapfb
>
> And a console should appear on the HDMI monitor. If using omapdrm, then
> load omapdss and omapdrm instead.
>
> And if using NFSroot, you need to have ehci and smsc drivers built-in
> or use an initramfs.

Ok I am able to reproduce the issue. Seems something weird with the hdmi 
hwmod itself, if I revert it back to its original form (just the hdmi 
one) then it works fine. Haven't figured out yet what is the actual 
problem but seems something timing related, as it also starts magically 
working with the clkctrl clock driver setup if I add enough traces to 
some critical points.

-Tero
diff mbox

Patch

===========


 From 8ba1829078ea9a7417a34564fde8a30c9bdeb273 Mon Sep 17 00:00:00 2001
From: Tero Kristo <t-kristo@ti.com>
Date: Thu, 30 Mar 2017 10:09:59 +0300
Subject: [PATCH] ARM: OMAP4: hwmod_data: add opt clks for dss_hdmi and
  dss_venc

These extra optional clocks are required as main clock for these modules
are going to be routed to the main module clock. Otherwise, the hdmi / tv
clocks are not going to be enabled during usage, leading to failure.

Signed-off-by: Tero Kristo <t-kristo@ti.com>
---
  arch/arm/mach-omap2/omap_hwmod_44xx_data.c | 7 +++++++
  1 file changed, 7 insertions(+)

diff --git a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c 
b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
index dad871a..2a9d092 100644
--- a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
@@ -775,6 +775,7 @@ 

  static struct omap_hwmod_opt_clk dss_hdmi_opt_clks[] = {
  	{ .role = "sys_clk", .clk = "dss_sys_clk" },
+	{ .role = "hdmi_clk", .clk = "dss_48mhz_clk" },
  };

  static struct omap_hwmod omap44xx_dss_hdmi_hwmod = {
@@ -858,6 +859,10 @@ 
  };

  /* dss_venc */
+static struct omap_hwmod_opt_clk dss_venc_opt_clks[] = {
+	{ .role = "tv_clk", .clk = "dss_tv_clk" },
+};
+
  static struct omap_hwmod omap44xx_dss_venc_hwmod = {
  	.name		= "dss_venc",
  	.class		= &omap44xx_venc_hwmod_class,
@@ -870,6 +875,8 @@ 
  		},
  	},
  	.parent_hwmod	= &omap44xx_dss_hwmod,
+	.opt_clks	= dss_venc_opt_clks,
+	.opt_clks_cnt	= ARRAY_SIZE(dss_venc_opt_clks),
  };

  /*