* OMAP3 kernels fail to build
@ 2011-08-08 11:00 Russell King - ARM Linux
2011-08-08 11:09 ` Santosh
` (2 more replies)
0 siblings, 3 replies; 12+ messages in thread
From: Russell King - ARM Linux @ 2011-08-08 11:00 UTC (permalink / raw)
To: linux-arm-kernel
With CONFIG_ARCH_OMAP3=y and CONFIG_ARCH_OMAP4=n, I'm getting this:
arch/arm/mach-omap2/built-in.o:(.data+0xf99c): undefined reference to `omap4430_phy_init'
arch/arm/mach-omap2/built-in.o:(.data+0xf9a0): undefined reference to `omap4430_phy_exit'
arch/arm/mach-omap2/built-in.o:(.data+0xf9a4): undefined reference to `omap4430_phy_power'
arch/arm/mach-omap2/built-in.o:(.data+0xf9a8): undefined reference to `omap4430_phy_set_clk'
arch/arm/mach-omap2/built-in.o:(.data+0xf9ac): undefined reference to `omap4430_phy_suspend'
This is probably from twl-common.c, which doesn't really look very
common to me (looks like some is specific to OMAP3 and the rest is
OMAP4 specific.)
As this is always built for all OMAP2+, this will also break OMAP2 as
well. Why it's even built on OMAP2, I've no idea.
I think the OMAP3 specific bits should be separate from the OMAP4
specific bits, which should be separate from the small amount of
common stuff.
Please either fix ASAP, or revert the five changes for twl-common.c
^ permalink raw reply [flat|nested] 12+ messages in thread
* OMAP3 kernels fail to build
2011-08-08 11:00 OMAP3 kernels fail to build Russell King - ARM Linux
@ 2011-08-08 11:09 ` Santosh
2011-08-08 11:30 ` Russell King - ARM Linux
2011-08-09 11:17 ` Péter Ujfalusi
2011-08-09 12:36 ` [PATCH] OMAP: Fix linking error in twl-common.c for OMAP2/3/4 only builds Peter Ujfalusi
2 siblings, 1 reply; 12+ messages in thread
From: Santosh @ 2011-08-08 11:09 UTC (permalink / raw)
To: linux-arm-kernel
+ Felipe,
On Monday 08 August 2011 04:30 PM, Russell King - ARM Linux wrote:
> With CONFIG_ARCH_OMAP3=y and CONFIG_ARCH_OMAP4=n, I'm getting this:
>
> arch/arm/mach-omap2/built-in.o:(.data+0xf99c): undefined reference to `omap4430_phy_init'
> arch/arm/mach-omap2/built-in.o:(.data+0xf9a0): undefined reference to `omap4430_phy_exit'
> arch/arm/mach-omap2/built-in.o:(.data+0xf9a4): undefined reference to `omap4430_phy_power'
> arch/arm/mach-omap2/built-in.o:(.data+0xf9a8): undefined reference to `omap4430_phy_set_clk'
> arch/arm/mach-omap2/built-in.o:(.data+0xf9ac): undefined reference to `omap4430_phy_suspend'
>
I thought below patch was suppose to fix it.
https://patchwork.kernel.org/patch/963462/
Regards
Santosh
^ permalink raw reply [flat|nested] 12+ messages in thread
* OMAP3 kernels fail to build
2011-08-08 11:09 ` Santosh
@ 2011-08-08 11:30 ` Russell King - ARM Linux
2011-08-09 13:16 ` Tony Lindgren
2011-08-10 5:26 ` Paul Walmsley
0 siblings, 2 replies; 12+ messages in thread
From: Russell King - ARM Linux @ 2011-08-08 11:30 UTC (permalink / raw)
To: linux-arm-kernel
On Mon, Aug 08, 2011 at 04:39:32PM +0530, Santosh wrote:
> + Felipe,
>
> On Monday 08 August 2011 04:30 PM, Russell King - ARM Linux wrote:
>> With CONFIG_ARCH_OMAP3=y and CONFIG_ARCH_OMAP4=n, I'm getting this:
>>
>> arch/arm/mach-omap2/built-in.o:(.data+0xf99c): undefined reference to `omap4430_phy_init'
>> arch/arm/mach-omap2/built-in.o:(.data+0xf9a0): undefined reference to `omap4430_phy_exit'
>> arch/arm/mach-omap2/built-in.o:(.data+0xf9a4): undefined reference to `omap4430_phy_power'
>> arch/arm/mach-omap2/built-in.o:(.data+0xf9a8): undefined reference to `omap4430_phy_set_clk'
>> arch/arm/mach-omap2/built-in.o:(.data+0xf9ac): undefined reference to `omap4430_phy_suspend'
>>
> I thought below patch was suppose to fix it.
> https://patchwork.kernel.org/patch/963462/
So, the problem has been known about for around a month. Yet the broken
patch still went upstream.
vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
IF IT IS KNOWN THAT A PATCH IS BROKEN IT MUST NOT BE SUBMITTED TO MAINLINE
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
We've seen other instances of that during this merge window, and Linus
has responded thusly to these incidents:
http://lkml.org/lkml/2011/8/4/390
On Thu, Aug 4, 2011 at 2:52 PM, Stephen Rothwell <sfr@canb.auug.org.au> wrote:
>
> The last three commits in the idle tree that you took from Len were in
> linux-next until April 15 and then disappeared until yesterday. ?The last
> of these was broken back then and has been committed exactly the same now
> and still breaks arm and sh.
>
> I have reverted that commit from your tree for today ...
Len, this is *exactly* why I com plained about the git trees you pushed to me.
And then I pulled anyway, because you and others convinced me things
had been in -next despite the commit dates being odd.
Let's just say that I'm really *really* disappointed. And dammit, you
need to fix your workflow. Don't add random commits late. If you're
offline, you're offline, and you send the old tested tree, not some
last-minute crap.
Next time I find reason to complain, I just won't pull. In fact, I'm
seriously considering a rather draconian measure for next merge
window: I'll fetch the -next tree when I open the merge window, and if
I get anything but trivial fixes that don't show up in that "next tree
at the point of merge window open", I'll just ignore that pull
request. Because clearly people are just not being careful enough.
It's really *very* annoying to hear that a bug has been known about
for weeks (or months) and just not fixed, and then shows up again THE
SAME DAY that the pull request is sent to me.
Linus
^ permalink raw reply [flat|nested] 12+ messages in thread
* OMAP3 kernels fail to build
2011-08-08 11:00 OMAP3 kernels fail to build Russell King - ARM Linux
2011-08-08 11:09 ` Santosh
@ 2011-08-09 11:17 ` Péter Ujfalusi
2011-08-09 12:36 ` [PATCH] OMAP: Fix linking error in twl-common.c for OMAP2/3/4 only builds Peter Ujfalusi
2 siblings, 0 replies; 12+ messages in thread
From: Péter Ujfalusi @ 2011-08-09 11:17 UTC (permalink / raw)
To: linux-arm-kernel
Hi Russel,
On Monday 08 August 2011 13:00:56 Russell King - ARM Linux wrote:
> With CONFIG_ARCH_OMAP3=y and CONFIG_ARCH_OMAP4=n, I'm getting this:
>
> arch/arm/mach-omap2/built-in.o:(.data+0xf99c): undefined reference to
> `omap4430_phy_init' arch/arm/mach-omap2/built-in.o:(.data+0xf9a0):
> undefined reference to `omap4430_phy_exit'
> arch/arm/mach-omap2/built-in.o:(.data+0xf9a4): undefined reference to
> `omap4430_phy_power' arch/arm/mach-omap2/built-in.o:(.data+0xf9a8):
> undefined reference to `omap4430_phy_set_clk'
> arch/arm/mach-omap2/built-in.o:(.data+0xf9ac): undefined reference to
> `omap4430_phy_suspend'
>
> This is probably from twl-common.c, which doesn't really look very
> common to me (looks like some is specific to OMAP3 and the rest is
> OMAP4 specific.)
>
> As this is always built for all OMAP2+, this will also break OMAP2 as
> well. Why it's even built on OMAP2, I've no idea.
I'm sure if you have it other way around (OMAP4=y, OMAP3=n) will fail as well,
but differently...
> I think the OMAP3 specific bits should be separate from the OMAP4
> specific bits, which should be separate from the small amount of
> common stuff.
Is it acceptable if I use
#if defined(CONFIG_ARCH_OMAP3), and
#if defined(CONFIG_ARCH_OMAP4)
to protect the OMAP3 and OMAP4 related code in the twl-common.c?
--
P?ter
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH] OMAP: Fix linking error in twl-common.c for OMAP2/3/4 only builds
2011-08-08 11:00 OMAP3 kernels fail to build Russell King - ARM Linux
2011-08-08 11:09 ` Santosh
2011-08-09 11:17 ` Péter Ujfalusi
@ 2011-08-09 12:36 ` Peter Ujfalusi
2011-08-10 9:15 ` Tony Lindgren
2 siblings, 1 reply; 12+ messages in thread
From: Peter Ujfalusi @ 2011-08-09 12:36 UTC (permalink / raw)
To: linux-arm-kernel
Avoid compiling code for OMAP arch which is not selected by the
config.
Fixes issues like:
With CONFIG_ARCH_OMAP3=y and CONFIG_ARCH_OMAP4=n, I'm getting this:
arch/arm/mach-omap2/built-in.o:(.data+0xf99c): undefined reference to `omap4430_phy_init'
arch/arm/mach-omap2/built-in.o:(.data+0xf9a0): undefined reference to `omap4430_phy_exit'
arch/arm/mach-omap2/built-in.o:(.data+0xf9a4): undefined reference to `omap4430_phy_power'
arch/arm/mach-omap2/built-in.o:(.data+0xf9a8): undefined reference to `omap4430_phy_set_clk'
arch/arm/mach-omap2/built-in.o:(.data+0xf9ac): undefined reference to `omap4430_phy_suspend'
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Hi Russel, Tony,
This patch fixes the linking error caused by the twl-common.c file,
when the kernel is built for OMAP2/3/4 only.
Regards,
Peter
---
arch/arm/mach-omap2/twl-common.c | 78 ++++++++++++++++++++------------------
1 files changed, 41 insertions(+), 37 deletions(-)
diff --git a/arch/arm/mach-omap2/twl-common.c b/arch/arm/mach-omap2/twl-common.c
index 2543342..daa056e 100644
--- a/arch/arm/mach-omap2/twl-common.c
+++ b/arch/arm/mach-omap2/twl-common.c
@@ -48,14 +48,7 @@ void __init omap_pmic_init(int bus, u32 clkrate,
omap_register_i2c_bus(bus, clkrate, &pmic_i2c_board_info, 1);
}
-static struct twl4030_usb_data omap4_usb_pdata = {
- .phy_init = omap4430_phy_init,
- .phy_exit = omap4430_phy_exit,
- .phy_power = omap4430_phy_power,
- .phy_set_clock = omap4430_phy_set_clk,
- .phy_suspend = omap4430_phy_suspend,
-};
-
+#if defined(CONFIG_ARCH_OMAP3)
static struct twl4030_usb_data omap3_usb_pdata = {
.usb_mode = T2_USB_MODE_ULPI,
};
@@ -122,6 +115,45 @@ static struct regulator_init_data omap3_vpll2_idata = {
.consumer_supplies = omap3_vpll2_supplies,
};
+void __init omap3_pmic_get_config(struct twl4030_platform_data *pmic_data,
+ u32 pdata_flags, u32 regulators_flags)
+{
+ if (!pmic_data->irq_base)
+ pmic_data->irq_base = TWL4030_IRQ_BASE;
+ if (!pmic_data->irq_end)
+ pmic_data->irq_end = TWL4030_IRQ_END;
+
+ /* Common platform data configurations */
+ if (pdata_flags & TWL_COMMON_PDATA_USB && !pmic_data->usb)
+ pmic_data->usb = &omap3_usb_pdata;
+
+ if (pdata_flags & TWL_COMMON_PDATA_BCI && !pmic_data->bci)
+ pmic_data->bci = &omap3_bci_pdata;
+
+ if (pdata_flags & TWL_COMMON_PDATA_MADC && !pmic_data->madc)
+ pmic_data->madc = &omap3_madc_pdata;
+
+ if (pdata_flags & TWL_COMMON_PDATA_AUDIO && !pmic_data->audio)
+ pmic_data->audio = &omap3_audio_pdata;
+
+ /* Common regulator configurations */
+ if (regulators_flags & TWL_COMMON_REGULATOR_VDAC && !pmic_data->vdac)
+ pmic_data->vdac = &omap3_vdac_idata;
+
+ if (regulators_flags & TWL_COMMON_REGULATOR_VPLL2 && !pmic_data->vpll2)
+ pmic_data->vpll2 = &omap3_vpll2_idata;
+}
+#endif /* CONFIG_ARCH_OMAP3 */
+
+#if defined(CONFIG_ARCH_OMAP4)
+static struct twl4030_usb_data omap4_usb_pdata = {
+ .phy_init = omap4430_phy_init,
+ .phy_exit = omap4430_phy_exit,
+ .phy_power = omap4430_phy_power,
+ .phy_set_clock = omap4430_phy_set_clk,
+ .phy_suspend = omap4430_phy_suspend,
+};
+
static struct regulator_init_data omap4_vdac_idata = {
.constraints = {
.min_uV = 1800000,
@@ -273,32 +305,4 @@ void __init omap4_pmic_get_config(struct twl4030_platform_data *pmic_data,
!pmic_data->clk32kg)
pmic_data->clk32kg = &omap4_clk32kg_idata;
}
-
-void __init omap3_pmic_get_config(struct twl4030_platform_data *pmic_data,
- u32 pdata_flags, u32 regulators_flags)
-{
- if (!pmic_data->irq_base)
- pmic_data->irq_base = TWL4030_IRQ_BASE;
- if (!pmic_data->irq_end)
- pmic_data->irq_end = TWL4030_IRQ_END;
-
- /* Common platform data configurations */
- if (pdata_flags & TWL_COMMON_PDATA_USB && !pmic_data->usb)
- pmic_data->usb = &omap3_usb_pdata;
-
- if (pdata_flags & TWL_COMMON_PDATA_BCI && !pmic_data->bci)
- pmic_data->bci = &omap3_bci_pdata;
-
- if (pdata_flags & TWL_COMMON_PDATA_MADC && !pmic_data->madc)
- pmic_data->madc = &omap3_madc_pdata;
-
- if (pdata_flags & TWL_COMMON_PDATA_AUDIO && !pmic_data->audio)
- pmic_data->audio = &omap3_audio_pdata;
-
- /* Common regulator configurations */
- if (regulators_flags & TWL_COMMON_REGULATOR_VDAC && !pmic_data->vdac)
- pmic_data->vdac = &omap3_vdac_idata;
-
- if (regulators_flags & TWL_COMMON_REGULATOR_VPLL2 && !pmic_data->vpll2)
- pmic_data->vpll2 = &omap3_vpll2_idata;
-}
+#endif /* CONFIG_ARCH_OMAP4 */
--
1.7.6
^ permalink raw reply related [flat|nested] 12+ messages in thread
* OMAP3 kernels fail to build
2011-08-08 11:30 ` Russell King - ARM Linux
@ 2011-08-09 13:16 ` Tony Lindgren
2011-08-10 5:26 ` Paul Walmsley
1 sibling, 0 replies; 12+ messages in thread
From: Tony Lindgren @ 2011-08-09 13:16 UTC (permalink / raw)
To: linux-arm-kernel
* Russell King - ARM Linux <linux@arm.linux.org.uk> [110808 04:25]:
> On Mon, Aug 08, 2011 at 04:39:32PM +0530, Santosh wrote:
> > + Felipe,
> >
> > On Monday 08 August 2011 04:30 PM, Russell King - ARM Linux wrote:
> >> With CONFIG_ARCH_OMAP3=y and CONFIG_ARCH_OMAP4=n, I'm getting this:
> >>
> >> arch/arm/mach-omap2/built-in.o:(.data+0xf99c): undefined reference to `omap4430_phy_init'
> >> arch/arm/mach-omap2/built-in.o:(.data+0xf9a0): undefined reference to `omap4430_phy_exit'
> >> arch/arm/mach-omap2/built-in.o:(.data+0xf9a4): undefined reference to `omap4430_phy_power'
> >> arch/arm/mach-omap2/built-in.o:(.data+0xf9a8): undefined reference to `omap4430_phy_set_clk'
> >> arch/arm/mach-omap2/built-in.o:(.data+0xf9ac): undefined reference to `omap4430_phy_suspend'
> >>
> > I thought below patch was suppose to fix it.
> > https://patchwork.kernel.org/patch/963462/
>
> So, the problem has been known about for around a month. Yet the broken
> patch still went upstream.
>
> vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
> IF IT IS KNOWN THAT A PATCH IS BROKEN IT MUST NOT BE SUBMITTED TO MAINLINE
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>
> We've seen other instances of that during this merge window, and Linus
> has responded thusly to these incidents:
Sorry I guess I just went into vacation mode and stopped applying patches.
Regards,
Tony
^ permalink raw reply [flat|nested] 12+ messages in thread
* OMAP3 kernels fail to build
2011-08-08 11:30 ` Russell King - ARM Linux
2011-08-09 13:16 ` Tony Lindgren
@ 2011-08-10 5:26 ` Paul Walmsley
2011-08-10 7:27 ` Russell King - ARM Linux
1 sibling, 1 reply; 12+ messages in thread
From: Paul Walmsley @ 2011-08-10 5:26 UTC (permalink / raw)
To: linux-arm-kernel
On Mon, 8 Aug 2011, Russell King - ARM Linux wrote:
> On Mon, Aug 08, 2011 at 04:39:32PM +0530, Santosh wrote:
> > On Monday 08 August 2011 04:30 PM, Russell King - ARM Linux wrote:
> >> With CONFIG_ARCH_OMAP3=y and CONFIG_ARCH_OMAP4=n, I'm getting this:
> >>
> >> arch/arm/mach-omap2/built-in.o:(.data+0xf99c): undefined reference to `omap4430_phy_init'
> >> arch/arm/mach-omap2/built-in.o:(.data+0xf9a0): undefined reference to `omap4430_phy_exit'
> >> arch/arm/mach-omap2/built-in.o:(.data+0xf9a4): undefined reference to `omap4430_phy_power'
> >> arch/arm/mach-omap2/built-in.o:(.data+0xf9a8): undefined reference to `omap4430_phy_set_clk'
> >> arch/arm/mach-omap2/built-in.o:(.data+0xf9ac): undefined reference to `omap4430_phy_suspend'
> >>
> > I thought below patch was suppose to fix it.
> > https://patchwork.kernel.org/patch/963462/
>
> So, the problem has been known about for around a month. Yet the broken
> patch still went upstream.
Which known "broken patch still went upstream" ?
The problem commits were 208466dc10083e734a8af71d10f923ee4bff950c ("usb:
otg: OMAP4430: Powerdown the internal PHY when USB is disabled") and
fb91cde49c327ff957c55d91805bc6abda59b311 ("usb: musb: OMAP4430: Power down
the PHY during board init"). The above link makes this clear.
> vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
> IF IT IS KNOWN THAT A PATCH IS BROKEN IT MUST NOT BE SUBMITTED TO MAINLINE
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
This is certainly good advice when it's relevant.
- Paul
^ permalink raw reply [flat|nested] 12+ messages in thread
* OMAP3 kernels fail to build
2011-08-10 5:26 ` Paul Walmsley
@ 2011-08-10 7:27 ` Russell King - ARM Linux
2011-08-10 9:18 ` Tony Lindgren
0 siblings, 1 reply; 12+ messages in thread
From: Russell King - ARM Linux @ 2011-08-10 7:27 UTC (permalink / raw)
To: linux-arm-kernel
On Tue, Aug 09, 2011 at 11:26:16PM -0600, Paul Walmsley wrote:
> On Mon, 8 Aug 2011, Russell King - ARM Linux wrote:
>
> > On Mon, Aug 08, 2011 at 04:39:32PM +0530, Santosh wrote:
> > > On Monday 08 August 2011 04:30 PM, Russell King - ARM Linux wrote:
> > >> With CONFIG_ARCH_OMAP3=y and CONFIG_ARCH_OMAP4=n, I'm getting this:
> > >>
> > >> arch/arm/mach-omap2/built-in.o:(.data+0xf99c): undefined reference to `omap4430_phy_init'
> > >> arch/arm/mach-omap2/built-in.o:(.data+0xf9a0): undefined reference to `omap4430_phy_exit'
> > >> arch/arm/mach-omap2/built-in.o:(.data+0xf9a4): undefined reference to `omap4430_phy_power'
> > >> arch/arm/mach-omap2/built-in.o:(.data+0xf9a8): undefined reference to `omap4430_phy_set_clk'
> > >> arch/arm/mach-omap2/built-in.o:(.data+0xf9ac): undefined reference to `omap4430_phy_suspend'
> > >>
> > > I thought below patch was suppose to fix it.
> > > https://patchwork.kernel.org/patch/963462/
> >
> > So, the problem has been known about for around a month. Yet the broken
> > patch still went upstream.
>
> Which known "broken patch still went upstream" ?
>
> The problem commits were 208466dc10083e734a8af71d10f923ee4bff950c ("usb:
> otg: OMAP4430: Powerdown the internal PHY when USB is disabled") and
> fb91cde49c327ff957c55d91805bc6abda59b311 ("usb: musb: OMAP4430: Power down
> the PHY during board init"). The above link makes this clear.
The fact that there are _build_ _errors_ indicate that a patch which
introduced this crap _was_ _broken_. The fact that it was _reported_
as broken well before the merge window and still went in during the
merge window indicates that the OMAP workflow with regard to patches
is simply BROKEN.
And the fact that you can't recognise that makes _you_ part of the
problem.
There are no excuses for this.
And more - wtf those commit IDs you mention have to do with my build
error with twl-common.c I've no idea. The breakage was not introduced
by either of the commits you mention, but b22f954 (OMAP4: Move common
twl6030 configuration to twl-common).
So please, stop this disinformation right now and get more of a clue.
Thanks.
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH] OMAP: Fix linking error in twl-common.c for OMAP2/3/4 only builds
2011-08-09 12:36 ` [PATCH] OMAP: Fix linking error in twl-common.c for OMAP2/3/4 only builds Peter Ujfalusi
@ 2011-08-10 9:15 ` Tony Lindgren
2011-08-11 15:07 ` Michael Jones
0 siblings, 1 reply; 12+ messages in thread
From: Tony Lindgren @ 2011-08-10 9:15 UTC (permalink / raw)
To: linux-arm-kernel
* Peter Ujfalusi <peter.ujfalusi@ti.com> [110809 05:31]:
> Avoid compiling code for OMAP arch which is not selected by the
> config.
>
> Fixes issues like:
> With CONFIG_ARCH_OMAP3=y and CONFIG_ARCH_OMAP4=n, I'm getting this:
>
> arch/arm/mach-omap2/built-in.o:(.data+0xf99c): undefined reference to `omap4430_phy_init'
> arch/arm/mach-omap2/built-in.o:(.data+0xf9a0): undefined reference to `omap4430_phy_exit'
> arch/arm/mach-omap2/built-in.o:(.data+0xf9a4): undefined reference to `omap4430_phy_power'
> arch/arm/mach-omap2/built-in.o:(.data+0xf9a8): undefined reference to `omap4430_phy_set_clk'
> arch/arm/mach-omap2/built-in.o:(.data+0xf9ac): undefined reference to `omap4430_phy_suspend'
>
> Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
>
> Hi Russel, Tony,
>
> This patch fixes the linking error caused by the twl-common.c file,
> when the kernel is built for OMAP2/3/4 only.
Thanks, I'll queue this one as a fix with updated comments as below.
Regards,
Tony
From: Peter Ujfalusi <peter.ujfalusi@ti.com>
Date: Tue, 9 Aug 2011 15:36:50 +0300
Subject: [PATCH] OMAP: Fix linking error in twl-common.c for OMAP2/3/4 only builds
Commit b22f954 (OMAP4: Move common twl6030 configuration to twl-common)
caused compile failures for code for OMAP arch which is not selected by
the config.
Fixes issues like:
With CONFIG_ARCH_OMAP3=y and CONFIG_ARCH_OMAP4=n, I'm getting this:
arch/arm/mach-omap2/built-in.o:(.data+0xf99c): undefined reference to `omap4430_phy_init'
arch/arm/mach-omap2/built-in.o:(.data+0xf9a0): undefined reference to `omap4430_phy_exit'
arch/arm/mach-omap2/built-in.o:(.data+0xf9a4): undefined reference to `omap4430_phy_power'
arch/arm/mach-omap2/built-in.o:(.data+0xf9a8): undefined reference to `omap4430_phy_set_clk'
arch/arm/mach-omap2/built-in.o:(.data+0xf9ac): undefined reference to `omap4430_phy_suspend'
Fix the problem by moving the code to ifdef sections for omap3 and omap4.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
[tony at atomide.com: updated comments]
Signed-off-by: Tony Lindgren <tony@atomide.com>
diff --git a/arch/arm/mach-omap2/twl-common.c b/arch/arm/mach-omap2/twl-common.c
index 2543342..daa056e 100644
--- a/arch/arm/mach-omap2/twl-common.c
+++ b/arch/arm/mach-omap2/twl-common.c
@@ -48,14 +48,7 @@ void __init omap_pmic_init(int bus, u32 clkrate,
omap_register_i2c_bus(bus, clkrate, &pmic_i2c_board_info, 1);
}
-static struct twl4030_usb_data omap4_usb_pdata = {
- .phy_init = omap4430_phy_init,
- .phy_exit = omap4430_phy_exit,
- .phy_power = omap4430_phy_power,
- .phy_set_clock = omap4430_phy_set_clk,
- .phy_suspend = omap4430_phy_suspend,
-};
-
+#if defined(CONFIG_ARCH_OMAP3)
static struct twl4030_usb_data omap3_usb_pdata = {
.usb_mode = T2_USB_MODE_ULPI,
};
@@ -122,6 +115,45 @@ static struct regulator_init_data omap3_vpll2_idata = {
.consumer_supplies = omap3_vpll2_supplies,
};
+void __init omap3_pmic_get_config(struct twl4030_platform_data *pmic_data,
+ u32 pdata_flags, u32 regulators_flags)
+{
+ if (!pmic_data->irq_base)
+ pmic_data->irq_base = TWL4030_IRQ_BASE;
+ if (!pmic_data->irq_end)
+ pmic_data->irq_end = TWL4030_IRQ_END;
+
+ /* Common platform data configurations */
+ if (pdata_flags & TWL_COMMON_PDATA_USB && !pmic_data->usb)
+ pmic_data->usb = &omap3_usb_pdata;
+
+ if (pdata_flags & TWL_COMMON_PDATA_BCI && !pmic_data->bci)
+ pmic_data->bci = &omap3_bci_pdata;
+
+ if (pdata_flags & TWL_COMMON_PDATA_MADC && !pmic_data->madc)
+ pmic_data->madc = &omap3_madc_pdata;
+
+ if (pdata_flags & TWL_COMMON_PDATA_AUDIO && !pmic_data->audio)
+ pmic_data->audio = &omap3_audio_pdata;
+
+ /* Common regulator configurations */
+ if (regulators_flags & TWL_COMMON_REGULATOR_VDAC && !pmic_data->vdac)
+ pmic_data->vdac = &omap3_vdac_idata;
+
+ if (regulators_flags & TWL_COMMON_REGULATOR_VPLL2 && !pmic_data->vpll2)
+ pmic_data->vpll2 = &omap3_vpll2_idata;
+}
+#endif /* CONFIG_ARCH_OMAP3 */
+
+#if defined(CONFIG_ARCH_OMAP4)
+static struct twl4030_usb_data omap4_usb_pdata = {
+ .phy_init = omap4430_phy_init,
+ .phy_exit = omap4430_phy_exit,
+ .phy_power = omap4430_phy_power,
+ .phy_set_clock = omap4430_phy_set_clk,
+ .phy_suspend = omap4430_phy_suspend,
+};
+
static struct regulator_init_data omap4_vdac_idata = {
.constraints = {
.min_uV = 1800000,
@@ -273,32 +305,4 @@ void __init omap4_pmic_get_config(struct twl4030_platform_data *pmic_data,
!pmic_data->clk32kg)
pmic_data->clk32kg = &omap4_clk32kg_idata;
}
-
-void __init omap3_pmic_get_config(struct twl4030_platform_data *pmic_data,
- u32 pdata_flags, u32 regulators_flags)
-{
- if (!pmic_data->irq_base)
- pmic_data->irq_base = TWL4030_IRQ_BASE;
- if (!pmic_data->irq_end)
- pmic_data->irq_end = TWL4030_IRQ_END;
-
- /* Common platform data configurations */
- if (pdata_flags & TWL_COMMON_PDATA_USB && !pmic_data->usb)
- pmic_data->usb = &omap3_usb_pdata;
-
- if (pdata_flags & TWL_COMMON_PDATA_BCI && !pmic_data->bci)
- pmic_data->bci = &omap3_bci_pdata;
-
- if (pdata_flags & TWL_COMMON_PDATA_MADC && !pmic_data->madc)
- pmic_data->madc = &omap3_madc_pdata;
-
- if (pdata_flags & TWL_COMMON_PDATA_AUDIO && !pmic_data->audio)
- pmic_data->audio = &omap3_audio_pdata;
-
- /* Common regulator configurations */
- if (regulators_flags & TWL_COMMON_REGULATOR_VDAC && !pmic_data->vdac)
- pmic_data->vdac = &omap3_vdac_idata;
-
- if (regulators_flags & TWL_COMMON_REGULATOR_VPLL2 && !pmic_data->vpll2)
- pmic_data->vpll2 = &omap3_vpll2_idata;
-}
+#endif /* CONFIG_ARCH_OMAP4 */
^ permalink raw reply related [flat|nested] 12+ messages in thread
* OMAP3 kernels fail to build
2011-08-10 7:27 ` Russell King - ARM Linux
@ 2011-08-10 9:18 ` Tony Lindgren
0 siblings, 0 replies; 12+ messages in thread
From: Tony Lindgren @ 2011-08-10 9:18 UTC (permalink / raw)
To: linux-arm-kernel
* Russell King - ARM Linux <linux@arm.linux.org.uk> [110810 00:21]:
> On Tue, Aug 09, 2011 at 11:26:16PM -0600, Paul Walmsley wrote:
> > On Mon, 8 Aug 2011, Russell King - ARM Linux wrote:
> >
> > > On Mon, Aug 08, 2011 at 04:39:32PM +0530, Santosh wrote:
> > > > On Monday 08 August 2011 04:30 PM, Russell King - ARM Linux wrote:
> > > >> With CONFIG_ARCH_OMAP3=y and CONFIG_ARCH_OMAP4=n, I'm getting this:
> > > >>
> > > >> arch/arm/mach-omap2/built-in.o:(.data+0xf99c): undefined reference to `omap4430_phy_init'
> > > >> arch/arm/mach-omap2/built-in.o:(.data+0xf9a0): undefined reference to `omap4430_phy_exit'
> > > >> arch/arm/mach-omap2/built-in.o:(.data+0xf9a4): undefined reference to `omap4430_phy_power'
> > > >> arch/arm/mach-omap2/built-in.o:(.data+0xf9a8): undefined reference to `omap4430_phy_set_clk'
> > > >> arch/arm/mach-omap2/built-in.o:(.data+0xf9ac): undefined reference to `omap4430_phy_suspend'
> > > >>
> > > > I thought below patch was suppose to fix it.
> > > > https://patchwork.kernel.org/patch/963462/
> > >
> > > So, the problem has been known about for around a month. Yet the broken
> > > patch still went upstream.
> >
> > Which known "broken patch still went upstream" ?
> >
> > The problem commits were 208466dc10083e734a8af71d10f923ee4bff950c ("usb:
> > otg: OMAP4430: Powerdown the internal PHY when USB is disabled") and
> > fb91cde49c327ff957c55d91805bc6abda59b311 ("usb: musb: OMAP4430: Power down
> > the PHY during board init"). The above link makes this clear.
>
> The fact that there are _build_ _errors_ indicate that a patch which
> introduced this crap _was_ _broken_. The fact that it was _reported_
> as broken well before the merge window and still went in during the
> merge window indicates that the OMAP workflow with regard to patches
> is simply BROKEN.
Or people go on vacation and just drop the ball like I did :)
Anyways, the best way to detect issues like this would be to get
make randconfig working for ARM.. And then have some machines doing
that with next tree.
Tony
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH] OMAP: Fix linking error in twl-common.c for OMAP2/3/4 only builds
2011-08-10 9:15 ` Tony Lindgren
@ 2011-08-11 15:07 ` Michael Jones
2011-09-28 18:28 ` Tony Lindgren
0 siblings, 1 reply; 12+ messages in thread
From: Michael Jones @ 2011-08-11 15:07 UTC (permalink / raw)
To: linux-arm-kernel
Hi,
On 08/10/2011 11:15 AM, Tony Lindgren wrote:
>
> * Peter Ujfalusi <peter.ujfalusi@ti.com> [110809 05:31]:
>> Avoid compiling code for OMAP arch which is not selected by the
>> config.
>>
>> Fixes issues like:
>> With CONFIG_ARCH_OMAP3=y and CONFIG_ARCH_OMAP4=n, I'm getting this:
>>
>> arch/arm/mach-omap2/built-in.o:(.data+0xf99c): undefined reference to `omap4430_phy_init'
>> arch/arm/mach-omap2/built-in.o:(.data+0xf9a0): undefined reference to `omap4430_phy_exit'
>> arch/arm/mach-omap2/built-in.o:(.data+0xf9a4): undefined reference to `omap4430_phy_power'
>> arch/arm/mach-omap2/built-in.o:(.data+0xf9a8): undefined reference to `omap4430_phy_set_clk'
>> arch/arm/mach-omap2/built-in.o:(.data+0xf9ac): undefined reference to `omap4430_phy_suspend'
>>
>> Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
>>
>> Hi Russel, Tony,
>>
>> This patch fixes the linking error caused by the twl-common.c file,
>> when the kernel is built for OMAP2/3/4 only.
>
> Thanks, I'll queue this one as a fix with updated comments as below.
>
> Regards,
>
> Tony
>
>
> From: Peter Ujfalusi <peter.ujfalusi@ti.com>
> Date: Tue, 9 Aug 2011 15:36:50 +0300
> Subject: [PATCH] OMAP: Fix linking error in twl-common.c for OMAP2/3/4 only builds
>
[snip]
I still stumbled upon these linker errors when building for my OMAP3
board, using the current linux-omap master branch. I inadvertently had
CONFIG_ARCH_OMAP4=y (leftover from my starting point,
omap2plus_defconfig), but didn't have any of the boards with
omap_phy_internal.o selected (OMAP_4430SDP, OMAP4_PANDA, PCM049, PCM049,
OMAP3517EVM). Maybe this isn't a concern anyway, since anybody building
with CONFIG_ARCH_OMAP4 will presumably also be building one of those
boards? I don't know if it is our goal to build successfully with every
wacky CONFIG_ combination, but I thought I would report it here just in
case.
-Michael
MATRIX VISION GmbH, Talstrasse 16, DE-71570 Oppenweiler
Registergericht: Amtsgericht Stuttgart, HRB 271090
Geschaeftsfuehrer: Gerhard Thullner, Werner Armingeon, Uwe Furtner, Erhard Meier
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH] OMAP: Fix linking error in twl-common.c for OMAP2/3/4 only builds
2011-08-11 15:07 ` Michael Jones
@ 2011-09-28 18:28 ` Tony Lindgren
0 siblings, 0 replies; 12+ messages in thread
From: Tony Lindgren @ 2011-09-28 18:28 UTC (permalink / raw)
To: linux-arm-kernel
Hi,
Sorry for the delay in replying..
* Michael Jones <michael.jones@matrix-vision.de> [110811 07:34]:
>
> I still stumbled upon these linker errors when building for my OMAP3
> board, using the current linux-omap master branch. I inadvertently had
> CONFIG_ARCH_OMAP4=y (leftover from my starting point,
> omap2plus_defconfig), but didn't have any of the boards with
> omap_phy_internal.o selected (OMAP_4430SDP, OMAP4_PANDA, PCM049, PCM049,
> OMAP3517EVM). Maybe this isn't a concern anyway, since anybody building
> with CONFIG_ARCH_OMAP4 will presumably also be building one of those
> boards? I don't know if it is our goal to build successfully with every
> wacky CONFIG_ combination, but I thought I would report it here just in
> case.
Probably the best way is to get omap specific randconfigs going based
on something what Arnd posted few days ago. Even with the old defconfig
files we'll still be missing many corner cases.
Regards,
Tony
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2011-09-28 18:28 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-08-08 11:00 OMAP3 kernels fail to build Russell King - ARM Linux
2011-08-08 11:09 ` Santosh
2011-08-08 11:30 ` Russell King - ARM Linux
2011-08-09 13:16 ` Tony Lindgren
2011-08-10 5:26 ` Paul Walmsley
2011-08-10 7:27 ` Russell King - ARM Linux
2011-08-10 9:18 ` Tony Lindgren
2011-08-09 11:17 ` Péter Ujfalusi
2011-08-09 12:36 ` [PATCH] OMAP: Fix linking error in twl-common.c for OMAP2/3/4 only builds Peter Ujfalusi
2011-08-10 9:15 ` Tony Lindgren
2011-08-11 15:07 ` Michael Jones
2011-09-28 18:28 ` Tony Lindgren
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).