* imx-drm/ipuv3-crtc.ko fails to link
@ 2013-11-11 16:22 Josh Boyer
2013-11-12 14:32 ` Josh Boyer
0 siblings, 1 reply; 4+ messages in thread
From: Josh Boyer @ 2013-11-11 16:22 UTC (permalink / raw)
To: Sascha Hauer, Philipp Zabel
Cc: Dave Airlie, devel, Linux-Kernel@Vger. Kernel. Org, Greg KH
Hi All,
With v3.12-2839-gedae583 (Linus' tree as of this morning), the
ipuv3-crtc.ko module fails to link with the following messages:
ERROR: "ipu_plane_disable" [drivers/staging/imx-drm/ipuv3-crtc.ko] undefined!
ERROR: "ipu_plane_enable" [drivers/staging/imx-drm/ipuv3-crtc.ko] undefined!
ERROR: "ipu_plane_irq" [drivers/staging/imx-drm/ipuv3-crtc.ko] undefined!
ERROR: "ipu_plane_get_resources"
[drivers/staging/imx-drm/ipuv3-crtc.ko] undefined!
ERROR: "ipu_plane_init" [drivers/staging/imx-drm/ipuv3-crtc.ko] undefined!
ERROR: "imx_drm_crtc_id" [drivers/staging/imx-drm/ipuv3-crtc.ko] undefined!
ERROR: "ipu_plane_mode_set" [drivers/staging/imx-drm/ipuv3-crtc.ko] undefined!
ERROR: "ipu_plane_set_base" [drivers/staging/imx-drm/ipuv3-crtc.ko] undefined!
ERROR: "ipu_plane_put_resources"
[drivers/staging/imx-drm/ipuv3-crtc.ko] undefined!
make[1]: *** [__modpost] Error 1
make: *** [modules] Error 2
The relevant .config hunks are configured as such:
CONFIG_DRM_IMX=m
CONFIG_DRM_IMX_FB_HELPER=m
CONFIG_DRM_IMX_PARALLEL_DISPLAY=m
CONFIG_DRM_IMX_TVE=m
# CONFIG_DRM_IMX_LDB is not set
CONFIG_DRM_IMX_IPUV3_CORE=m
CONFIG_DRM_IMX_IPUV3=m
I can send the full .config if people would like to see it.
I'm guessing the ipu_plane_* functions listed here need EXPORT_SYMBOL
statements added to them. Is this currently queued in anyone's tree?
josh
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: imx-drm/ipuv3-crtc.ko fails to link
2013-11-11 16:22 imx-drm/ipuv3-crtc.ko fails to link Josh Boyer
@ 2013-11-12 14:32 ` Josh Boyer
2013-11-12 14:57 ` Sascha Hauer
0 siblings, 1 reply; 4+ messages in thread
From: Josh Boyer @ 2013-11-12 14:32 UTC (permalink / raw)
To: Philipp Zabel
Cc: Sascha Hauer, Dave Airlie, devel, Linux-Kernel@Vger. Kernel. Org,
Greg KH
On Mon, Nov 11, 2013 at 11:22 AM, Josh Boyer <jwboyer@fedoraproject.org> wrote:
> Hi All,
>
> With v3.12-2839-gedae583 (Linus' tree as of this morning), the
> ipuv3-crtc.ko module fails to link with the following messages:
>
> ERROR: "ipu_plane_disable" [drivers/staging/imx-drm/ipuv3-crtc.ko] undefined!
> ERROR: "ipu_plane_enable" [drivers/staging/imx-drm/ipuv3-crtc.ko] undefined!
> ERROR: "ipu_plane_irq" [drivers/staging/imx-drm/ipuv3-crtc.ko] undefined!
> ERROR: "ipu_plane_get_resources"
> [drivers/staging/imx-drm/ipuv3-crtc.ko] undefined!
> ERROR: "ipu_plane_init" [drivers/staging/imx-drm/ipuv3-crtc.ko] undefined!
> ERROR: "imx_drm_crtc_id" [drivers/staging/imx-drm/ipuv3-crtc.ko] undefined!
> ERROR: "ipu_plane_mode_set" [drivers/staging/imx-drm/ipuv3-crtc.ko] undefined!
> ERROR: "ipu_plane_set_base" [drivers/staging/imx-drm/ipuv3-crtc.ko] undefined!
> ERROR: "ipu_plane_put_resources"
> [drivers/staging/imx-drm/ipuv3-crtc.ko] undefined!
> make[1]: *** [__modpost] Error 1
> make: *** [modules] Error 2
Actually, I think this is because ipuv3-plane.c was added to the
Makefile as a requisite file for ipuv3-crtc.ko with commit
b8d181e408af6a017d, but Kbuild isn't interpreting it that way because
it's a tristate option, not a bool. Making it work would require
something like:
imx-ipuv3-crct-objs := ipuv3-crtc.o ipuv3-plane.o
obj-$(CONFIG_DRM_IMX_IPUV3) += imx-ipuv3-crct.o
But that would rename the module from ipuv3-crtc.ko to
imx-ipuv3-crct.ko. Even with that, it still fails to link with:
ERROR: "imx_drm_crtc_id" [drivers/staging/imx-drm/imx-ipuv3-crtc.ko] undefined!
So two questions really.
1) Are the tristate options for DRM_IMX_IPUV3, DRM_IMX_IPUV3_CORE,
DRM_IMX_LDB, DRM_IMX_TVE, DRM_IMX_PARALLEL_DISPLAY, and
DRM_IMX_FB_HELPER really all supposed to be separate modules, or
should they be boolean options to the main DRM_IMX tristate?
2) If the answer to question 1 is "all separate modules", then either
ipuv3-crtc.c needs to be renamed or the final module name will be
different.
And did anyone actually try building all of these as modules? This
used to work in 3.12, but I'm not sure that was actually tested there
either.
josh
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: imx-drm/ipuv3-crtc.ko fails to link
2013-11-12 14:32 ` Josh Boyer
@ 2013-11-12 14:57 ` Sascha Hauer
2013-11-12 15:13 ` Josh Boyer
0 siblings, 1 reply; 4+ messages in thread
From: Sascha Hauer @ 2013-11-12 14:57 UTC (permalink / raw)
To: Josh Boyer
Cc: Philipp Zabel, Dave Airlie, devel, Linux-Kernel@Vger. Kernel. Org,
Greg KH
Hi Josh,
On Tue, Nov 12, 2013 at 09:32:08AM -0500, Josh Boyer wrote:
> On Mon, Nov 11, 2013 at 11:22 AM, Josh Boyer <jwboyer@fedoraproject.org> wrote:
> > Hi All,
> >
> > With v3.12-2839-gedae583 (Linus' tree as of this morning), the
> > ipuv3-crtc.ko module fails to link with the following messages:
> >
> > ERROR: "ipu_plane_disable" [drivers/staging/imx-drm/ipuv3-crtc.ko] undefined!
> > ERROR: "ipu_plane_enable" [drivers/staging/imx-drm/ipuv3-crtc.ko] undefined!
> > ERROR: "ipu_plane_irq" [drivers/staging/imx-drm/ipuv3-crtc.ko] undefined!
> > ERROR: "ipu_plane_get_resources"
> > [drivers/staging/imx-drm/ipuv3-crtc.ko] undefined!
> > ERROR: "ipu_plane_init" [drivers/staging/imx-drm/ipuv3-crtc.ko] undefined!
> > ERROR: "imx_drm_crtc_id" [drivers/staging/imx-drm/ipuv3-crtc.ko] undefined!
> > ERROR: "ipu_plane_mode_set" [drivers/staging/imx-drm/ipuv3-crtc.ko] undefined!
> > ERROR: "ipu_plane_set_base" [drivers/staging/imx-drm/ipuv3-crtc.ko] undefined!
> > ERROR: "ipu_plane_put_resources"
> > [drivers/staging/imx-drm/ipuv3-crtc.ko] undefined!
> > make[1]: *** [__modpost] Error 1
> > make: *** [modules] Error 2
>
> Actually, I think this is because ipuv3-plane.c was added to the
> Makefile as a requisite file for ipuv3-crtc.ko with commit
> b8d181e408af6a017d, but Kbuild isn't interpreting it that way because
> it's a tristate option, not a bool. Making it work would require
> something like:
>
> imx-ipuv3-crct-objs := ipuv3-crtc.o ipuv3-plane.o
> obj-$(CONFIG_DRM_IMX_IPUV3) += imx-ipuv3-crct.o
>
> But that would rename the module from ipuv3-crtc.ko to
> imx-ipuv3-crct.ko. Even with that, it still fails to link with:
>
> ERROR: "imx_drm_crtc_id" [drivers/staging/imx-drm/imx-ipuv3-crtc.ko] undefined!
>
> So two questions really.
>
> 1) Are the tristate options for DRM_IMX_IPUV3, DRM_IMX_IPUV3_CORE,
> DRM_IMX_LDB, DRM_IMX_TVE, DRM_IMX_PARALLEL_DISPLAY, and
> DRM_IMX_FB_HELPER really all supposed to be separate modules, or
> should they be boolean options to the main DRM_IMX tristate?
I think at least the ipuv3 core should be a separate module since this
could be used without drm support (for the input pathes, handled via v4l2)
>
> 2) If the answer to question 1 is "all separate modules", then either
> ipuv3-crtc.c needs to be renamed or the final module name will be
> different.
The final module name shouldn't matter, we can change it.
Does a EXPORT_SYMBOL_GPL(imx_drm_crtc_id) help fixing the problem?
>
> And did anyone actually try building all of these as modules? This
> used to work in 3.12, but I'm not sure that was actually tested there
> either.
At least I explicitly made this work when writing the IPU stuff, but I
must admit that we mostly use monolithic kernels here.
Sascha
--
Pengutronix e.K. | |
Industrial Linux Solutions | http://www.pengutronix.de/ |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: imx-drm/ipuv3-crtc.ko fails to link
2013-11-12 14:57 ` Sascha Hauer
@ 2013-11-12 15:13 ` Josh Boyer
0 siblings, 0 replies; 4+ messages in thread
From: Josh Boyer @ 2013-11-12 15:13 UTC (permalink / raw)
To: Sascha Hauer
Cc: Philipp Zabel, Dave Airlie, devel, Linux-Kernel@Vger. Kernel. Org,
Greg KH
On Tue, Nov 12, 2013 at 9:57 AM, Sascha Hauer <s.hauer@pengutronix.de> wrote:
> Hi Josh,
>
> On Tue, Nov 12, 2013 at 09:32:08AM -0500, Josh Boyer wrote:
>> On Mon, Nov 11, 2013 at 11:22 AM, Josh Boyer <jwboyer@fedoraproject.org> wrote:
>> > Hi All,
>> >
>> > With v3.12-2839-gedae583 (Linus' tree as of this morning), the
>> > ipuv3-crtc.ko module fails to link with the following messages:
>> >
>> > ERROR: "ipu_plane_disable" [drivers/staging/imx-drm/ipuv3-crtc.ko] undefined!
>> > ERROR: "ipu_plane_enable" [drivers/staging/imx-drm/ipuv3-crtc.ko] undefined!
>> > ERROR: "ipu_plane_irq" [drivers/staging/imx-drm/ipuv3-crtc.ko] undefined!
>> > ERROR: "ipu_plane_get_resources"
>> > [drivers/staging/imx-drm/ipuv3-crtc.ko] undefined!
>> > ERROR: "ipu_plane_init" [drivers/staging/imx-drm/ipuv3-crtc.ko] undefined!
>> > ERROR: "imx_drm_crtc_id" [drivers/staging/imx-drm/ipuv3-crtc.ko] undefined!
>> > ERROR: "ipu_plane_mode_set" [drivers/staging/imx-drm/ipuv3-crtc.ko] undefined!
>> > ERROR: "ipu_plane_set_base" [drivers/staging/imx-drm/ipuv3-crtc.ko] undefined!
>> > ERROR: "ipu_plane_put_resources"
>> > [drivers/staging/imx-drm/ipuv3-crtc.ko] undefined!
>> > make[1]: *** [__modpost] Error 1
>> > make: *** [modules] Error 2
>>
>> Actually, I think this is because ipuv3-plane.c was added to the
>> Makefile as a requisite file for ipuv3-crtc.ko with commit
>> b8d181e408af6a017d, but Kbuild isn't interpreting it that way because
>> it's a tristate option, not a bool. Making it work would require
>> something like:
>>
>> imx-ipuv3-crct-objs := ipuv3-crtc.o ipuv3-plane.o
>> obj-$(CONFIG_DRM_IMX_IPUV3) += imx-ipuv3-crct.o
>>
>> But that would rename the module from ipuv3-crtc.ko to
>> imx-ipuv3-crct.ko. Even with that, it still fails to link with:
>>
>> ERROR: "imx_drm_crtc_id" [drivers/staging/imx-drm/imx-ipuv3-crtc.ko] undefined!
>>
>> So two questions really.
>>
>> 1) Are the tristate options for DRM_IMX_IPUV3, DRM_IMX_IPUV3_CORE,
>> DRM_IMX_LDB, DRM_IMX_TVE, DRM_IMX_PARALLEL_DISPLAY, and
>> DRM_IMX_FB_HELPER really all supposed to be separate modules, or
>> should they be boolean options to the main DRM_IMX tristate?
>
> I think at least the ipuv3 core should be a separate module since this
> could be used without drm support (for the input pathes, handled via v4l2)
>
>>
>> 2) If the answer to question 1 is "all separate modules", then either
>> ipuv3-crtc.c needs to be renamed or the final module name will be
>> different.
>
> The final module name shouldn't matter, we can change it.
OK.
> Does a EXPORT_SYMBOL_GPL(imx_drm_crtc_id) help fixing the problem?
I'm sure it would. Haven't had a chance to test it yet. Since the
module name change isn't a big deal, I'll see if I can come up with a
patch to fix the Makefile and linking issues and send that out.
>> And did anyone actually try building all of these as modules? This
>> used to work in 3.12, but I'm not sure that was actually tested there
>> either.
>
> At least I explicitly made this work when writing the IPU stuff, but I
> must admit that we mostly use monolithic kernels here.
I figured as much. Fedora builds them as modules, presumably because
we build multiboard kernels and building this in doesn't benefit
everything those run on.
josh
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2013-11-12 15:13 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-11-11 16:22 imx-drm/ipuv3-crtc.ko fails to link Josh Boyer
2013-11-12 14:32 ` Josh Boyer
2013-11-12 14:57 ` Sascha Hauer
2013-11-12 15:13 ` Josh Boyer
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).