videobuf2: Add VIDEOBUF2_V4L2 Kconfig option for videobuf2 V4L2 part
Subsystems (2)
PATCH v2 1/1 videobuf2: Add VIDEOBUF2_V4L2 Kconfig option for videobuf2 V4L2 part
Videobuf2 is now separate from V4L2 and can be now built without it, at least in principle --- enabling videobuf2 in kernel configuration attempts to compile videobuf2-v4l2.c but that will fail if CONFIG_VIDEO_V4L2 isn't enabled.
Solve this by adding a separate Kconfig option for videobuf2-v4l2 and make it a separate module as well. This means that drivers now need to choose both the appropriate videobuf2 memory type (VIDEOBUF2_{VMALLOC,DMA_CONTIG,DMA_SG}) and VIDEOBUF2_V4L2 if they need both.
---
Hi Mauro,
I'm proposing to merge this as it fixes build errors. We can later in rework the Kconfig options; the rework isn't related to fixing the build errors in general but rather is a change in the approach used to manage dependencies. Let's discuss that on #v4l.
since v1:
- Select VIDEOBUF2_V4L2 if both VIDEO_V4L2 and VIDEOBUF2_CORE are selected. This way the patch no longer requires changing Kconfig entries for effectively all drivers. In certain rare configurations (V4L2 and VIDEOBUF2 are enabled but no V4L2 driver uses VIDEOBUF2) VIDEOBUF2_V4L2 could be enabled without it being needed. This is not really an issue though.
drivers/media/common/videobuf2/Kconfig | 3 +++ drivers/media/common/videobuf2/Makefile | 3 ++- drivers/media/v4l2-core/Kconfig | 1 + 3 files changed, 6 insertions(+), 1 deletion(-)
drivers/media/common/videobuf2/Kconfig +3 -0
@@ -3,6 +3,9 @@ config VIDEOBUF2_CORE select DMA_SHARED_BUFFER tristate +config VIDEOBUF2_V4L2 + tristate + config VIDEOBUF2_MEMOPS tristate select FRAME_VECTOR
drivers/media/common/videobuf2/Makefile +2 -1
@@ -1,5 +1,6 @@ -obj-$(CONFIG_VIDEOBUF2_CORE) += videobuf2-core.o videobuf2-v4l2.o +obj-$(CONFIG_VIDEOBUF2_CORE) += videobuf2-core.o +obj-$(CONFIG_VIDEOBUF2_V4L2) += videobuf2-v4l2.o obj-$(CONFIG_VIDEOBUF2_MEMOPS) += videobuf2-memops.o obj-$(CONFIG_VIDEOBUF2_VMALLOC) += videobuf2-vmalloc.o obj-$(CONFIG_VIDEOBUF2_DMA_CONTIG) += videobuf2-dma-contig.o
drivers/media/v4l2-core/Kconfig +1 -0
@@ -7,6 +7,7 @@ config VIDEO_V4L2 tristate depends on (I2C || I2C=n) && VIDEO_DEV select RATIONAL + select VIDEOBUF2_V4L2 if VIDEOBUF2_CORE default (I2C || I2C=n) && VIDEO_DEV config VIDEO_ADV_DEBUG
Signature · 1 line
2.11.0
Hi Sakari,
Thank you for the patch.
Quoted 67 lines · On Friday, 23 February 2018 10:29:46 EET Sakari Ailus wrote:
Videobuf2 is now separate from V4L2 and can be now built without it, at least in principle --- enabling videobuf2 in kernel configuration attempts to compile
videobuf2-v4l2.cbut that will fail ifCONFIG_VIDEO_V4L2isn't enabled.Solve this by adding a separate
Kconfigoption for videobuf2-v4l2 and make it a separate module as well. This means that drivers now need to choose both the appropriate videobuf2 memory type (VIDEOBUF2_{VMALLOC,DMA_CONTIG,DMA_SG}) andVIDEOBUF2_V4L2if they need both.Signed-off-by Sakari Ailus <[email protected]>---
Hi Mauro,I'm proposing to merge this as it fixes build errors. We can later in rework the
Kconfigoptions; the rework isn't related to fixing the build errors in general but rather is a change in the approach used to manage dependencies. Let's discuss that on #v4l.since v1:
- Select
VIDEOBUF2_V4L2if bothVIDEO_V4L2andVIDEOBUF2_COREare selected. This way the patch no longer requires changingKconfigentries for effectively all drivers. In certain rare configurations (V4L2 and VIDEOBUF2 are enabled but no V4L2 driver uses VIDEOBUF2)VIDEOBUF2_V4L2could be enabled without it being needed. This is not really an issue though.drivers/media/common/videobuf2/Kconfig | 3 +++ drivers/media/common/videobuf2/Makefile | 3 ++- drivers/media/v4l2-core/Kconfig | 1 + 3 files changed, 6 insertions(+), 1 deletion(-)(quoted diff) +0
-0b/drivers/media/common/videobuf2/Kconfig index
5df05250de94..17c32ea58395100644drivers/media/common/videobuf2/Kconfig +3
-0@@ -3,6 +3,9 @@ config VIDEOBUF2_CORE select DMA_SHARED_BUFFER tristate +config VIDEOBUF2_V4L2 + tristate + config VIDEOBUF2_MEMOPS tristate select FRAME_VECTOR(quoted diff) +0
-0b/drivers/media/common/videobuf2/Makefile index
19de5ccda20b..7e27bdd44dcc100644drivers/media/common/videobuf2/Makefile +2
-1@@ -1,5 +1,6 @@ -obj-$(CONFIG_VIDEOBUF2_CORE) += videobuf2-core.o videobuf2-v4l2.o +obj-$(CONFIG_VIDEOBUF2_CORE) += videobuf2-core.o +obj-$(CONFIG_VIDEOBUF2_V4L2) += videobuf2-v4l2.o obj-$(CONFIG_VIDEOBUF2_MEMOPS) += videobuf2-memops.o obj-$(CONFIG_VIDEOBUF2_VMALLOC) += videobuf2-vmalloc.o obj-$(CONFIG_VIDEOBUF2_DMA_CONTIG) += videobuf2-dma-contig.o(quoted diff) +0
-0b/drivers/media/v4l2-core/Kconfig index
bf52fbd07aed..8e37e7c5e0f7100644
drivers/media/v4l2-core/Kconfig config VIDEO_V4L2 · line 11
Quoted 5 lines
drivers/media/v4l2-core/Kconfig +1
-0@@ -7,6 +7,7 @@ config VIDEO_V4L2 tristate depends on (I2C || I2C=n) && VIDEO_DEV select RATIONAL + select VIDEOBUF2_V4L2 if VIDEOBUF2_CORE default (I2C || I2C=n) && VIDEO_DEV
I thought that if VIDEO_V4L2=y and VIDEOBUF2_CORE=m, this would set VIDEOBUF2_V4L2=y, but testing the patch proved me wrong.
Quoted 2 lines
drivers/media/v4l2-core/Kconfig +0
-0config VIDEO_ADV_DEBUG
Signature · 3 lines
Regards, Laurent Pinchart
Quoted 5 lines · Sakari Ailus
Videobuf2 is now separate from V4L2 and can be now built without it, at least in principle --- enabling videobuf2 in kernel configuration attempts to compile
videobuf2-v4l2.cbut that will fail ifCONFIG_VIDEO_V4L2isn't enabled.
Quoted 7 lines
Solve this by adding a separate
Kconfigoption for videobuf2-v4l2 and make it a separate module as well. This means that drivers now need to choose both the appropriate videobuf2 memory type (VIDEOBUF2_{VMALLOC,DMA_CONTIG,DMA_SG}) andVIDEOBUF2_V4L2if they need both.Signed-off-by Sakari Ailus <[email protected]>
Thanks!
Hans
Quoted 61 lines
---
Hi Mauro,I'm proposing to merge this as it fixes build errors. We can later in rework the
Kconfigoptions; the rework isn't related to fixing the build errors in general but rather is a change in the approach used to manage dependencies. Let's discuss that on #v4l.since v1:
- Select
VIDEOBUF2_V4L2if bothVIDEO_V4L2andVIDEOBUF2_COREare selected. This way the patch no longer requires changingKconfigentries for effectively all drivers. In certain rare configurations (V4L2 and VIDEOBUF2 are enabled but no V4L2 driver uses VIDEOBUF2)VIDEOBUF2_V4L2could be enabled without it being needed. This is not really an issue though.drivers/media/common/videobuf2/Kconfig | 3 +++ drivers/media/common/videobuf2/Makefile | 3 ++- drivers/media/v4l2-core/Kconfig | 1 + 3 files changed, 6 insertions(+), 1 deletion(-)drivers/media/common/videobuf2/Kconfig +3
-0@@ -3,6 +3,9 @@ config VIDEOBUF2_CORE select DMA_SHARED_BUFFER tristate +config VIDEOBUF2_V4L2 + tristate + config VIDEOBUF2_MEMOPS tristate select FRAME_VECTORdrivers/media/common/videobuf2/Makefile +2
-1@@ -1,5 +1,6 @@ -obj-$(CONFIG_VIDEOBUF2_CORE) += videobuf2-core.o videobuf2-v4l2.o +obj-$(CONFIG_VIDEOBUF2_CORE) += videobuf2-core.o +obj-$(CONFIG_VIDEOBUF2_V4L2) += videobuf2-v4l2.o obj-$(CONFIG_VIDEOBUF2_MEMOPS) += videobuf2-memops.o obj-$(CONFIG_VIDEOBUF2_VMALLOC) += videobuf2-vmalloc.o obj-$(CONFIG_VIDEOBUF2_DMA_CONTIG) += videobuf2-dma-contig.odrivers/media/v4l2-core/Kconfig +1
-0@@ -7,6 +7,7 @@ config VIDEO_V4L2 tristate depends on (I2C || I2C=n) && VIDEO_DEV select RATIONAL + select VIDEOBUF2_V4L2 if VIDEOBUF2_CORE default (I2C || I2C=n) && VIDEO_DEV config VIDEO_ADV_DEBUG