Em Mon, 14 Mar 2022 16:07:45 +0100 Jacopo Mondi <jacopo@xxxxxxxxxx> escreveu: > Hi Mauro > > 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. > > > > Suggested-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx> > > Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxx> > > --- > > 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(-) > > > > diff --git a/drivers/input/rmi4/Kconfig b/drivers/input/rmi4/Kconfig > > index 16119f760d11..c0163b983ce6 100644 > > --- a/drivers/input/rmi4/Kconfig > > +++ b/drivers/input/rmi4/Kconfig > > @@ -110,7 +110,7 @@ config RMI4_F3A > > > > config RMI4_F54 > > bool "RMI4 Function 54 (Analog diagnostics)" > > - depends on VIDEO_V4L2=y || (RMI4_CORE=m && VIDEO_V4L2=m) > > + depends on VIDEO_DEV=y || (RMI4_CORE=m && VIDEO_DEV=m) > > select VIDEOBUF2_VMALLOC > > select RMI4_F55 > > help > > diff --git a/drivers/input/touchscreen/Kconfig b/drivers/input/touchscreen/Kconfig > > index 2f6adfb7b938..ff7794cecf69 100644 > > --- a/drivers/input/touchscreen/Kconfig > > +++ b/drivers/input/touchscreen/Kconfig > > @@ -131,7 +131,7 @@ config TOUCHSCREEN_ATMEL_MXT > > config TOUCHSCREEN_ATMEL_MXT_T37 > > bool "Support T37 Diagnostic Data" > > depends on TOUCHSCREEN_ATMEL_MXT > > - depends on VIDEO_V4L2=y || (TOUCHSCREEN_ATMEL_MXT=m && VIDEO_V4L2=m) > > + depends on VIDEO_DEV=y || (TOUCHSCREEN_ATMEL_MXT=m && VIDEO_DEV=m) > > select VIDEOBUF2_VMALLOC > > help > > Say Y here if you want support to output data from the T37 > > @@ -1252,7 +1252,7 @@ config TOUCHSCREEN_SUN4I > > config TOUCHSCREEN_SUR40 > > tristate "Samsung SUR40 (Surface 2.0/PixelSense) touchscreen" > > depends on USB && MEDIA_USB_SUPPORT && HAS_DMA > > - depends on VIDEO_V4L2 > > + depends on VIDEO_DEV > > select VIDEOBUF2_DMA_SG > > help > > Say Y here if you want support for the Samsung SUR40 touchscreen > > diff --git a/drivers/media/Kconfig b/drivers/media/Kconfig > > index 01b536863657..2d02d9a44b94 100644 > > --- a/drivers/media/Kconfig > > +++ b/drivers/media/Kconfig > > @@ -160,6 +160,9 @@ menu "Media core support" > > config VIDEO_DEV > > tristate "Video4Linux core" > > default MEDIA_CAMERA_SUPPORT || MEDIA_ANALOG_TV_SUPPORT || MEDIA_RADIO_SUPPORT || MEDIA_SDR_SUPPORT || MEDIA_PLATFORM_SUPPORT || MEDIA_TEST_SUPPORT > > + depends on (I2C || I2C=n) > > Is this I2C || I2C=n intentional ? Yes. See, I2C is a tristate, so, the above evaluates to: if I2C=n => no dependency at I2C If I2C is either "M" or "Y" config VIDEO_DEV depends on I2C. That's the way to tell the build system that, if I2C is compiled as "M", VIDEO_DEV can't be compiled as "Y". > > > + select RATIONAL > > + select VIDEOBUF2_V4L2 if VIDEOBUF2_CORE > > help > > Enables the V4L2 API, used by cameras, analog TV, video grabbers, > > radio devices and by some input devices. > > diff --git a/drivers/media/common/saa7146/Kconfig b/drivers/media/common/saa7146/Kconfig > > index 3e85c0c3fd9a..a0aa155e5d85 100644 > > --- a/drivers/media/common/saa7146/Kconfig > > +++ b/drivers/media/common/saa7146/Kconfig > > @@ -5,6 +5,6 @@ config VIDEO_SAA7146 > > > > config VIDEO_SAA7146_VV > > tristate > > - depends on VIDEO_V4L2 > > + depends on VIDEO_DEV > > select VIDEOBUF_DMA_SG > > select VIDEO_SAA7146 > > diff --git a/drivers/media/dvb-core/Kconfig b/drivers/media/dvb-core/Kconfig > > index 6ffac618417b..8b3f2d53cd62 100644 > > --- a/drivers/media/dvb-core/Kconfig > > +++ b/drivers/media/dvb-core/Kconfig > > @@ -6,7 +6,7 @@ > > config DVB_MMAP > > bool "Enable DVB memory-mapped API (EXPERIMENTAL)" > > depends on DVB_CORE > > - depends on VIDEO_V4L2=y || VIDEO_V4L2=DVB_CORE > > + depends on VIDEO_DEV=y || VIDEO_DEV=DVB_CORE > > select VIDEOBUF2_VMALLOC > > help > > This option enables DVB experimental memory-mapped API, which > > diff --git a/drivers/media/dvb-frontends/Kconfig b/drivers/media/dvb-frontends/Kconfig > > index 2c1ed98d43c5..4101f9b1e731 100644 > > --- a/drivers/media/dvb-frontends/Kconfig > > +++ b/drivers/media/dvb-frontends/Kconfig > > @@ -510,7 +510,7 @@ config DVB_RTL2832 > > > > config DVB_RTL2832_SDR > > tristate "Realtek RTL2832 SDR" > > - depends on DVB_CORE && I2C && I2C_MUX && VIDEO_V4L2 && MEDIA_SDR_SUPPORT && USB > > + depends on DVB_CORE && I2C && I2C_MUX && VIDEO_DEV && MEDIA_SDR_SUPPORT && USB > > select DVB_RTL2832 > > select VIDEOBUF2_VMALLOC > > default m if !MEDIA_SUBDRV_AUTOSELECT > > @@ -681,7 +681,7 @@ config DVB_AU8522_DTV > > > > config DVB_AU8522_V4L > > tristate "Auvitek AU8522 based ATV demod" > > - depends on VIDEO_V4L2 && DVB_CORE && I2C > > + depends on VIDEO_DEV && DVB_CORE && I2C > > select DVB_AU8522 > > default m if !MEDIA_SUBDRV_AUTOSELECT > > help > > diff --git a/drivers/media/i2c/Kconfig b/drivers/media/i2c/Kconfig > > index e7194c1be4d2..5abc169f0a5c 100644 > > --- a/drivers/media/i2c/Kconfig > > +++ b/drivers/media/i2c/Kconfig > > @@ -3,7 +3,7 @@ > > # Multimedia Video device configuration > > # > > > > -if VIDEO_V4L2 > > +if VIDEO_DEV > > > > comment "IR I2C driver auto-selected by 'Autoselect ancillary drivers'" > > depends on MEDIA_SUBDRV_AUTOSELECT && I2C && RC_CORE > > @@ -36,7 +36,7 @@ menu "Audio decoders, processors and mixers" > > > > config VIDEO_TVAUDIO > > tristate "Simple audio decoder chips" > > - depends on VIDEO_V4L2 && I2C > > + depends on VIDEO_DEV && I2C > > Are there symbols in drivers/media/i2c that do not depend on I2C ? > Could we make the menu conditional on I2C presence ? It shouldn't have any, but simplifying it is outside the scope of this patch. > > > help > > Support for several audio decoder chips found on some bt8xx boards: > > Philips: tda9840, tda9873h, tda9874h/a, tda9850, tda985x, tea6300, > > @@ -48,7 +48,7 @@ config VIDEO_TVAUDIO > > [snip] > > > @@ -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 > > Double VIDEO_DEV > > > 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 > > Same here > > > select VIDEOBUF2_DMA_SG > > help > > Support for Techwell tw68xx based frame grabber boards. > > [snip] > > > diff --git a/drivers/media/platform/amphion/Kconfig b/drivers/media/platform/amphion/Kconfig > > index 13899649f766..e9ddca7a9e4a 100644 > > --- a/drivers/media/platform/amphion/Kconfig > > +++ b/drivers/media/platform/amphion/Kconfig > > @@ -5,7 +5,7 @@ config VIDEO_AMPHION_VPU > > depends on ARCH_MXC || COMPILE_TEST > > depends on MEDIA_SUPPORT > > depends on VIDEO_DEV > > - depends on VIDEO_V4L2 > > + depends on VIDEO_DEV > > VIDEO_DEV already listed > > > select MEDIA_CONTROLLER > > select V4L2_MEM2MEM_DEV > > select VIDEOBUF2_DMA_CONTIG > > [snip] > > > > > -if RADIO_ADAPTERS && VIDEO_V4L2 > > +if RADIO_ADAPTERS && VIDEO_DEV > > > > config RADIO_TEA575X > > tristate > > @@ -20,13 +20,13 @@ source "drivers/media/radio/si470x/Kconfig" > > > > config RADIO_SI4713 > > tristate "Silicon Labs Si4713 FM Radio with RDS Transmitter support" > > - depends on VIDEO_V4L2 > > + depends on VIDEO_DEV > > Isn't this menu section already conditional to VIDEO_DEV Yes. I'll drop those extra dependencies on this file. > > [snip] > > With the above minors fixed > > Reviewed-by: Jacopo Mondi <jacopo@xxxxxxxxxx> > > Thanks > j Thanks, Mauro