diff mbox series

media: atmel: atmel-isc: fix build failures after split

Message ID 20210722090509.1054249-1-arnd@kernel.org (mailing list archive)
State New, archived
Headers show
Series media: atmel: atmel-isc: fix build failures after split | expand

Commit Message

Arnd Bergmann July 22, 2021, 9:04 a.m. UTC
From: Arnd Bergmann <arnd@arndb.de>

When the two isc driver front-ends are both enabled, but one of them
is built-in and the other one is a loadable module, the 'base' driver
is in a state that does not really work, as it would have to be
built in two different ways:

arm-linux-gnueabi-ld: drivers/media/platform/atmel/atmel-isc-base.o: in function `isc_async_complete':
atmel-isc-base.c:(.text+0x1e80): undefined reference to `__this_module'
arm-linux-gnueabi-ld: drivers/media/platform/atmel/atmel-isc-base.o:(.rodata+0x3c8): undefined reference to `__this_module'
arm-linux-gnueabi-ld: drivers/media/platform/atmel/atmel-isc-base.o:(__param+0x4): undefined reference to `__this_module'
arm-linux-gnueabi-ld: drivers/media/platform/atmel/atmel-isc-base.o:(__param+0x18): undefined reference to `__this_module'

As a workaround, turn the base portion of the driver into a library
by itself that can become a standalone module rather than being built
into the two drivers.

Fixes: 0a0e265515db ("media: atmel: atmel-isc: split driver into driver base and isc")
Fixes: c9aa973884a1 ("media: atmel: atmel-isc: add microchip-xisc driver")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 drivers/media/platform/atmel/Makefile         |  8 ++++----
 drivers/media/platform/atmel/atmel-isc-base.c | 10 ++++++++++
 2 files changed, 14 insertions(+), 4 deletions(-)

Comments

Arnd Bergmann July 22, 2021, 11:45 a.m. UTC | #1
On Thu, Jul 22, 2021 at 11:22 AM <Eugen.Hristev@microchip.com> wrote:
>
> Thanks for the patch but I already posted a fix some weeks ago :
>
> https://lore.kernel.org/linux-arm-kernel/20210705125708.121902-1-eugen.hristev@microchip.com/

Ok, good. Is that going to make it into v5.14?

        Arnd
Eugen Hristev July 26, 2021, 7:02 a.m. UTC | #2
On 7/22/21 2:45 PM, Arnd Bergmann wrote:
> On Thu, Jul 22, 2021 at 11:22 AM <Eugen.Hristev@microchip.com> wrote:
>>
>> Thanks for the patch but I already posted a fix some weeks ago :
>>
>> https://lore.kernel.org/linux-arm-kernel/20210705125708.121902-1-eugen.hristev@microchip.com/
> 
> Ok, good. Is that going to make it into v5.14?
> 
>          Arnd
> 

Hello Arnd,

I hope so. I did not get any feedback for it yet.
I think it depends on Hans and Mauro.

Eugen
Hans Verkuil July 29, 2021, 9:02 a.m. UTC | #3
On 22/07/2021 13:45, Arnd Bergmann wrote:
> On Thu, Jul 22, 2021 at 11:22 AM <Eugen.Hristev@microchip.com> wrote:
>>
>> Thanks for the patch but I already posted a fix some weeks ago :
>>
>> https://lore.kernel.org/linux-arm-kernel/20210705125708.121902-1-eugen.hristev@microchip.com/
> 
> Ok, good. Is that going to make it into v5.14?
> 
>         Arnd
> 

I'm preparing a PR for v5.14 for today.

Regards,

	Hans
diff mbox series

Patch

diff --git a/drivers/media/platform/atmel/Makefile b/drivers/media/platform/atmel/Makefile
index c5c01556c653..03c896e478c2 100644
--- a/drivers/media/platform/atmel/Makefile
+++ b/drivers/media/platform/atmel/Makefile
@@ -1,7 +1,7 @@ 
 # SPDX-License-Identifier: GPL-2.0-only
-atmel-isc-objs = atmel-sama5d2-isc.o atmel-isc-base.o
-atmel-xisc-objs = atmel-sama7g5-isc.o atmel-isc-base.o
+atmel-isc-objs = atmel-sama5d2-isc.o
+atmel-xisc-objs = atmel-sama7g5-isc.o
 
 obj-$(CONFIG_VIDEO_ATMEL_ISI) += atmel-isi.o
-obj-$(CONFIG_VIDEO_ATMEL_ISC) += atmel-isc.o
-obj-$(CONFIG_VIDEO_ATMEL_XISC) += atmel-xisc.o
+obj-$(CONFIG_VIDEO_ATMEL_ISC) += atmel-isc.o atmel-isc-base.o
+obj-$(CONFIG_VIDEO_ATMEL_XISC) += atmel-xisc.o atmel-isc-base.o
diff --git a/drivers/media/platform/atmel/atmel-isc-base.c b/drivers/media/platform/atmel/atmel-isc-base.c
index 19daa49bf604..b3730021dd89 100644
--- a/drivers/media/platform/atmel/atmel-isc-base.c
+++ b/drivers/media/platform/atmel/atmel-isc-base.c
@@ -378,6 +378,7 @@  int isc_clk_init(struct isc_device *isc)
 
 	return 0;
 }
+EXPORT_SYMBOL_GPL(isc_clk_init);
 
 void isc_clk_cleanup(struct isc_device *isc)
 {
@@ -392,6 +393,7 @@  void isc_clk_cleanup(struct isc_device *isc)
 			clk_unregister(isc_clk->clk);
 	}
 }
+EXPORT_SYMBOL_GPL(isc_clk_cleanup);
 
 static int isc_queue_setup(struct vb2_queue *vq,
 			    unsigned int *nbuffers, unsigned int *nplanes,
@@ -1578,6 +1580,7 @@  irqreturn_t isc_interrupt(int irq, void *dev_id)
 
 	return ret;
 }
+EXPORT_SYMBOL_GPL(isc_interrupt);
 
 static void isc_hist_count(struct isc_device *isc, u32 *min, u32 *max)
 {
@@ -2212,6 +2215,7 @@  const struct v4l2_async_notifier_operations isc_async_ops = {
 	.unbind = isc_async_unbind,
 	.complete = isc_async_complete,
 };
+EXPORT_SYMBOL_GPL(isc_async_ops);
 
 void isc_subdev_cleanup(struct isc_device *isc)
 {
@@ -2224,6 +2228,7 @@  void isc_subdev_cleanup(struct isc_device *isc)
 
 	INIT_LIST_HEAD(&isc->subdev_entities);
 }
+EXPORT_SYMBOL_GPL(isc_subdev_cleanup);
 
 int isc_pipeline_init(struct isc_device *isc)
 {
@@ -2264,6 +2269,7 @@  int isc_pipeline_init(struct isc_device *isc)
 
 	return 0;
 }
+EXPORT_SYMBOL_GPL(isc_pipeline_init);
 
 /* regmap configuration */
 #define ATMEL_ISC_REG_MAX    0xd5c
@@ -2273,4 +2279,8 @@  const struct regmap_config isc_regmap_config = {
 	.val_bits       = 32,
 	.max_register	= ATMEL_ISC_REG_MAX,
 };
+EXPORT_SYMBOL_GPL(isc_regmap_config);
 
+MODULE_AUTHOR("Songjun Wu");
+MODULE_DESCRIPTION("The V4L2 driver for Atmel-ISC, common parts");
+MODULE_LICENSE("GPL v2");