mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-30 10:39:04 +00:00
05ed7dc50d
Patches automatically rebased. Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
136 lines
4.6 KiB
Diff
136 lines
4.6 KiB
Diff
From dfcc0395f5e838c0b5c3fb93c9335b6a8892178a Mon Sep 17 00:00:00 2001
|
|
From: Eugen Hristev <eugen.hristev@microchip.com>
|
|
Date: Mon, 5 Jul 2021 14:57:08 +0200
|
|
Subject: [PATCH 190/247] media: atmel: fix build when ISC=m and XISC=y
|
|
|
|
Building VIDEO_ATMEL_ISC as module and VIDEO_ATMEL_XISC as built-in
|
|
(or viceversa) causes build errors:
|
|
|
|
or1k-linux-ld: drivers/media/platform/atmel/atmel-isc-base.o: in function `isc_async_complete':
|
|
atmel-isc-base.c:(.text+0x40d0): undefined reference to `__this_module'
|
|
or1k-linux-ld: atmel-isc-base.c:(.text+0x40f0): undefined reference to `__this_module'
|
|
or1k-linux-ld: drivers/media/platform/atmel/atmel-isc-base.o:(.rodata+0x390): undefined reference to `__this_module'
|
|
or1k-linux-ld: drivers/media/platform/atmel/atmel-isc-base.o:(__param+0x4): undefined reference to `__this_module'
|
|
or1k-linux-ld: drivers/media/platform/atmel/atmel-isc-base.o:(__param+0x18): undefined reference to `__this_module'
|
|
|
|
This is caused by the file atmel-isc-base.c which is common code between
|
|
the two drivers.
|
|
|
|
The solution is to create another Kconfig symbol that is automatically
|
|
selected and generates the module atmel-isc-base.ko. This module can be
|
|
loaded when both drivers are modules, or built-in when at least one of them
|
|
is built-in.
|
|
|
|
Reported-by: kernel test robot <lkp@intel.com>
|
|
Fixes: c9aa973884a1 ("media: atmel: atmel-isc: add microchip-xisc driver")
|
|
Signed-off-by: Eugen Hristev <eugen.hristev@microchip.com>
|
|
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
|
|
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
|
|
---
|
|
drivers/media/platform/atmel/Kconfig | 8 ++++++++
|
|
drivers/media/platform/atmel/Makefile | 5 +++--
|
|
drivers/media/platform/atmel/atmel-isc-base.c | 11 +++++++++++
|
|
3 files changed, 22 insertions(+), 2 deletions(-)
|
|
|
|
--- a/drivers/media/platform/atmel/Kconfig
|
|
+++ b/drivers/media/platform/atmel/Kconfig
|
|
@@ -8,6 +8,7 @@ config VIDEO_ATMEL_ISC
|
|
select VIDEOBUF2_DMA_CONTIG
|
|
select REGMAP_MMIO
|
|
select V4L2_FWNODE
|
|
+ select VIDEO_ATMEL_ISC_BASE
|
|
help
|
|
This module makes the ATMEL Image Sensor Controller available
|
|
as a v4l2 device.
|
|
@@ -19,10 +20,17 @@ config VIDEO_ATMEL_XISC
|
|
select VIDEOBUF2_DMA_CONTIG
|
|
select REGMAP_MMIO
|
|
select V4L2_FWNODE
|
|
+ select VIDEO_ATMEL_ISC_BASE
|
|
help
|
|
This module makes the ATMEL eXtended Image Sensor Controller
|
|
available as a v4l2 device.
|
|
|
|
+config VIDEO_ATMEL_ISC_BASE
|
|
+ tristate
|
|
+ default n
|
|
+ help
|
|
+ ATMEL ISC and XISC common code base.
|
|
+
|
|
config VIDEO_ATMEL_ISI
|
|
tristate "ATMEL Image Sensor Interface (ISI) support"
|
|
depends on VIDEO_V4L2 && OF
|
|
--- a/drivers/media/platform/atmel/Makefile
|
|
+++ b/drivers/media/platform/atmel/Makefile
|
|
@@ -1,7 +1,8 @@
|
|
# 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_BASE) += atmel-isc-base.o
|
|
obj-$(CONFIG_VIDEO_ATMEL_ISC) += atmel-isc.o
|
|
obj-$(CONFIG_VIDEO_ATMEL_XISC) += atmel-xisc.o
|
|
--- 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 *
|
|
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,
|
|
@@ -1575,6 +1577,7 @@ irqreturn_t isc_interrupt(int irq, void
|
|
|
|
return ret;
|
|
}
|
|
+EXPORT_SYMBOL_GPL(isc_interrupt);
|
|
|
|
static void isc_hist_count(struct isc_device *isc, u32 *min, u32 *max)
|
|
{
|
|
@@ -2209,6 +2212,7 @@ const struct v4l2_async_notifier_operati
|
|
.unbind = isc_async_unbind,
|
|
.complete = isc_async_complete,
|
|
};
|
|
+EXPORT_SYMBOL_GPL(isc_async_ops);
|
|
|
|
void isc_subdev_cleanup(struct isc_device *isc)
|
|
{
|
|
@@ -2221,6 +2225,7 @@ void isc_subdev_cleanup(struct isc_devic
|
|
|
|
INIT_LIST_HEAD(&isc->subdev_entities);
|
|
}
|
|
+EXPORT_SYMBOL_GPL(isc_subdev_cleanup);
|
|
|
|
int isc_pipeline_init(struct isc_device *isc)
|
|
{
|
|
@@ -2261,6 +2266,7 @@ int isc_pipeline_init(struct isc_device
|
|
|
|
return 0;
|
|
}
|
|
+EXPORT_SYMBOL_GPL(isc_pipeline_init);
|
|
|
|
/* regmap configuration */
|
|
#define ATMEL_ISC_REG_MAX 0xd5c
|
|
@@ -2270,4 +2276,9 @@ const struct regmap_config isc_regmap_co
|
|
.val_bits = 32,
|
|
.max_register = ATMEL_ISC_REG_MAX,
|
|
};
|
|
+EXPORT_SYMBOL_GPL(isc_regmap_config);
|
|
|
|
+MODULE_AUTHOR("Songjun Wu");
|
|
+MODULE_AUTHOR("Eugen Hristev");
|
|
+MODULE_DESCRIPTION("Atmel ISC common code base");
|
|
+MODULE_LICENSE("GPL v2");
|