Message ID | 1344919923-16764-1-git-send-email-sachin.kamat@linaro.org |
---|---|
State | Rejected |
Headers | show |
Hi Sachin, On 08/14/2012 06:52 AM, Sachin Kamat wrote: > FIMC-Lite driver accesses functions which are defined in files > attached to S5P_FIMC. Without this patch, if only FIMC-Lite is > selected, following errors are observed for missing symbols: > > drivers/built-in.o: In function `fimc_md_create_links': > fimc-mdevice.c:641: undefined reference to `fimc_sensor_notify' > drivers/built-in.o: In function `fimc_md_link_notify': > fimc-mdevice.c:838: undefined reference to `fimc_ctrls_delete' > fimc-mdevice.c:854: undefined reference to `fimc_capture_ctrls_create' > drivers/built-in.o: In function `fimc_md_init': > fimc-mdevice.c:1018: undefined reference to `fimc_register_driver' > drivers/built-in.o: In function `fimc_md_exit': > fimc-mdevice.c:1028: undefined reference to `fimc_unregister_driver' > make: *** [vmlinux] Error 1 Hmm, when you select CONFIG_VIDEO_EXYNOS_FIMC_LITE only fimc-mdevice.c shouldn't be build. That what's in the Makefile [1]: 1 s5p-fimc-objs := fimc-core.o fimc-reg.o fimc-m2m.o fimc-capture.o fimc-mdevice.o 2 exynos-fimc-lite-objs += fimc-lite-reg.o fimc-lite.o 3 s5p-csis-objs := mipi-csis.o 4 5 obj-$(CONFIG_VIDEO_S5P_MIPI_CSIS) += s5p-csis.o 6 obj-$(CONFIG_VIDEO_EXYNOS_FIMC_LITE) += exynos-fimc-lite.o 7 obj-$(CONFIG_VIDEO_S5P_FIMC) += s5p-fimc.o Only following 3 symbols should be missing: - fimc_pipeline_initialize - fimc_pipeline_s_stream - fimc_pipeline_shutdown I'm getting following errors instead: drivers/built-in.o: In function `buffer_queue': /home/snawrocki/dev/linux-opensource-release/kernel/drivers/media/video/s5p-fimc/fimc-lite.c:414: undefined reference to `fimc_pipeline_s_stream' drivers/built-in.o: In function `fimc_lite_resume': /home/snawrocki/dev/linux-opensource-release/kernel/drivers/media/video/s5p-fimc/fimc-lite.c:1518: undefined reference to `fimc_pipeline_initialize' drivers/built-in.o: In function `fimc_lite_reinit': /home/snawrocki/dev/linux-opensource-release/kernel/drivers/media/video/s5p-fimc/fimc-lite.c:196: undefined reference to `fimc_pipeline_s_stream' drivers/built-in.o: In function `fimc_lite_suspend': /home/snawrocki/dev/linux-opensource-release/kernel/drivers/media/video/s5p-fimc/fimc-lite.c:1544: undefined reference to `fimc_pipeline_shutdown' drivers/built-in.o: In function `start_streaming': /home/snawrocki/dev/linux-opensource-release/kernel/drivers/media/video/s5p-fimc/fimc-lite.c:310: undefined reference to `fimc_pipeline_s_stream' drivers/built-in.o: In function `fimc_lite_close': /home/snawrocki/dev/linux-opensource-release/kernel/drivers/media/video/s5p-fimc/fimc-lite.c:496: undefined reference to `fimc_pipeline_shutdown' drivers/built-in.o: In function `fimc_lite_open': /home/snawrocki/dev/linux-opensource-release/kernel/drivers/media/video/s5p-fimc/fimc-lite.c:469: undefined reference to `fimc_pipeline_initialize' Anyway, the current approach of exporting the pipeline control functions seems wrong, since we wouldn't be able to build s5p-fimc and exynos-gsc drivers and link them into common kernel image. It must be possible to build FIMC-LITE with s5p-fimc or exynos-gsc driver, or best as a standalone module. I think I will try to add some pipeline ops for the FIMC-LITE module, that would be initialized when it gets registered to selected media device (s5p-fimc or exynos-gsc in future). So this patch doesn't seem a right solution to me. I'll try to address this issue. And I'm wonderin why you're getting those different errors. Regards, Sylwester > Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org> > --- > drivers/media/video/s5p-fimc/Kconfig | 2 +- > 1 files changed, 1 insertions(+), 1 deletions(-) > > diff --git a/drivers/media/video/s5p-fimc/Kconfig b/drivers/media/video/s5p-fimc/Kconfig > index a564f7e..17a1f8d 100644 > --- a/drivers/media/video/s5p-fimc/Kconfig > +++ b/drivers/media/video/s5p-fimc/Kconfig > @@ -35,7 +35,7 @@ if ARCH_EXYNOS > > config VIDEO_EXYNOS_FIMC_LITE > tristate "EXYNOS FIMC-LITE camera interface driver" > - depends on I2C > + depends on I2C && VIDEO_S5P_FIMC > select VIDEOBUF2_DMA_CONTIG > help > This is a V4L2 driver for Samsung EXYNOS4/5 SoC FIMC-LITE camera [1] http://git.linuxtv.org/media_tree.git/blob/31ce54f6aeb70ecf1b8e758236955dfad1b1e398:/drivers/media/video/s5p-fimc/Makefile
Hi Sylwester, On 14 August 2012 16:23, Sylwester Nawrocki <s.nawrocki@samsung.com> wrote: > Hi Sachin, > > On 08/14/2012 06:52 AM, Sachin Kamat wrote: >> FIMC-Lite driver accesses functions which are defined in files >> attached to S5P_FIMC. Without this patch, if only FIMC-Lite is >> selected, following errors are observed for missing symbols: >> >> drivers/built-in.o: In function `fimc_md_create_links': >> fimc-mdevice.c:641: undefined reference to `fimc_sensor_notify' >> drivers/built-in.o: In function `fimc_md_link_notify': >> fimc-mdevice.c:838: undefined reference to `fimc_ctrls_delete' >> fimc-mdevice.c:854: undefined reference to `fimc_capture_ctrls_create' >> drivers/built-in.o: In function `fimc_md_init': >> fimc-mdevice.c:1018: undefined reference to `fimc_register_driver' >> drivers/built-in.o: In function `fimc_md_exit': >> fimc-mdevice.c:1028: undefined reference to `fimc_unregister_driver' >> make: *** [vmlinux] Error 1 > > Hmm, when you select CONFIG_VIDEO_EXYNOS_FIMC_LITE only fimc-mdevice.c > shouldn't be build. That what's in the Makefile [1]: > > 1 s5p-fimc-objs := fimc-core.o fimc-reg.o fimc-m2m.o fimc-capture.o fimc-mdevice.o > 2 exynos-fimc-lite-objs += fimc-lite-reg.o fimc-lite.o > 3 s5p-csis-objs := mipi-csis.o > 4 > 5 obj-$(CONFIG_VIDEO_S5P_MIPI_CSIS) += s5p-csis.o > 6 obj-$(CONFIG_VIDEO_EXYNOS_FIMC_LITE) += exynos-fimc-lite.o > 7 obj-$(CONFIG_VIDEO_S5P_FIMC) += s5p-fimc.o > > > Only following 3 symbols should be missing: > > - fimc_pipeline_initialize > - fimc_pipeline_s_stream > - fimc_pipeline_shutdown > > I'm getting following errors instead: > > drivers/built-in.o: In function `buffer_queue': > /home/snawrocki/dev/linux-opensource-release/kernel/drivers/media/video/s5p-fimc/fimc-lite.c:414: undefined reference to `fimc_pipeline_s_stream' > drivers/built-in.o: In function `fimc_lite_resume': > /home/snawrocki/dev/linux-opensource-release/kernel/drivers/media/video/s5p-fimc/fimc-lite.c:1518: undefined reference to `fimc_pipeline_initialize' > drivers/built-in.o: In function `fimc_lite_reinit': > /home/snawrocki/dev/linux-opensource-release/kernel/drivers/media/video/s5p-fimc/fimc-lite.c:196: undefined reference to `fimc_pipeline_s_stream' > drivers/built-in.o: In function `fimc_lite_suspend': > /home/snawrocki/dev/linux-opensource-release/kernel/drivers/media/video/s5p-fimc/fimc-lite.c:1544: undefined reference to `fimc_pipeline_shutdown' > drivers/built-in.o: In function `start_streaming': > /home/snawrocki/dev/linux-opensource-release/kernel/drivers/media/video/s5p-fimc/fimc-lite.c:310: undefined reference to `fimc_pipeline_s_stream' > drivers/built-in.o: In function `fimc_lite_close': > /home/snawrocki/dev/linux-opensource-release/kernel/drivers/media/video/s5p-fimc/fimc-lite.c:496: undefined reference to `fimc_pipeline_shutdown' > drivers/built-in.o: In function `fimc_lite_open': > /home/snawrocki/dev/linux-opensource-release/kernel/drivers/media/video/s5p-fimc/fimc-lite.c:469: undefined reference to `fimc_pipeline_initialize' Sorry for the confusion created due to the wrong copy of error messages. In fact I too get the same errors as mentioned by you. I was just playing around with the Makefile to see if including fimc-mdevice.o solved the problem (commit messsage errors were due to this). > > > Anyway, the current approach of exporting the pipeline control > functions seems wrong, since we wouldn't be able to build s5p-fimc > and exynos-gsc drivers and link them into common kernel image. > > It must be possible to build FIMC-LITE with s5p-fimc or exynos-gsc > driver, or best as a standalone module. I think I will try to add > some pipeline ops for the FIMC-LITE module, that would be initialized > when it gets registered to selected media device (s5p-fimc or > exynos-gsc in future). Sounds good. > > So this patch doesn't seem a right solution to me. Right. This patch was more from the point of view of bringing this issue to notice and possibly providing a quick fix (workaround). I'll try to address > this issue. And I'm wonderin why you're getting those different errors. My mistake :) > > Regards, > Sylwester > >> Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org> >> --- >> drivers/media/video/s5p-fimc/Kconfig | 2 +- >> 1 files changed, 1 insertions(+), 1 deletions(-) >> >> diff --git a/drivers/media/video/s5p-fimc/Kconfig b/drivers/media/video/s5p-fimc/Kconfig >> index a564f7e..17a1f8d 100644 >> --- a/drivers/media/video/s5p-fimc/Kconfig >> +++ b/drivers/media/video/s5p-fimc/Kconfig >> @@ -35,7 +35,7 @@ if ARCH_EXYNOS >> >> config VIDEO_EXYNOS_FIMC_LITE >> tristate "EXYNOS FIMC-LITE camera interface driver" >> - depends on I2C >> + depends on I2C && VIDEO_S5P_FIMC >> select VIDEOBUF2_DMA_CONTIG >> help >> This is a V4L2 driver for Samsung EXYNOS4/5 SoC FIMC-LITE camera > > [1] http://git.linuxtv.org/media_tree.git/blob/31ce54f6aeb70ecf1b8e758236955dfad1b1e398:/drivers/media/video/s5p-fimc/Makefile
diff --git a/drivers/media/video/s5p-fimc/Kconfig b/drivers/media/video/s5p-fimc/Kconfig index a564f7e..17a1f8d 100644 --- a/drivers/media/video/s5p-fimc/Kconfig +++ b/drivers/media/video/s5p-fimc/Kconfig @@ -35,7 +35,7 @@ if ARCH_EXYNOS config VIDEO_EXYNOS_FIMC_LITE tristate "EXYNOS FIMC-LITE camera interface driver" - depends on I2C + depends on I2C && VIDEO_S5P_FIMC select VIDEOBUF2_DMA_CONTIG help This is a V4L2 driver for Samsung EXYNOS4/5 SoC FIMC-LITE camera
FIMC-Lite driver accesses functions which are defined in files attached to S5P_FIMC. Without this patch, if only FIMC-Lite is selected, following errors are observed for missing symbols: drivers/built-in.o: In function `fimc_md_create_links': fimc-mdevice.c:641: undefined reference to `fimc_sensor_notify' drivers/built-in.o: In function `fimc_md_link_notify': fimc-mdevice.c:838: undefined reference to `fimc_ctrls_delete' fimc-mdevice.c:854: undefined reference to `fimc_capture_ctrls_create' drivers/built-in.o: In function `fimc_md_init': fimc-mdevice.c:1018: undefined reference to `fimc_register_driver' drivers/built-in.o: In function `fimc_md_exit': fimc-mdevice.c:1028: undefined reference to `fimc_unregister_driver' make: *** [vmlinux] Error 1 Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org> --- drivers/media/video/s5p-fimc/Kconfig | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)