Skip to contentSkip to conversation

videobuf2: Add VIDEOBUF2_V4L2 Kconfig option for videobuf2 V4L2 part

PATCH In review Sakari Ailus 3 participants 3 messages Feb 23, 2018

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

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
index 5df05250de94..17c32ea58395 100644
@@ -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
index 19de5ccda20b..7e27bdd44dcc 100644
@@ -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
index bf52fbd07aed..8e37e7c5e0f7 100644
@@ -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
Tested-by Reviewed-by on v2 1/1
#1 lore raw

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.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(-)
(quoted diff) +0 -0

b/drivers/media/common/videobuf2/Kconfig index 5df05250de94..17c32ea58395 100644

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
(quoted diff) +0 -0

b/drivers/media/common/videobuf2/Makefile index 19de5ccda20b..7e27bdd44dcc 100644

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
(quoted diff) +0 -0

b/drivers/media/v4l2-core/Kconfig index bf52fbd07aed..8e37e7c5e0f7 100644

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 -0
 config VIDEO_ADV_DEBUG
Signature · 3 lines
Regards,

Laurent Pinchart
Acked-by on v2 1/1
#2 lore raw
In reply to Sakari Ailus
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.c but that will fail if CONFIG_VIDEO_V4L2 isn't enabled.

Quoted 7 lines

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.

Thanks!

Hans

Quoted 61 lines

---
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
index 5df05250de94..17c32ea58395 100644
@@ -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
index 19de5ccda20b..7e27bdd44dcc 100644
@@ -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
index bf52fbd07aed..8e37e7c5e0f7 100644
@@ -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