All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
To: Sjoerd Simons <sjoerd.simons@collabora.co.uk>,
	Simon Horman <horms@verge.net.au>,
	Phil Edworthy <phil.edworthy@renesas.com>
Cc: linux-renesas-soc@vger.kernel.org, devicetree@vger.kernel.org,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH] ARM: dts: r8a7791: Don't disable referenced optional clocks
Date: Thu, 7 Apr 2016 22:14:25 +0300	[thread overview]
Message-ID: <5706B191.3060903@cogentembedded.com> (raw)
In-Reply-To: <1460012450.13819.38.camel@collabora.co.uk>

Hello.

On 04/07/2016 10:00 AM, Sjoerd Simons wrote:

> Hey Sergei,
>
> Thanks for your review.

    You're welcome. :-)

> On Thu, 2016-04-07 at 02:15 +0300, Sergei Shtylyov wrote:
>> On 04/06/2016 03:52 PM, Sjoerd Simons wrote:
>>
>>>
>>> clk_get on a disabled clock node will return EPROBE_DEFER, which
>>> can
>>> cause drivers to be deferred forever if such clocks are referenced
>>> in
>>> their clocks property.
>>>
>>> Update the various disabled external clock nodes to default to a
>>> frequency of 0, but don't disable them to prevent this.
>>>
>>> Signed-off-by: Sjoerd Simons <sjoerd.simons@collabora.co.uk>
>>>
>>> ---
>>>
>>>    arch/arm/boot/dts/r8a7791-koelsch.dts | 1 +
>>>    arch/arm/boot/dts/r8a7791-porter.dts  | 1 +
>>>    arch/arm/boot/dts/r8a7791.dtsi        | 5 +----
>>>    3 files changed, 3 insertions(+), 4 deletions(-)
>>>
>>> diff --git a/arch/arm/boot/dts/r8a7791-koelsch.dts
>>> b/arch/arm/boot/dts/r8a7791-koelsch.dts
>>> index 1adf877..da59c28 100644
>>> --- a/arch/arm/boot/dts/r8a7791-koelsch.dts
>>> +++ b/arch/arm/boot/dts/r8a7791-koelsch.dts
>>> @@ -660,6 +660,7 @@
>>>    };
>>>
>>>    &pcie_bus_clk {
>>> +	clock-frequency = <100000000>;

>>      Hmmm, looking at the Koelsch schematics, I don't see this clock.
>> :-/
>
> I don't have the schematics so i was simply keeping the current state.

    I understand. I was just surprised by what checking the code against the 
schematics revealed.

> I've added Phil Edworthy to the list as he was the one originally

    I should've CC'ed Phil myself...

> enable the bus clk for Koelsh according to git. Hopefully he can
> clarify :)

    Let's hope he'd reply...

>>>    	status = "okay";
>>>    };
>>>
>>> diff --git a/arch/arm/boot/dts/r8a7791-porter.dts
>>> b/arch/arm/boot/dts/r8a7791-porter.dts
>>> index 9554d13..19b257e 100644
>>> --- a/arch/arm/boot/dts/r8a7791-porter.dts
>>> +++ b/arch/arm/boot/dts/r8a7791-porter.dts
>>> @@ -413,6 +413,7 @@
>>>    };
>>>
>>>    &pcie_bus_clk {
>>> +	clock-frequency = <100000000>;
>>>    	status = "okay";
>>>    };
>>>
>>      Again, looking at the Porter schematics, I don't see this clock
>> either. :-/
>
> You were the one enabling this clock for Porter ;) I don't have PCIE

    Yes, of course. I don't remember the gory details already -- I might have 
blindly copied what was in the Koelsch's .dts.

> hardware to test with on my porter board, might be worth if you could
> disable this clock and see if PCI-E still fucntions as expected (maybe
> in practise it just happens to prefer the internal clock?) ?

    I know the PCIe driver does require this clock in order to function -- it 
would be the same eternal -EPROBE_DEFER condition you'd already described;
see drivers/pci/host/pcie-rcar.c yourself...

>>> diff --git a/arch/arm/boot/dts/r8a7791.dtsi
>>> b/arch/arm/boot/dts/r8a7791.dtsi
>>> index 8693888..676df63 100644
>>> --- a/arch/arm/boot/dts/r8a7791.dtsi
>>> +++ b/arch/arm/boot/dts/r8a7791.dtsi
>>> @@ -1104,8 +1104,7 @@
>>>    		pcie_bus_clk: pcie_bus {
>>>    			compatible = "fixed-clock";
>>>    			#clock-cells = <0>;
>>> -			clock-frequency = <100000000>;
>>> -			status = "disabled";
>>> +			clock-frequency = <0>;
>>      If the clock has a good default frequency, I don't think you need
>> to
>> remove it. Otherwise you missed USB_EXTAL which is 48 MHz (and can be
>> overridden).
>
> I did that as it was by default disabled, so if i do enable it but
> don't drop the default frequency to 0 board swithout that clock will
> suddenly have it added to their dtb.

    Zero frequency is hardly any better then the default...

> For the usb external clock I didn't touch it as it was already enabled
> by default with a proper frequency, so it wouldn't hit the issue i was
> trying to fix here. But i agree, both looking at other Renesas dtsis
> and how all other external clocks are done in this dtsi, this node is
> odd.

    It's not that odd given that the R-Car gen2 manual specifically says it 
should be 48 MHz.
    Looking into the manual again, the PCIe bus clock must be the onne 
presented on the CICREF[PN]1_SATA/PCIe input signals and it indeed should be 
100 MHz... So Phil was correct.

MBR, Sergei


WARNING: multiple messages have this Message-ID (diff)
From: sergei.shtylyov@cogentembedded.com (Sergei Shtylyov)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] ARM: dts: r8a7791: Don't disable referenced optional clocks
Date: Thu, 7 Apr 2016 22:14:25 +0300	[thread overview]
Message-ID: <5706B191.3060903@cogentembedded.com> (raw)
In-Reply-To: <1460012450.13819.38.camel@collabora.co.uk>

Hello.

On 04/07/2016 10:00 AM, Sjoerd Simons wrote:

> Hey Sergei,
>
> Thanks for your review.

    You're welcome. :-)

> On Thu, 2016-04-07 at 02:15 +0300, Sergei Shtylyov wrote:
>> On 04/06/2016 03:52 PM, Sjoerd Simons wrote:
>>
>>>
>>> clk_get on a disabled clock node will return EPROBE_DEFER, which
>>> can
>>> cause drivers to be deferred forever if such clocks are referenced
>>> in
>>> their clocks property.
>>>
>>> Update the various disabled external clock nodes to default to a
>>> frequency of 0, but don't disable them to prevent this.
>>>
>>> Signed-off-by: Sjoerd Simons <sjoerd.simons@collabora.co.uk>
>>>
>>> ---
>>>
>>>    arch/arm/boot/dts/r8a7791-koelsch.dts | 1 +
>>>    arch/arm/boot/dts/r8a7791-porter.dts  | 1 +
>>>    arch/arm/boot/dts/r8a7791.dtsi        | 5 +----
>>>    3 files changed, 3 insertions(+), 4 deletions(-)
>>>
>>> diff --git a/arch/arm/boot/dts/r8a7791-koelsch.dts
>>> b/arch/arm/boot/dts/r8a7791-koelsch.dts
>>> index 1adf877..da59c28 100644
>>> --- a/arch/arm/boot/dts/r8a7791-koelsch.dts
>>> +++ b/arch/arm/boot/dts/r8a7791-koelsch.dts
>>> @@ -660,6 +660,7 @@
>>>    };
>>>
>>>    &pcie_bus_clk {
>>> +	clock-frequency = <100000000>;

>>      Hmmm, looking at the Koelsch schematics, I don't see this clock.
>> :-/
>
> I don't have the schematics so i was simply keeping the current state.

    I understand. I was just surprised by what checking the code against the 
schematics revealed.

> I've added Phil Edworthy to the list as he was the one originally

    I should've CC'ed Phil myself...

> enable the bus clk for Koelsh according to git. Hopefully he can
> clarify :)

    Let's hope he'd reply...

>>>    	status = "okay";
>>>    };
>>>
>>> diff --git a/arch/arm/boot/dts/r8a7791-porter.dts
>>> b/arch/arm/boot/dts/r8a7791-porter.dts
>>> index 9554d13..19b257e 100644
>>> --- a/arch/arm/boot/dts/r8a7791-porter.dts
>>> +++ b/arch/arm/boot/dts/r8a7791-porter.dts
>>> @@ -413,6 +413,7 @@
>>>    };
>>>
>>>    &pcie_bus_clk {
>>> +	clock-frequency = <100000000>;
>>>    	status = "okay";
>>>    };
>>>
>>      Again, looking at the Porter schematics, I don't see this clock
>> either. :-/
>
> You were the one enabling this clock for Porter ;) I don't have PCIE

    Yes, of course. I don't remember the gory details already -- I might have 
blindly copied what was in the Koelsch's .dts.

> hardware to test with on my porter board, might be worth if you could
> disable this clock and see if PCI-E still fucntions as expected (maybe
> in practise it just happens to prefer the internal clock?) ?

    I know the PCIe driver does require this clock in order to function -- it 
would be the same eternal -EPROBE_DEFER condition you'd already described;
see drivers/pci/host/pcie-rcar.c yourself...

>>> diff --git a/arch/arm/boot/dts/r8a7791.dtsi
>>> b/arch/arm/boot/dts/r8a7791.dtsi
>>> index 8693888..676df63 100644
>>> --- a/arch/arm/boot/dts/r8a7791.dtsi
>>> +++ b/arch/arm/boot/dts/r8a7791.dtsi
>>> @@ -1104,8 +1104,7 @@
>>>    		pcie_bus_clk: pcie_bus {
>>>    			compatible = "fixed-clock";
>>>    			#clock-cells = <0>;
>>> -			clock-frequency = <100000000>;
>>> -			status = "disabled";
>>> +			clock-frequency = <0>;
>>      If the clock has a good default frequency, I don't think you need
>> to
>> remove it. Otherwise you missed USB_EXTAL which is 48 MHz (and can be
>> overridden).
>
> I did that as it was by default disabled, so if i do enable it but
> don't drop the default frequency to 0 board swithout that clock will
> suddenly have it added to their dtb.

    Zero frequency is hardly any better then the default...

> For the usb external clock I didn't touch it as it was already enabled
> by default with a proper frequency, so it wouldn't hit the issue i was
> trying to fix here. But i agree, both looking at other Renesas dtsis
> and how all other external clocks are done in this dtsi, this node is
> odd.

    It's not that odd given that the R-Car gen2 manual specifically says it 
should be 48 MHz.
    Looking into the manual again, the PCIe bus clock must be the onne 
presented on the CICREF[PN]1_SATA/PCIe input signals and it indeed should be 
100 MHz... So Phil was correct.

MBR, Sergei

  reply	other threads:[~2016-04-07 19:14 UTC|newest]

Thread overview: 68+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-04-05 12:47 [PATCH net-next v3 0/4] vxlan: implement Generic Protocol Extension (GPE) Jiri Benc
2016-04-05 12:47 ` [PATCH net-next v3 1/4] vxlan: move Ethernet initialization to a separate function Jiri Benc
2016-04-05 12:47 ` [PATCH net-next v3 2/4] vxlan: move fdb code to common location in vxlan_xmit Jiri Benc
2016-04-05 12:47 ` [PATCH net-next v3 3/4] ip_tunnel: implement __iptunnel_pull_header Jiri Benc
2016-04-05 12:47 ` [PATCH net-next v3 4/4] vxlan: implement GPE Jiri Benc
2016-04-06 12:52   ` [PATCH] ARM: dts: r8a7791: Don't disable referenced optional clocks Sjoerd Simons
2016-04-06 12:52     ` Sjoerd Simons
2016-04-06 13:09     ` Geert Uytterhoeven
2016-04-06 13:09       ` Geert Uytterhoeven
2016-04-06 13:09       ` Geert Uytterhoeven
2016-04-06 13:11     ` Geert Uytterhoeven
2016-04-06 13:11       ` Geert Uytterhoeven
2016-04-06 13:37       ` Sjoerd Simons
2016-04-06 13:37         ` Sjoerd Simons
2016-04-06 13:37         ` Sjoerd Simons
2016-04-07 23:21         ` Stephen Boyd
2016-04-07 23:21           ` Stephen Boyd
2016-04-08 10:50           ` Sjoerd Simons
2016-04-08 10:50             ` Sjoerd Simons
2016-04-08 10:50             ` Sjoerd Simons
2016-04-14  0:19             ` Stephen Boyd
2016-04-14  0:19               ` Stephen Boyd
2016-04-14  0:19               ` Stephen Boyd
2016-04-06 23:15     ` Sergei Shtylyov
2016-04-06 23:15       ` Sergei Shtylyov
2016-04-05 13:50       ` [PATCH net-next v3 4/4] vxlan: implement GPE, Re: [PATCH] ARM: dts: r8a7791: Don't disable referenced optional clocks, No serial since ARM: dts: r8a7791: Add BRG support for (H)SCIF, [PATCH net v2 1/3] gre: do not assign header_ops in collect metadata mode, [PATCH iproute2 0/2] ip link gre: fix external mode handling, [PATCH 3/7] soc: renesas: Add r8a7790 SYSC PM Domain Binding Definitions Tom Herbert, Sergei Shtylyov, Sjoerd Simons, Jiri Benc, Jiri Benc, Simon Horman
2016-04-07  7:00       ` [PATCH] ARM: dts: r8a7791: Don't disable referenced optional clocks Sjoerd Simons
2016-04-07  7:00         ` Sjoerd Simons
2016-04-07  7:00         ` Sjoerd Simons
2016-04-07 19:14         ` Sergei Shtylyov [this message]
2016-04-07 19:14           ` Sergei Shtylyov
2016-04-08 14:20           ` Phil Edworthy
2016-04-08 14:20             ` Phil Edworthy
2016-04-08 14:20             ` Phil Edworthy
2016-04-19  7:18     ` Geert Uytterhoeven
2016-04-19  7:18       ` Geert Uytterhoeven
2016-04-19  7:18       ` Geert Uytterhoeven
2016-04-19 22:51       ` Simon Horman
2016-04-19 22:51         ` Simon Horman
2016-04-24 11:00     ` [PATCH net v2 0/3] gre: fix lwtunnel support Jiri Benc
2016-04-21  3:44       ` [GIT PULL] Renesas ARM Based SoC R-Car SYSC Updates for v4.7 Simon Horman
2016-04-21  3:44         ` [PATCH 1/7] PM / Domains: Add DT bindings for the R-Car System Controller Simon Horman
2016-04-21  3:44           ` Simon Horman
2016-04-21  3:44         ` [PATCH 2/7] soc: renesas: Add r8a7779 SYSC PM Domain Binding Definitions Simon Horman
2016-04-21  3:44           ` Simon Horman
2016-04-21  3:44         ` [PATCH 3/7] soc: renesas: Add r8a7790 " Simon Horman
2016-04-05 13:50           ` [PATCH net-next v3 4/4] vxlan: implement GPE, Re: [PATCH] ARM: dts: r8a7791: Don't disable referenced optional clocks, No serial since ARM: dts: r8a7791: Add BRG support for (H)SCIF, [PATCH net v2 1/3] gre: do not assign header_ops in collect metadata mode, [PATCH iproute2 0/2] ip link gre: fix external mode handling, " Tom Herbert, Sergei Shtylyov, Sjoerd Simons, Jiri Benc, Jiri Benc, Simon Horman
2016-04-05 13:50             ` [PATCH net-next v3 4/4] vxlan: implement GPE Tom Herbert
2016-04-05 13:57             ` Jiri Benc
2016-04-21  3:44         ` [PATCH 4/7] soc: renesas: Add r8a7791 SYSC PM Domain Binding Definitions Simon Horman
2016-04-21  3:44           ` Simon Horman
2016-04-21  3:44         ` [PATCH 5/7] soc: renesas: Add r8a7793 " Simon Horman
2016-04-21  3:44           ` Simon Horman
2016-04-21  3:44         ` [PATCH 6/7] soc: renesas: Add r8a7794 " Simon Horman
2016-04-21  3:44         ` [PATCH 7/7] soc: renesas: Add r8a7795 " Simon Horman
2016-04-24 21:40         ` [GIT PULL] Renesas ARM Based SoC R-Car SYSC Updates for v4.7 Arnd Bergmann
2016-04-25  0:23           ` Simon Horman
2016-04-24 11:00       ` [PATCH net v2 1/3] gre: do not assign header_ops in collect metadata mode Jiri Benc
2016-04-24 13:45         ` Sergei Shtylyov
2016-04-26  8:39         ` Jiri Benc
2016-04-27 14:11         ` [PATCH iproute2 0/2] ip link gre: fix external mode handling Jiri Benc
2016-04-27 14:11           ` [PATCH iproute2 1/2] ip link gre: create interfaces in external mode correctly Jiri Benc
2016-04-27 14:11           ` [PATCH iproute2 2/2] ip link gre: print only relevant info in external mode Jiri Benc
2016-05-06 18:50           ` [PATCH iproute2 0/2] ip link gre: fix external mode handling Stephen Hemminger
2016-04-24 11:00       ` [PATCH net v2 2/3] gre: build header correctly for collect metadata tunnels Jiri Benc
2016-04-24 11:00       ` [PATCH net v2 3/3] gre: allow creation of gretap interfaces in metadata mode Jiri Benc
2016-04-25 18:00         ` pravin shelar
2016-04-26  8:47           ` Jiri Benc
2016-04-06 20:50 ` [PATCH net-next v3 0/4] vxlan: implement Generic Protocol Extension (GPE) David Miller

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5706B191.3060903@cogentembedded.com \
    --to=sergei.shtylyov@cogentembedded.com \
    --cc=devicetree@vger.kernel.org \
    --cc=geert@linux-m68k.org \
    --cc=horms@verge.net.au \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-renesas-soc@vger.kernel.org \
    --cc=phil.edworthy@renesas.com \
    --cc=sjoerd.simons@collabora.co.uk \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.