All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stephen Boyd <sboyd@codeaurora.org>
To: Santosh Shilimkar <santosh.shilimkar@ti.com>
Cc: Russell King - ARM Linux <linux@arm.linux.org.uk>,
	linux-arm-kernel@lists.infradead.org, linux-omap@vger.kernel.org
Subject: Re: [FAILURE] omap4430-sdp allnoconfig
Date: Thu, 01 Aug 2013 11:37:49 -0700	[thread overview]
Message-ID: <51FAAAFD.6000706@codeaurora.org> (raw)
In-Reply-To: <51FAAA31.6020903@codeaurora.org>

On 08/01/13 11:34, Stephen Boyd wrote:
> On 08/01/13 11:31, Santosh Shilimkar wrote:
>> On Thursday 01 August 2013 02:27 PM, Russell King - ARM Linux wrote:
>>> On Thu, Aug 01, 2013 at 02:11:18PM -0400, Santosh Shilimkar wrote:
>>>> On Thursday 01 August 2013 01:52 PM, Russell King - ARM Linux wrote:
>>>>> My allnoconfig fails with this error:
>>>>>
>>>>> arch/arm/mach-omap2/built-in.o: In function `omap4_local_timer_init':
>>>>> dss-common.c:(.init.text+0x1d90): undefined reference to `twd_local_timer_register'
>>>>>
>>>>> Might be worth looking into whatever's missing?
>>>> Looks like coming from below snippet but am just wondering how ?
>>> Well, looking at the config allnoconfig generated, it doesn't have SMP
>>> and therefore it doesn't have local timers.
>>>
>>> The build tree has this in it:
>>>
>>> #ifdef CONFIG_ARCH_OMAP4
>>> static DEFINE_TWD_LOCAL_TIMER(twd_local_timer, OMAP44XX_LOCAL_TWD_BASE, 29);
>>> void __init omap4_local_timer_init(void)
>>> {
>>>         omap4_sync32k_timer_init();
>>>         /* Local timers are not supprted on OMAP4430 ES1.0 */
>>>         if (omap_rev() != OMAP4430_REV_ES1_0) {
>>>                 int err;
>>>
>>>                 if (of_have_populated_dt()) {
>>>                         clocksource_of_init();
>>>                         return;
>>>                 }
>>>
>>>                 err = twd_local_timer_register(&twd_local_timer);
>>>                 if (err)
>>>                         pr_err("twd_local_timer_register failed %d\n", err);
>>>         }
>>> }
>>> #endif /* CONFIG_ARCH_OMAP4 */
>>>
>> Now it make sense.
>>
>>> which is changed from your version thanks to this commit:
>>>
>>> commit ef3160cd2f0a400751f2cf6fd2811225fee1d5a7
>>> Author: Stephen Boyd <sboyd@codeaurora.org>
>>> Date:   Mon Mar 4 19:24:35 2013 -0800
>>>
>>>     ARM: OMAP2+: Divorce from local timer API
>>>     
>>>     Now that the TWD doesn't rely on the local timer API, OMAP can
>>>     stop selecting it in Kconfig and relying on the config option to
>>>     decide if it should call smp_twd functions.
>>>     
>>>     Acked-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
>>>     Acked-by: Tony Lindgren <tony@atomide.com>
>>>     Acked-by: Marc Zyngier <marc.zyngier@arm.com>
>>>     Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
>>>
>>> So it seems LOCAL_TIMER is still actually required...
>>>
>> yep. Lets see what Stephen has to say.
> Hmm.. Looks like you can either wrap this up in a CONFIG_HAVE_ARM_TWD
> check or just compile in TWD all the time on omap4. The latter is
> simpler but not a direct conversion.

Here's the other version (probably whitespace damaged):

---8<----

diff --git a/arch/arm/mach-omap2/timer.c b/arch/arm/mach-omap2/timer.c
index 3b7caba..00dc53e 100644
--- a/arch/arm/mach-omap2/timer.c
+++ b/arch/arm/mach-omap2/timer.c
@@ -600,6 +600,7 @@ static OMAP_SYS_32K_TIMER_INIT(4, 1, "timer_32k_ck", "ti,timer-alwon",
 #endif
 
 #ifdef CONFIG_ARCH_OMAP4
+#ifdef CONFIG_HAVE_ARM_TWD
 static DEFINE_TWD_LOCAL_TIMER(twd_local_timer, OMAP44XX_LOCAL_TWD_BASE, 29);
 void __init omap4_local_timer_init(void)
 {
@@ -618,6 +619,12 @@ void __init omap4_local_timer_init(void)
                        pr_err("twd_local_timer_register failed %d\n", err);
        }
 }
+#else
+void __init omap4_local_timer_init(void)
+{
+       omap4_sync32k_timer_init();
+}
+#endif /* CONFIG_HAVE_ARM_TWD */
 #endif /* CONFIG_ARCH_OMAP4 */
 
 #ifdef CONFIG_SOC_OMAP5

>
> ---8<----
>
> diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig
> index 4e0049a..c9e9b2c 100644
> --- a/arch/arm/mach-omap2/Kconfig
> +++ b/arch/arm/mach-omap2/Kconfig
> @@ -90,7 +90,7 @@ config ARCH_OMAP4
>         select CACHE_L2X0
>         select CPU_V7
>         select HAVE_ARM_SCU if SMP
> -       select HAVE_ARM_TWD if SMP
> +       select HAVE_ARM_TWD
>         select HAVE_SMP
>         select OMAP_INTERCONNECT
>         select PL310_ERRATA_588369
>


-- 
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
hosted by The Linux Foundation


WARNING: multiple messages have this Message-ID (diff)
From: sboyd@codeaurora.org (Stephen Boyd)
To: linux-arm-kernel@lists.infradead.org
Subject: [FAILURE] omap4430-sdp allnoconfig
Date: Thu, 01 Aug 2013 11:37:49 -0700	[thread overview]
Message-ID: <51FAAAFD.6000706@codeaurora.org> (raw)
In-Reply-To: <51FAAA31.6020903@codeaurora.org>

On 08/01/13 11:34, Stephen Boyd wrote:
> On 08/01/13 11:31, Santosh Shilimkar wrote:
>> On Thursday 01 August 2013 02:27 PM, Russell King - ARM Linux wrote:
>>> On Thu, Aug 01, 2013 at 02:11:18PM -0400, Santosh Shilimkar wrote:
>>>> On Thursday 01 August 2013 01:52 PM, Russell King - ARM Linux wrote:
>>>>> My allnoconfig fails with this error:
>>>>>
>>>>> arch/arm/mach-omap2/built-in.o: In function `omap4_local_timer_init':
>>>>> dss-common.c:(.init.text+0x1d90): undefined reference to `twd_local_timer_register'
>>>>>
>>>>> Might be worth looking into whatever's missing?
>>>> Looks like coming from below snippet but am just wondering how ?
>>> Well, looking at the config allnoconfig generated, it doesn't have SMP
>>> and therefore it doesn't have local timers.
>>>
>>> The build tree has this in it:
>>>
>>> #ifdef CONFIG_ARCH_OMAP4
>>> static DEFINE_TWD_LOCAL_TIMER(twd_local_timer, OMAP44XX_LOCAL_TWD_BASE, 29);
>>> void __init omap4_local_timer_init(void)
>>> {
>>>         omap4_sync32k_timer_init();
>>>         /* Local timers are not supprted on OMAP4430 ES1.0 */
>>>         if (omap_rev() != OMAP4430_REV_ES1_0) {
>>>                 int err;
>>>
>>>                 if (of_have_populated_dt()) {
>>>                         clocksource_of_init();
>>>                         return;
>>>                 }
>>>
>>>                 err = twd_local_timer_register(&twd_local_timer);
>>>                 if (err)
>>>                         pr_err("twd_local_timer_register failed %d\n", err);
>>>         }
>>> }
>>> #endif /* CONFIG_ARCH_OMAP4 */
>>>
>> Now it make sense.
>>
>>> which is changed from your version thanks to this commit:
>>>
>>> commit ef3160cd2f0a400751f2cf6fd2811225fee1d5a7
>>> Author: Stephen Boyd <sboyd@codeaurora.org>
>>> Date:   Mon Mar 4 19:24:35 2013 -0800
>>>
>>>     ARM: OMAP2+: Divorce from local timer API
>>>     
>>>     Now that the TWD doesn't rely on the local timer API, OMAP can
>>>     stop selecting it in Kconfig and relying on the config option to
>>>     decide if it should call smp_twd functions.
>>>     
>>>     Acked-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
>>>     Acked-by: Tony Lindgren <tony@atomide.com>
>>>     Acked-by: Marc Zyngier <marc.zyngier@arm.com>
>>>     Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
>>>
>>> So it seems LOCAL_TIMER is still actually required...
>>>
>> yep. Lets see what Stephen has to say.
> Hmm.. Looks like you can either wrap this up in a CONFIG_HAVE_ARM_TWD
> check or just compile in TWD all the time on omap4. The latter is
> simpler but not a direct conversion.

Here's the other version (probably whitespace damaged):

---8<----

diff --git a/arch/arm/mach-omap2/timer.c b/arch/arm/mach-omap2/timer.c
index 3b7caba..00dc53e 100644
--- a/arch/arm/mach-omap2/timer.c
+++ b/arch/arm/mach-omap2/timer.c
@@ -600,6 +600,7 @@ static OMAP_SYS_32K_TIMER_INIT(4, 1, "timer_32k_ck", "ti,timer-alwon",
 #endif
 
 #ifdef CONFIG_ARCH_OMAP4
+#ifdef CONFIG_HAVE_ARM_TWD
 static DEFINE_TWD_LOCAL_TIMER(twd_local_timer, OMAP44XX_LOCAL_TWD_BASE, 29);
 void __init omap4_local_timer_init(void)
 {
@@ -618,6 +619,12 @@ void __init omap4_local_timer_init(void)
                        pr_err("twd_local_timer_register failed %d\n", err);
        }
 }
+#else
+void __init omap4_local_timer_init(void)
+{
+       omap4_sync32k_timer_init();
+}
+#endif /* CONFIG_HAVE_ARM_TWD */
 #endif /* CONFIG_ARCH_OMAP4 */
 
 #ifdef CONFIG_SOC_OMAP5

>
> ---8<----
>
> diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig
> index 4e0049a..c9e9b2c 100644
> --- a/arch/arm/mach-omap2/Kconfig
> +++ b/arch/arm/mach-omap2/Kconfig
> @@ -90,7 +90,7 @@ config ARCH_OMAP4
>         select CACHE_L2X0
>         select CPU_V7
>         select HAVE_ARM_SCU if SMP
> -       select HAVE_ARM_TWD if SMP
> +       select HAVE_ARM_TWD
>         select HAVE_SMP
>         select OMAP_INTERCONNECT
>         select PL310_ERRATA_588369
>


-- 
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
hosted by The Linux Foundation

  reply	other threads:[~2013-08-01 18:37 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-08-01 17:52 [FAILURE] omap4430-sdp allnoconfig Russell King - ARM Linux
2013-08-01 17:52 ` Russell King - ARM Linux
2013-08-01 18:11 ` Santosh Shilimkar
2013-08-01 18:11   ` Santosh Shilimkar
2013-08-01 18:27   ` Russell King - ARM Linux
2013-08-01 18:27     ` Russell King - ARM Linux
2013-08-01 18:31     ` Santosh Shilimkar
2013-08-01 18:31       ` Santosh Shilimkar
2013-08-01 18:34       ` Stephen Boyd
2013-08-01 18:34         ` Stephen Boyd
2013-08-01 18:37         ` Stephen Boyd [this message]
2013-08-01 18:37           ` Stephen Boyd
2013-08-01 18:48           ` Santosh Shilimkar
2013-08-01 18:48             ` Santosh Shilimkar
2013-08-01 18:59             ` Stephen Boyd
2013-08-01 18:59               ` Stephen Boyd
2013-08-01 19:01               ` Santosh Shilimkar
2013-08-01 19:01                 ` Santosh Shilimkar
2013-08-01 19:02               ` Russell King - ARM Linux
2013-08-01 19:02                 ` Russell King - ARM Linux
2013-08-01 20:06               ` Olof Johansson
2013-08-01 20:06                 ` Olof Johansson
2013-08-02 20:44                 ` Stephen Boyd
2013-08-02 20:44                   ` Stephen Boyd
2013-08-02 20:50                   ` Olof Johansson
2013-08-02 20:50                     ` Olof Johansson
2013-08-02 20:56                     ` Stephen Boyd
2013-08-02 20:56                       ` Stephen Boyd
2013-08-02 20:59                       ` Olof Johansson
2013-08-02 20:59                         ` Olof Johansson

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=51FAAAFD.6000706@codeaurora.org \
    --to=sboyd@codeaurora.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=linux@arm.linux.org.uk \
    --cc=santosh.shilimkar@ti.com \
    /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.