Thread (2 messages) 2 messages, 2 authors, 2022-03-13

Re: [PATCH] media: Kconfig: cleanup VIDEO_DEV dependencies

flat view

From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Date: 2022-03-13 11:59:33
Also in: alsa-devel, linux-arm-kernel, linux-media, linux-staging, linux-usb, lkml

Hi Mauro,

Thank you for the patch.

Trimming the CC list to keep a few mailing lists only.

On Sun, Mar 13, 2022 at 08:12:05AM +0100, Mauro Carvalho Chehab wrote:
media Kconfig has two entries associated to V4L API:
VIDEO_DEV and VIDEO_V4L2.

On Kernel 2.6.x, there were two V4L APIs, each one with its own flag.
VIDEO_DEV were meant to:
	1) enable Video4Linux and make its Kconfig options to appear;
	2) it makes the Kernel build the V4L core.

while VIDEO_V4L2 where used to distinguish between drivers that
implement the newer API and drivers that implemented the former one.

With time, such meaning changed, specially after the removal of
all V4L version 1 drivers.

At the current implementation, VIDEO_DEV only does (1): it enables
the media options related to V4L, that now has:

	menu "Video4Linux options"
		visible if VIDEO_DEV

	source "drivers/media/v4l2-core/Kconfig"
	endmenu

but it doesn't affect anymore the V4L core drivers.

The rationale is that the V4L2 core has a "soft" dependency
at the I2C bus, and now requires to select a number of other
Kconfig options:

	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

In the past, merging them would be tricky, but it seems that it is now
possible to merge those symbols, in order to simplify V4L dependencies.

Let's keep VIDEO_DEV, as this one is used on some make *defconfig
configurations.
I would have gone for VIDEO_V4L2, but if it makes configuration changes
easier to handle, VIDEO_DEV is fine with me too.
Suggested-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
---
 drivers/input/rmi4/Kconfig                    |   2 +-
 drivers/input/touchscreen/Kconfig             |   4 +-
 drivers/media/Kconfig                         |   3 +
 drivers/media/common/saa7146/Kconfig          |   2 +-
 drivers/media/dvb-core/Kconfig                |   2 +-
 drivers/media/dvb-frontends/Kconfig           |   4 +-
 drivers/media/i2c/Kconfig                     | 250 +++++++++---------
 drivers/media/i2c/ccs/Kconfig                 |   2 +-
 drivers/media/i2c/cx25840/Kconfig             |   2 +-
 drivers/media/i2c/et8ek8/Kconfig              |   2 +-
 drivers/media/i2c/m5mols/Kconfig              |   2 +-
 drivers/media/pci/Kconfig                     |   2 +-
 drivers/media/pci/bt8xx/Kconfig               |   2 +-
 drivers/media/pci/cobalt/Kconfig              |   2 +-
 drivers/media/pci/cx18/Kconfig                |   2 +-
 drivers/media/pci/dt3155/Kconfig              |   2 +-
 drivers/media/pci/intel/ipu3/Kconfig          |   2 +-
 drivers/media/pci/ivtv/Kconfig                |   2 +-
 drivers/media/pci/meye/Kconfig                |   2 +-
 drivers/media/pci/saa7146/Kconfig             |   6 +-
 drivers/media/pci/sta2x11/Kconfig             |   2 +-
 drivers/media/pci/tw5864/Kconfig              |   2 +-
 drivers/media/pci/tw68/Kconfig                |   2 +-
 drivers/media/pci/tw686x/Kconfig              |   2 +-
 drivers/media/platform/Kconfig                |   6 +-
 drivers/media/platform/allegro-dvt/Kconfig    |   2 +-
 drivers/media/platform/am437x/Kconfig         |   2 +-
 drivers/media/platform/amphion/Kconfig        |   2 +-
 drivers/media/platform/aspeed/Kconfig         |   2 +-
 drivers/media/platform/atmel/Kconfig          |   8 +-
 drivers/media/platform/cadence/Kconfig        |   4 +-
 drivers/media/platform/coda/Kconfig           |   2 +-
 drivers/media/platform/davinci/Kconfig        |  12 +-
 drivers/media/platform/exynos-gsc/Kconfig     |   2 +-
 drivers/media/platform/exynos4-is/Kconfig     |   2 +-
 drivers/media/platform/intel/Kconfig          |   2 +-
 drivers/media/platform/marvell-ccic/Kconfig   |   4 +-
 drivers/media/platform/meson/ge2d/Kconfig     |   2 +-
 drivers/media/platform/mtk-jpeg/Kconfig       |   2 +-
 drivers/media/platform/mtk-mdp/Kconfig        |   2 +-
 drivers/media/platform/mtk-vcodec/Kconfig     |   2 +-
 drivers/media/platform/mtk-vpu/Kconfig        |   2 +-
 drivers/media/platform/nxp/Kconfig            |   8 +-
 drivers/media/platform/nxp/imx-jpeg/Kconfig   |   2 +-
 drivers/media/platform/omap/Kconfig           |   2 +-
 drivers/media/platform/omap3isp/Kconfig       |   2 +-
 drivers/media/platform/qcom/camss/Kconfig     |   2 +-
 drivers/media/platform/qcom/venus/Kconfig     |   2 +-
 drivers/media/platform/renesas/Kconfig        |  12 +-
 .../media/platform/renesas/rcar-vin/Kconfig   |   4 +-
 drivers/media/platform/rockchip/rga/Kconfig   |   2 +-
 .../media/platform/rockchip/rkisp1/Kconfig    |   2 +-
 drivers/media/platform/s3c-camif/Kconfig      |   2 +-
 drivers/media/platform/s5p-g2d/Kconfig        |   2 +-
 drivers/media/platform/s5p-jpeg/Kconfig       |   2 +-
 drivers/media/platform/s5p-mfc/Kconfig        |   2 +-
 drivers/media/platform/sti/bdisp/Kconfig      |   2 +-
 drivers/media/platform/sti/delta/Kconfig      |   2 +-
 drivers/media/platform/sti/hva/Kconfig        |   2 +-
 drivers/media/platform/stm32/Kconfig          |   4 +-
 .../media/platform/sunxi/sun4i-csi/Kconfig    |   2 +-
 .../media/platform/sunxi/sun6i-csi/Kconfig    |   2 +-
 drivers/media/platform/sunxi/sun8i-di/Kconfig |   2 +-
 .../media/platform/sunxi/sun8i-rotate/Kconfig |   2 +-
 drivers/media/platform/tegra/vde/Kconfig      |   2 +-
 drivers/media/platform/ti-vpe/Kconfig         |   4 +-
 drivers/media/platform/via/Kconfig            |   2 +-
 drivers/media/platform/xilinx/Kconfig         |   2 +-
 drivers/media/radio/Kconfig                   |  54 ++--
 drivers/media/radio/si470x/Kconfig            |   2 +-
 drivers/media/radio/wl128x/Kconfig            |   2 +-
 drivers/media/spi/Kconfig                     |   4 +-
 drivers/media/test-drivers/Kconfig            |   2 +-
 drivers/media/test-drivers/vicodec/Kconfig    |   2 +-
 drivers/media/test-drivers/vimc/Kconfig       |   2 +-
 drivers/media/test-drivers/vivid/Kconfig      |   2 +-
 drivers/media/tuners/Kconfig                  |   6 +-
 drivers/media/tuners/e4000.c                  |   6 +-
 drivers/media/tuners/fc2580.c                 |   6 +-
 drivers/media/usb/airspy/Kconfig              |   2 +-
 drivers/media/usb/au0828/Kconfig              |   6 +-
 drivers/media/usb/cpia2/Kconfig               |   2 +-
 drivers/media/usb/dvb-usb-v2/Kconfig          |   8 +-
 drivers/media/usb/dvb-usb/Kconfig             |   4 +-
 drivers/media/usb/gspca/Kconfig               |  96 +++----
 drivers/media/usb/gspca/gl860/Kconfig         |   2 +-
 drivers/media/usb/gspca/m5602/Kconfig         |   2 +-
 drivers/media/usb/hackrf/Kconfig              |   2 +-
 drivers/media/usb/hdpvr/Kconfig               |   2 +-
 drivers/media/usb/msi2500/Kconfig             |   2 +-
 drivers/media/usb/pvrusb2/Kconfig             |   2 +-
 drivers/media/usb/pwc/Kconfig                 |   2 +-
 drivers/media/usb/s2255/Kconfig               |   2 +-
 drivers/media/usb/stkwebcam/Kconfig           |   2 +-
 drivers/media/usb/usbtv/Kconfig               |   2 +-
 drivers/media/usb/uvc/Kconfig                 |   2 +-
 drivers/media/usb/zr364xx/Kconfig             |   2 +-
 drivers/media/v4l2-core/Kconfig               |  12 +-
 drivers/media/v4l2-core/Makefile              |   2 +-
 drivers/staging/media/atomisp/Kconfig         |   2 +-
 drivers/staging/media/atomisp/i2c/Kconfig     |  14 +-
 drivers/staging/media/hantro/Kconfig          |   2 +-
 drivers/staging/media/imx/Kconfig             |   2 +-
 drivers/staging/media/ipu3/Kconfig            |   2 +-
 drivers/staging/media/max96712/Kconfig        |   2 +-
 drivers/staging/media/meson/vdec/Kconfig      |   2 +-
 drivers/staging/media/omap4iss/Kconfig        |   2 +-
 drivers/staging/media/rkvdec/Kconfig          |   2 +-
 drivers/staging/media/sunxi/cedrus/Kconfig    |   2 +-
 drivers/staging/media/tegra-video/Kconfig     |   2 +-
 drivers/staging/media/zoran/Kconfig           |   2 +-
 drivers/staging/most/video/Kconfig            |   2 +-
 .../vc04_services/bcm2835-camera/Kconfig      |   2 +-
 drivers/usb/gadget/Kconfig                    |   2 +-
 drivers/usb/gadget/legacy/Kconfig             |   2 +-
 sound/pci/Kconfig                             |   4 +-
 116 files changed, 363 insertions(+), 368 deletions(-)
[snip]
quoted hunk
diff --git a/drivers/media/pci/tw5864/Kconfig b/drivers/media/pci/tw5864/Kconfig
index d376d4ed65b9..0a0f3191f238 100644
--- a/drivers/media/pci/tw5864/Kconfig
+++ b/drivers/media/pci/tw5864/Kconfig
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0-only
 config VIDEO_TW5864
 	tristate "Techwell TW5864 video/audio grabber and encoder"
-	depends on VIDEO_DEV && PCI && VIDEO_V4L2
+	depends on VIDEO_DEV && PCI && VIDEO_DEV
You can drop the second VIDEO_DEV.
quoted hunk
 	select VIDEOBUF2_DMA_CONTIG
 	help
 	  Support for boards based on Techwell TW5864 chip which provides
diff --git a/drivers/media/pci/tw68/Kconfig b/drivers/media/pci/tw68/Kconfig
index af0cb60337bb..ef29be7db493 100644
--- a/drivers/media/pci/tw68/Kconfig
+++ b/drivers/media/pci/tw68/Kconfig
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0-only
 config VIDEO_TW68
 	tristate "Techwell tw68x Video For Linux"
-	depends on VIDEO_DEV && PCI && VIDEO_V4L2
+	depends on VIDEO_DEV && PCI && VIDEO_DEV
Here too.

Apart from that, the patch looks good to me.

Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

I have however not evaluated the impact it will have on make oldconfig.
 	select VIDEOBUF2_DMA_SG
 	help
 	  Support for Techwell tw68xx based frame grabber boards.
[snip]

-- 
Regards,

Laurent Pinchart
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help