linux-media.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] media: atmel: atmel-isc: fix build failures after split
@ 2021-07-22  9:04 Arnd Bergmann
       [not found] ` <BN9PR11MB5514AA62DD0F2A65828E62D6E8E49@BN9PR11MB5514.namprd11.prod.outlook.com>
  0 siblings, 1 reply; 4+ messages in thread
From: Arnd Bergmann @ 2021-07-22  9:04 UTC (permalink / raw)
  To: Mauro Carvalho Chehab, Nicolas Ferre, Alexandre Belloni,
	Ludovic Desroches, Eugen Hristev, Hans Verkuil
  Cc: Arnd Bergmann, Tomi Valkeinen, linux-media, linux-arm-kernel,
	linux-kernel

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(-)

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");
-- 
2.29.2


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH] media: atmel: atmel-isc: fix build failures after split
       [not found] ` <BN9PR11MB5514AA62DD0F2A65828E62D6E8E49@BN9PR11MB5514.namprd11.prod.outlook.com>
@ 2021-07-22 11:45   ` Arnd Bergmann
  2021-07-26  7:02     ` Eugen.Hristev
  2021-07-29  9:02     ` Hans Verkuil
  0 siblings, 2 replies; 4+ messages in thread
From: Arnd Bergmann @ 2021-07-22 11:45 UTC (permalink / raw)
  To: Eugen Hristev
  Cc: Mauro Carvalho Chehab, Nicolas Ferre, Alexandre Belloni,
	Ludovic Desroches, Hans Verkuil, Arnd Bergmann, tomi.valkeinen,
	Linux Media Mailing List, Linux ARM, Linux Kernel Mailing List

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

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] media: atmel: atmel-isc: fix build failures after split
  2021-07-22 11:45   ` Arnd Bergmann
@ 2021-07-26  7:02     ` Eugen.Hristev
  2021-07-29  9:02     ` Hans Verkuil
  1 sibling, 0 replies; 4+ messages in thread
From: Eugen.Hristev @ 2021-07-26  7:02 UTC (permalink / raw)
  To: arnd
  Cc: mchehab, Nicolas.Ferre, alexandre.belloni, Ludovic.Desroches,
	hverkuil-cisco, arnd, tomi.valkeinen, linux-media,
	linux-arm-kernel, linux-kernel

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

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] media: atmel: atmel-isc: fix build failures after split
  2021-07-22 11:45   ` Arnd Bergmann
  2021-07-26  7:02     ` Eugen.Hristev
@ 2021-07-29  9:02     ` Hans Verkuil
  1 sibling, 0 replies; 4+ messages in thread
From: Hans Verkuil @ 2021-07-29  9:02 UTC (permalink / raw)
  To: Arnd Bergmann, Eugen Hristev
  Cc: Mauro Carvalho Chehab, Nicolas Ferre, Alexandre Belloni,
	Ludovic Desroches, Arnd Bergmann, tomi.valkeinen,
	Linux Media Mailing List, Linux ARM, Linux Kernel Mailing List

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

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2021-07-29  9:02 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-07-22  9:04 [PATCH] media: atmel: atmel-isc: fix build failures after split Arnd Bergmann
     [not found] ` <BN9PR11MB5514AA62DD0F2A65828E62D6E8E49@BN9PR11MB5514.namprd11.prod.outlook.com>
2021-07-22 11:45   ` Arnd Bergmann
2021-07-26  7:02     ` Eugen.Hristev
2021-07-29  9:02     ` Hans Verkuil

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).