2020-03-24 13:44:34

by Mauro Carvalho Chehab

[permalink] [raw]
Subject: [PATCH v2 00/20] Reorganize media Kconfig

This patch series do lots of reorg at the media Kconfig options.
It also move test drivers from platform dir to a new one.

After this change, the main config is organized on menus, allowing to
select:

- type of devices selection - the filtering options
- Media core options - with API and other core stuff
- Media core extra options
- Media drivers
- Media ancillary drivers

The "type of devices" menu has the filtering options for:

- Cameras and video grabbers
- Analog TV
- Digital TV
- AM/FM radio receivers/transmitters
- SDR
- CEC
- Embeded devices (SoC)
- Test drivers

This way, one interested only on embedded devices can unselect
everything but "Embedded devices (SoC)" option.

Distros for PC/Laptops can enable everything but
"Embedded devices (SoC)" and "Test drivers".

Users can select just what they want, without bothering with
hundreds of options that he won't have any clue about their
meanings.

Mauro Carvalho Chehab (20):
media: dvb-usb: auto-select CYPRESS_FIRMWARE
media: Kconfig: not all V4L2 platform drivers are for camera
media: pci: move VIDEO_PCI_SKELETON to a different Kconfig
media: reorganize the drivers menu options
media: Kconfig: update the MEDIA_SUPPORT help message
media: Kconfig: use a sub-menu to select supported devices
media: Kconfig: add an option to filter in/out the embedded drivers
media: split test drivers from platform directory
media: Kconfig: make filtering devices optional
media: Kconfig: move CEC-specific options to cec/Kconfig
media: Kconfig: move comment to siano include
media: Kconfig: move DVB-specific options to dvb-core/Kconfig
media: Kconfig: move V4L2 subdev API to v4l2-core/Kconfig
media: Kconfig: move drivers-specific TTPCI_EEPROM Kconfig var
media: Kconfig: move media controller core select to main Kconfig
media: Kconfig: better organize menu items
media: Kconfig: mode firewire comment to firewire/Kconfig
media: Kconfig: place all options under a sub-menu
media: Kconfig: move the position of sub-driver autoselection
media: Kconfig: on !EMBEDDED && !EXPERT, enable driver filtering

drivers/media/Kconfig | 216 ++++++++++--------
drivers/media/cec/Kconfig | 10 +
drivers/media/common/Kconfig | 2 +-
drivers/media/dvb-core/Kconfig | 26 +++
drivers/media/firewire/Kconfig | 5 +-
drivers/media/mc/Kconfig | 9 -
drivers/media/mmc/Kconfig | 1 -
drivers/media/mmc/siano/Kconfig | 2 +
drivers/media/pci/Kconfig | 10 +
drivers/media/platform/Kconfig | 24 --
drivers/media/platform/Makefile | 5 -
drivers/media/test_drivers/Kconfig | 28 +++
drivers/media/test_drivers/Makefile | 9 +
.../vicodec/Kconfig | 0
.../vicodec/Makefile | 0
.../vicodec/codec-fwht.c | 0
.../vicodec/codec-fwht.h | 0
.../vicodec/codec-v4l2-fwht.c | 0
.../vicodec/codec-v4l2-fwht.h | 0
.../vicodec/vicodec-core.c | 0
.../media/{platform => test_drivers}/vim2m.c | 0
.../{platform => test_drivers}/vimc/Kconfig | 0
.../{platform => test_drivers}/vimc/Makefile | 0
.../vimc/vimc-capture.c | 0
.../vimc/vimc-common.c | 0
.../vimc/vimc-common.h | 0
.../vimc/vimc-core.c | 0
.../vimc/vimc-debayer.c | 0
.../vimc/vimc-scaler.c | 0
.../vimc/vimc-sensor.c | 0
.../vimc/vimc-streamer.c | 0
.../vimc/vimc-streamer.h | 0
.../{platform => test_drivers}/vivid/Kconfig | 0
.../{platform => test_drivers}/vivid/Makefile | 0
.../vivid/vivid-cec.c | 0
.../vivid/vivid-cec.h | 0
.../vivid/vivid-core.c | 0
.../vivid/vivid-core.h | 0
.../vivid/vivid-ctrls.c | 0
.../vivid/vivid-ctrls.h | 0
.../vivid/vivid-kthread-cap.c | 0
.../vivid/vivid-kthread-cap.h | 0
.../vivid/vivid-kthread-out.c | 0
.../vivid/vivid-kthread-out.h | 0
.../vivid/vivid-kthread-touch.c | 0
.../vivid/vivid-kthread-touch.h | 0
.../vivid/vivid-meta-cap.c | 0
.../vivid/vivid-meta-cap.h | 0
.../vivid/vivid-meta-out.c | 0
.../vivid/vivid-meta-out.h | 0
.../vivid/vivid-osd.c | 0
.../vivid/vivid-osd.h | 0
.../vivid/vivid-radio-common.c | 0
.../vivid/vivid-radio-common.h | 0
.../vivid/vivid-radio-rx.c | 0
.../vivid/vivid-radio-rx.h | 0
.../vivid/vivid-radio-tx.c | 0
.../vivid/vivid-radio-tx.h | 0
.../vivid/vivid-rds-gen.c | 0
.../vivid/vivid-rds-gen.h | 0
.../vivid/vivid-sdr-cap.c | 0
.../vivid/vivid-sdr-cap.h | 0
.../vivid/vivid-touch-cap.c | 0
.../vivid/vivid-touch-cap.h | 0
.../vivid/vivid-vbi-cap.c | 0
.../vivid/vivid-vbi-cap.h | 0
.../vivid/vivid-vbi-gen.c | 0
.../vivid/vivid-vbi-gen.h | 0
.../vivid/vivid-vbi-out.c | 0
.../vivid/vivid-vbi-out.h | 0
.../vivid/vivid-vid-cap.c | 0
.../vivid/vivid-vid-cap.h | 0
.../vivid/vivid-vid-common.c | 0
.../vivid/vivid-vid-common.h | 0
.../vivid/vivid-vid-out.c | 0
.../vivid/vivid-vid-out.h | 0
drivers/media/usb/Kconfig | 6 +
drivers/media/usb/dvb-usb/Kconfig | 1 +
drivers/media/v4l2-core/Kconfig | 19 +-
79 files changed, 222 insertions(+), 151 deletions(-)
create mode 100644 drivers/media/test_drivers/Kconfig
create mode 100644 drivers/media/test_drivers/Makefile
rename drivers/media/{platform => test_drivers}/vicodec/Kconfig (100%)
rename drivers/media/{platform => test_drivers}/vicodec/Makefile (100%)
rename drivers/media/{platform => test_drivers}/vicodec/codec-fwht.c (100%)
rename drivers/media/{platform => test_drivers}/vicodec/codec-fwht.h (100%)
rename drivers/media/{platform => test_drivers}/vicodec/codec-v4l2-fwht.c (100%)
rename drivers/media/{platform => test_drivers}/vicodec/codec-v4l2-fwht.h (100%)
rename drivers/media/{platform => test_drivers}/vicodec/vicodec-core.c (100%)
rename drivers/media/{platform => test_drivers}/vim2m.c (100%)
rename drivers/media/{platform => test_drivers}/vimc/Kconfig (100%)
rename drivers/media/{platform => test_drivers}/vimc/Makefile (100%)
rename drivers/media/{platform => test_drivers}/vimc/vimc-capture.c (100%)
rename drivers/media/{platform => test_drivers}/vimc/vimc-common.c (100%)
rename drivers/media/{platform => test_drivers}/vimc/vimc-common.h (100%)
rename drivers/media/{platform => test_drivers}/vimc/vimc-core.c (100%)
rename drivers/media/{platform => test_drivers}/vimc/vimc-debayer.c (100%)
rename drivers/media/{platform => test_drivers}/vimc/vimc-scaler.c (100%)
rename drivers/media/{platform => test_drivers}/vimc/vimc-sensor.c (100%)
rename drivers/media/{platform => test_drivers}/vimc/vimc-streamer.c (100%)
rename drivers/media/{platform => test_drivers}/vimc/vimc-streamer.h (100%)
rename drivers/media/{platform => test_drivers}/vivid/Kconfig (100%)
rename drivers/media/{platform => test_drivers}/vivid/Makefile (100%)
rename drivers/media/{platform => test_drivers}/vivid/vivid-cec.c (100%)
rename drivers/media/{platform => test_drivers}/vivid/vivid-cec.h (100%)
rename drivers/media/{platform => test_drivers}/vivid/vivid-core.c (100%)
rename drivers/media/{platform => test_drivers}/vivid/vivid-core.h (100%)
rename drivers/media/{platform => test_drivers}/vivid/vivid-ctrls.c (100%)
rename drivers/media/{platform => test_drivers}/vivid/vivid-ctrls.h (100%)
rename drivers/media/{platform => test_drivers}/vivid/vivid-kthread-cap.c (100%)
rename drivers/media/{platform => test_drivers}/vivid/vivid-kthread-cap.h (100%)
rename drivers/media/{platform => test_drivers}/vivid/vivid-kthread-out.c (100%)
rename drivers/media/{platform => test_drivers}/vivid/vivid-kthread-out.h (100%)
rename drivers/media/{platform => test_drivers}/vivid/vivid-kthread-touch.c (100%)
rename drivers/media/{platform => test_drivers}/vivid/vivid-kthread-touch.h (100%)
rename drivers/media/{platform => test_drivers}/vivid/vivid-meta-cap.c (100%)
rename drivers/media/{platform => test_drivers}/vivid/vivid-meta-cap.h (100%)
rename drivers/media/{platform => test_drivers}/vivid/vivid-meta-out.c (100%)
rename drivers/media/{platform => test_drivers}/vivid/vivid-meta-out.h (100%)
rename drivers/media/{platform => test_drivers}/vivid/vivid-osd.c (100%)
rename drivers/media/{platform => test_drivers}/vivid/vivid-osd.h (100%)
rename drivers/media/{platform => test_drivers}/vivid/vivid-radio-common.c (100%)
rename drivers/media/{platform => test_drivers}/vivid/vivid-radio-common.h (100%)
rename drivers/media/{platform => test_drivers}/vivid/vivid-radio-rx.c (100%)
rename drivers/media/{platform => test_drivers}/vivid/vivid-radio-rx.h (100%)
rename drivers/media/{platform => test_drivers}/vivid/vivid-radio-tx.c (100%)
rename drivers/media/{platform => test_drivers}/vivid/vivid-radio-tx.h (100%)
rename drivers/media/{platform => test_drivers}/vivid/vivid-rds-gen.c (100%)
rename drivers/media/{platform => test_drivers}/vivid/vivid-rds-gen.h (100%)
rename drivers/media/{platform => test_drivers}/vivid/vivid-sdr-cap.c (100%)
rename drivers/media/{platform => test_drivers}/vivid/vivid-sdr-cap.h (100%)
rename drivers/media/{platform => test_drivers}/vivid/vivid-touch-cap.c (100%)
rename drivers/media/{platform => test_drivers}/vivid/vivid-touch-cap.h (100%)
rename drivers/media/{platform => test_drivers}/vivid/vivid-vbi-cap.c (100%)
rename drivers/media/{platform => test_drivers}/vivid/vivid-vbi-cap.h (100%)
rename drivers/media/{platform => test_drivers}/vivid/vivid-vbi-gen.c (100%)
rename drivers/media/{platform => test_drivers}/vivid/vivid-vbi-gen.h (100%)
rename drivers/media/{platform => test_drivers}/vivid/vivid-vbi-out.c (100%)
rename drivers/media/{platform => test_drivers}/vivid/vivid-vbi-out.h (100%)
rename drivers/media/{platform => test_drivers}/vivid/vivid-vid-cap.c (100%)
rename drivers/media/{platform => test_drivers}/vivid/vivid-vid-cap.h (100%)
rename drivers/media/{platform => test_drivers}/vivid/vivid-vid-common.c (100%)
rename drivers/media/{platform => test_drivers}/vivid/vivid-vid-common.h (100%)
rename drivers/media/{platform => test_drivers}/vivid/vivid-vid-out.c (100%)
rename drivers/media/{platform => test_drivers}/vivid/vivid-vid-out.h (100%)

--
2.24.1



2020-03-24 13:44:38

by Mauro Carvalho Chehab

[permalink] [raw]
Subject: [PATCH v2 18/20] media: Kconfig: place all options under a sub-menu

That should make easier for people setting the media
subsystem config options, as they'll be split by the
type of functionality that will be enabled.

Signed-off-by: Mauro Carvalho Chehab <[email protected]>
---
drivers/media/Kconfig | 43 ++++++++++++++++++++++++-------------------
1 file changed, 24 insertions(+), 19 deletions(-)

diff --git a/drivers/media/Kconfig b/drivers/media/Kconfig
index 026a1151273c..6c55d20458ee 100644
--- a/drivers/media/Kconfig
+++ b/drivers/media/Kconfig
@@ -124,48 +124,49 @@ config MEDIA_TEST_SUPPORT
Say Y when you have a software defined radio device.
endmenu # media device types

-comment "Media core options"
-
-#
-# Video4Linux support
-# Only enables if one of the V4L2 types (ATV, webcam, radio) is selected
-#
+menu "Media core support"
+ visible if !MEDIA_SUPPORT_FILTER

config VIDEO_DEV
- tristate
+ tristate "Video4Linux core"
depends on MEDIA_SUPPORT
default MEDIA_CAMERA_SUPPORT || MEDIA_ANALOG_TV_SUPPORT || MEDIA_RADIO_SUPPORT || MEDIA_SDR_SUPPORT || V4L_PLATFORM_DRIVERS
+ help
+ Enables the V4L2 API, used by cameras, analog TV, video grabbers,
+ radio devices and by some input devices.

config MEDIA_CONTROLLER
bool "Media Controller API"
- depends on MEDIA_CAMERA_SUPPORT || MEDIA_ANALOG_TV_SUPPORT || MEDIA_DIGITAL_TV_SUPPORT
+ default MEDIA_CAMERA_SUPPORT || MEDIA_ANALOG_TV_SUPPORT || MEDIA_DIGITAL_TV_SUPPORT || MEDIA_EMBEDDED_SUPPORT
help
Enable the media controller API used to query media devices internal
topology and configure it dynamically.

This API is mostly used by camera interfaces in embedded platforms.

-#
-# DVB Core
-# Only enables if one of DTV is selected
-#
-
config DVB_CORE
- tristate
+ tristate "Digital TV core"
depends on MEDIA_SUPPORT
- depends on MEDIA_DIGITAL_TV_SUPPORT
+ default MEDIA_DIGITAL_TV_SUPPORT
depends on (I2C || I2C=n)
- default y
select CRC32
-
help
+ Enables the DVB API, used by Digital TV devices. Supports several
+ standards, including DVB, ATSC, ISDB and CMDB.

+endmenu # Media core support
+
+#
+# Extra per-media API core functionality
+
+menu "Media core additional options"
source "drivers/media/v4l2-core/Kconfig"
source "drivers/media/mc/Kconfig"
source "drivers/media/dvb-core/Kconfig"
source "drivers/media/cec/Kconfig"
+endmenu

-comment "Media drivers"
+menu "Media drivers"

#
# V4L platform/mem2mem drivers
@@ -188,7 +189,9 @@ endif # MEDIA_EMBEDDED_SUPPORT

source "drivers/media/firewire/Kconfig"

-comment "Media ancillary drivers (tuners, sensors, i2c, spi, frontends)"
+endmenu
+
+menu "Media ancillary drivers (tuners, sensors, i2c, spi, frontends)"

#
# Ancillary drivers (tuners, i2c, spi, frontends)
@@ -233,4 +236,6 @@ source "drivers/media/spi/Kconfig"
source "drivers/media/tuners/Kconfig"
source "drivers/media/dvb-frontends/Kconfig"

+endmenu
+
endif # MEDIA_SUPPORT
--
2.24.1

2020-03-24 13:44:54

by Mauro Carvalho Chehab

[permalink] [raw]
Subject: [PATCH v2 14/20] media: Kconfig: move drivers-specific TTPCI_EEPROM Kconfig var

This option is used only by av7110 and by an USB driver. As
the av7110 is the first DVB hardware, hardly found those
days, let's opt to place it at usb/Kconfig, as the driver
with needs it might have a longer lifetime.

Signed-off-by: Mauro Carvalho Chehab <[email protected]>
---
drivers/media/Kconfig | 8 --------
drivers/media/usb/Kconfig | 6 ++++++
2 files changed, 6 insertions(+), 8 deletions(-)

diff --git a/drivers/media/Kconfig b/drivers/media/Kconfig
index d6fb8411a8de..54daeba339b7 100644
--- a/drivers/media/Kconfig
+++ b/drivers/media/Kconfig
@@ -157,14 +157,6 @@ config DVB_CORE

help

-
-
-
-# This Kconfig option is used by both PCI and USB drivers
-config TTPCI_EEPROM
- tristate
- depends on I2C
-
source "drivers/media/dvb-core/Kconfig"

comment "Media drivers"
diff --git a/drivers/media/usb/Kconfig b/drivers/media/usb/Kconfig
index e678d3d11467..bf08393e38d1 100644
--- a/drivers/media/usb/Kconfig
+++ b/drivers/media/usb/Kconfig
@@ -1,4 +1,10 @@
# SPDX-License-Identifier: GPL-2.0-only
+
+# This Kconfig option is also used by the legacy av7110 driver
+config TTPCI_EEPROM
+ tristate
+ depends on I2C
+
if USB && MEDIA_SUPPORT

menuconfig MEDIA_USB_SUPPORT
--
2.24.1

2020-03-24 13:45:04

by Mauro Carvalho Chehab

[permalink] [raw]
Subject: [PATCH v2 20/20] media: Kconfig: on !EMBEDDED && !EXPERT, enable driver filtering

Advanced and embedded users know what to do, so, by default,
they will likely want to be able to open the entire set of
Kconfig media options.

Normal "poor" users usually needs more help when setting
stuff, so let's open an more simplified version to them by
default.

Signed-off-by: Mauro Carvalho Chehab <[email protected]>
---
drivers/media/Kconfig | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/media/Kconfig b/drivers/media/Kconfig
index 81259287ffa3..ef71cc03c1c5 100644
--- a/drivers/media/Kconfig
+++ b/drivers/media/Kconfig
@@ -21,6 +21,7 @@ if MEDIA_SUPPORT
config MEDIA_SUPPORT_FILTER
bool "Filter devices by their types"
depends on MEDIA_SUPPORT
+ default y if !EMBEDDED && !EXPERT
help
Configuring the media subsystem can be complex, as there are
hundreds of drivers and other config options.
--
2.24.1

2020-03-24 13:45:09

by Mauro Carvalho Chehab

[permalink] [raw]
Subject: [PATCH v2 12/20] media: Kconfig: move DVB-specific options to dvb-core/Kconfig

In order to cleanup the main media Kconfig, move the DVB-core
specific options to dvb-core/Kconfig.

Signed-off-by: Mauro Carvalho Chehab <[email protected]>
---
drivers/media/Kconfig | 21 ---------------------
drivers/media/dvb-core/Kconfig | 26 ++++++++++++++++++++++++++
2 files changed, 26 insertions(+), 21 deletions(-)

diff --git a/drivers/media/Kconfig b/drivers/media/Kconfig
index 2f4360faed03..44aceb5e5b63 100644
--- a/drivers/media/Kconfig
+++ b/drivers/media/Kconfig
@@ -164,31 +164,10 @@ config DVB_CORE
default y
select CRC32

-config DVB_MMAP
- bool "Enable DVB memory-mapped API (EXPERIMENTAL)"
- depends on DVB_CORE
- depends on VIDEO_V4L2=y || VIDEO_V4L2=DVB_CORE
- select VIDEOBUF2_VMALLOC
help
- This option enables DVB experimental memory-mapped API, which
- reduces the number of context switches to read DVB buffers, as
- the buffers can use mmap() syscalls.

- Support for it is experimental. Use with care. If unsure,
- say N.

-config DVB_NET
- bool "DVB Network Support"
- default (NET && INET)
- depends on NET && INET && DVB_CORE
- help
- This option enables DVB Network Support which is a part of the DVB
- standard. It is used, for example, by automatic firmware updates used
- on Set-Top-Boxes. It can also be used to access the Internet via the
- DVB card, if the network provider supports it.

- You may want to disable the network support on embedded devices. If
- unsure say Y.

# This Kconfig option is used by both PCI and USB drivers
config TTPCI_EEPROM
diff --git a/drivers/media/dvb-core/Kconfig b/drivers/media/dvb-core/Kconfig
index 90e038d5ffd9..0f8e53692b86 100644
--- a/drivers/media/dvb-core/Kconfig
+++ b/drivers/media/dvb-core/Kconfig
@@ -3,6 +3,32 @@
# DVB device configuration
#

+config DVB_MMAP
+ bool "Enable DVB memory-mapped API (EXPERIMENTAL)"
+ depends on DVB_CORE
+ depends on VIDEO_V4L2=y || VIDEO_V4L2=DVB_CORE
+ select VIDEOBUF2_VMALLOC
+ help
+ This option enables DVB experimental memory-mapped API, which
+ reduces the number of context switches to read DVB buffers, as
+ the buffers can use mmap() syscalls.
+
+ Support for it is experimental. Use with care. If unsure,
+ say N.
+
+config DVB_NET
+ bool "DVB Network Support"
+ default (NET && INET)
+ depends on NET && INET && DVB_CORE
+ help
+ This option enables DVB Network Support which is a part of the DVB
+ standard. It is used, for example, by automatic firmware updates used
+ on Set-Top-Boxes. It can also be used to access the Internet via the
+ DVB card, if the network provider supports it.
+
+ You may want to disable the network support on embedded devices. If
+ unsure say Y.
+
config DVB_MAX_ADAPTERS
int "maximum number of DVB/ATSC adapters"
depends on DVB_CORE
--
2.24.1

2020-03-24 13:45:10

by Mauro Carvalho Chehab

[permalink] [raw]
Subject: [PATCH v2 16/20] media: Kconfig: better organize menu items

Place all API specific bits together

Signed-off-by: Mauro Carvalho Chehab <[email protected]>
---
drivers/media/Kconfig | 9 +++------
1 file changed, 3 insertions(+), 6 deletions(-)

diff --git a/drivers/media/Kconfig b/drivers/media/Kconfig
index 86cf4f12a70d..7d4088cfe3ef 100644
--- a/drivers/media/Kconfig
+++ b/drivers/media/Kconfig
@@ -126,10 +126,6 @@ endmenu # media device types

comment "Media core options"

-source "drivers/media/cec/Kconfig"
-
-source "drivers/media/mc/Kconfig"
-
#
# Video4Linux support
# Only enables if one of the V4L2 types (ATV, webcam, radio) is selected
@@ -149,8 +145,6 @@ config MEDIA_CONTROLLER

This API is mostly used by camera interfaces in embedded platforms.

-source "drivers/media/v4l2-core/Kconfig"
-
#
# DVB Core
# Only enables if one of DTV is selected
@@ -166,7 +160,10 @@ config DVB_CORE

help

+source "drivers/media/v4l2-core/Kconfig"
+source "drivers/media/mc/Kconfig"
source "drivers/media/dvb-core/Kconfig"
+source "drivers/media/cec/Kconfig"

comment "Media drivers"

--
2.24.1

2020-03-24 13:45:19

by Mauro Carvalho Chehab

[permalink] [raw]
Subject: [PATCH v2 11/20] media: Kconfig: move comment to siano include

Showing this comment without showing the Siano mmc option
is very weird! Place the option together, and make it
visible only when showing Siano configuration.

Signed-off-by: Mauro Carvalho Chehab <[email protected]>
---
drivers/media/mmc/Kconfig | 1 -
drivers/media/mmc/siano/Kconfig | 2 ++
2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/media/mmc/Kconfig b/drivers/media/mmc/Kconfig
index 5217f5bd205e..75aa6de08d53 100644
--- a/drivers/media/mmc/Kconfig
+++ b/drivers/media/mmc/Kconfig
@@ -1,3 +1,2 @@
# SPDX-License-Identifier: GPL-2.0-only
-comment "MMC/SDIO adapters"
source "drivers/media/mmc/siano/Kconfig"
diff --git a/drivers/media/mmc/siano/Kconfig b/drivers/media/mmc/siano/Kconfig
index 1919f6fea8b1..570696019a9e 100644
--- a/drivers/media/mmc/siano/Kconfig
+++ b/drivers/media/mmc/siano/Kconfig
@@ -2,6 +2,8 @@
#
# Siano Mobile Silicon Digital TV device configuration
#
+comment "MMC/SDIO DVB adapters"
+ depends on DVB_CORE && HAS_DMA && MMC

config SMS_SDIO_DRV
tristate "Siano SMS1xxx based MDTV via SDIO interface"
--
2.24.1

2020-03-24 13:45:22

by Mauro Carvalho Chehab

[permalink] [raw]
Subject: [PATCH v2 07/20] media: Kconfig: add an option to filter in/out the embedded drivers

Most systems don't need support for those, while others only
need those, instead of the others.

So, add an option to filter in/out the SoC specific drivers.

Signed-off-by: Mauro Carvalho Chehab <[email protected]>
---
drivers/media/Kconfig | 12 ++++++++++++
1 file changed, 12 insertions(+)

diff --git a/drivers/media/Kconfig b/drivers/media/Kconfig
index e266d1afa912..a57e2198b2db 100644
--- a/drivers/media/Kconfig
+++ b/drivers/media/Kconfig
@@ -88,6 +88,14 @@ config MEDIA_CEC_SUPPORT
Say Y when you have an HDMI receiver, transmitter or a USB CEC
adapter that supports HDMI CEC.

+config MEDIA_EMBEDDED_SUPPORT
+ bool "Embedded devices (SoC)"
+ help
+ Enable support for complex cameras, codecs, and other hardware
+ found on Embedded hardware (SoC).
+
+ Say Y when you have a software defined radio device.
+
endmenu # media support types

if MEDIA_SUPPORT
@@ -177,9 +185,13 @@ source "drivers/media/radio/Kconfig"

# Common driver options
source "drivers/media/common/Kconfig"
+
+if MEDIA_EMBEDDED_SUPPORT
+
source "drivers/media/platform/Kconfig"
source "drivers/media/mmc/Kconfig"

+endif # MEDIA_EMBEDDED_SUPPORT

comment "FireWire (IEEE 1394) Adapters"
depends on DVB_CORE && FIREWIRE
--
2.24.1

2020-03-24 13:45:24

by Mauro Carvalho Chehab

[permalink] [raw]
Subject: [PATCH v2 10/20] media: Kconfig: move CEC-specific options to cec/Kconfig

There's no need to have the CEC definitions inside the
media Kconfig, as the Kconfig parser doesn't require
symbols to be declared before their usages.

With that, the main Kconfig menu becomes cleaner.

Signed-off-by: Mauro Carvalho Chehab <[email protected]>
---
drivers/media/Kconfig | 9 ---------
drivers/media/cec/Kconfig | 10 ++++++++++
2 files changed, 10 insertions(+), 9 deletions(-)

diff --git a/drivers/media/Kconfig b/drivers/media/Kconfig
index e372029ac41f..2f4360faed03 100644
--- a/drivers/media/Kconfig
+++ b/drivers/media/Kconfig
@@ -3,15 +3,6 @@
# Multimedia device configuration
#

-config CEC_CORE
- tristate
-
-config CEC_NOTIFIER
- bool
-
-config CEC_PIN
- bool
-
source "drivers/media/rc/Kconfig"

menuconfig MEDIA_SUPPORT
diff --git a/drivers/media/cec/Kconfig b/drivers/media/cec/Kconfig
index c01919713ab9..31417feaa213 100644
--- a/drivers/media/cec/Kconfig
+++ b/drivers/media/cec/Kconfig
@@ -1,4 +1,14 @@
# SPDX-License-Identifier: GPL-2.0-only
+
+config CEC_CORE
+ tristate
+
+config CEC_NOTIFIER
+ bool
+
+config CEC_PIN
+ bool
+
config MEDIA_CEC_RC
bool "HDMI CEC RC integration"
depends on CEC_CORE && RC_CORE
--
2.24.1

2020-03-24 13:45:34

by Mauro Carvalho Chehab

[permalink] [raw]
Subject: [PATCH v2 06/20] media: Kconfig: use a sub-menu to select supported devices

The media subsystem has hundreds of driver-specific options.
The *_SUPPORT config options work as a sort of filter,
allowing to reduce its complexity for users that won't
want to dig into thousands of options they don't need.

Yet, it the filtering options are becoming large. So, let's
place it on a sub-menu.

Signed-off-by: Mauro Carvalho Chehab <[email protected]>
---
drivers/media/Kconfig | 22 +++++++++++++---------
drivers/media/mmc/Kconfig | 2 +-
2 files changed, 14 insertions(+), 10 deletions(-)

diff --git a/drivers/media/Kconfig b/drivers/media/Kconfig
index 18dea82d76d7..e266d1afa912 100644
--- a/drivers/media/Kconfig
+++ b/drivers/media/Kconfig
@@ -25,22 +25,21 @@ menuconfig MEDIA_SUPPORT
Additional info and docs are available on the web at
<https://linuxtv.org>

-if MEDIA_SUPPORT
-
-comment "Multimedia core support"
+menu "Types of devices to be supported"
+ depends on MEDIA_SUPPORT

#
# Multimedia support - automatically enable V4L2 and DVB core
#
config MEDIA_CAMERA_SUPPORT
- bool "Cameras/video grabbers support"
+ bool "Cameras and video grabbers"
help
Enable support for webcams and video grabbers.

Say Y when you have a webcam or a video capture grabber board.

config MEDIA_ANALOG_TV_SUPPORT
- bool "Analog TV support"
+ bool "Analog TV"
help
Enable analog TV support.

@@ -52,7 +51,7 @@ config MEDIA_ANALOG_TV_SUPPORT
will disable support for them.

config MEDIA_DIGITAL_TV_SUPPORT
- bool "Digital TV support"
+ bool "Digital TV"
help
Enable digital TV support.

@@ -60,7 +59,7 @@ config MEDIA_DIGITAL_TV_SUPPORT
hybrid digital TV and analog TV.

config MEDIA_RADIO_SUPPORT
- bool "AM/FM radio receivers/transmitters support"
+ bool "AM/FM radio receivers/transmitters"
help
Enable AM/FM radio support.

@@ -74,7 +73,7 @@ config MEDIA_RADIO_SUPPORT
disable support for them.

config MEDIA_SDR_SUPPORT
- bool "Software defined radio support"
+ bool "Software defined radio"
help
Enable software defined radio support.

@@ -89,6 +88,10 @@ config MEDIA_CEC_SUPPORT
Say Y when you have an HDMI receiver, transmitter or a USB CEC
adapter that supports HDMI CEC.

+endmenu # media support types
+
+if MEDIA_SUPPORT
+
comment "Media core options"

source "drivers/media/cec/Kconfig"
@@ -177,7 +180,8 @@ source "drivers/media/common/Kconfig"
source "drivers/media/platform/Kconfig"
source "drivers/media/mmc/Kconfig"

-comment "Supported FireWire (IEEE 1394) Adapters"
+
+comment "FireWire (IEEE 1394) Adapters"
depends on DVB_CORE && FIREWIRE
source "drivers/media/firewire/Kconfig"

diff --git a/drivers/media/mmc/Kconfig b/drivers/media/mmc/Kconfig
index de0528c6994a..5217f5bd205e 100644
--- a/drivers/media/mmc/Kconfig
+++ b/drivers/media/mmc/Kconfig
@@ -1,3 +1,3 @@
# SPDX-License-Identifier: GPL-2.0-only
-comment "Supported MMC/SDIO adapters"
+comment "MMC/SDIO adapters"
source "drivers/media/mmc/siano/Kconfig"
--
2.24.1

2020-03-24 13:45:36

by Mauro Carvalho Chehab

[permalink] [raw]
Subject: [PATCH v2 02/20] media: Kconfig: not all V4L2 platform drivers are for camera

When the platform drivers got added, they were all part of
complex camera support. This is not the case anymore, as we
now have codecs and other stuff there too.

So, fix the dependencies, in order to not require users to
manually select something that it doesn't make sense.

Signed-off-by: Mauro Carvalho Chehab <[email protected]>
---
drivers/media/Kconfig | 3 +--
drivers/media/platform/Kconfig | 1 -
2 files changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/media/Kconfig b/drivers/media/Kconfig
index 9dfea5c4b6ab..4af21fa73fcf 100644
--- a/drivers/media/Kconfig
+++ b/drivers/media/Kconfig
@@ -99,8 +99,7 @@ source "drivers/media/mc/Kconfig"
config VIDEO_DEV
tristate
depends on MEDIA_SUPPORT
- depends on MEDIA_CAMERA_SUPPORT || MEDIA_ANALOG_TV_SUPPORT || MEDIA_RADIO_SUPPORT || MEDIA_SDR_SUPPORT
- default y
+ default MEDIA_CAMERA_SUPPORT || MEDIA_ANALOG_TV_SUPPORT || MEDIA_RADIO_SUPPORT || MEDIA_SDR_SUPPORT || V4L_PLATFORM_DRIVERS

config VIDEO_V4L2_SUBDEV_API
bool "V4L2 sub-device userspace API"
diff --git a/drivers/media/platform/Kconfig b/drivers/media/platform/Kconfig
index e01bbb9dd1c1..34f40c2c8c45 100644
--- a/drivers/media/platform/Kconfig
+++ b/drivers/media/platform/Kconfig
@@ -5,7 +5,6 @@

menuconfig V4L_PLATFORM_DRIVERS
bool "V4L platform devices"
- depends on MEDIA_CAMERA_SUPPORT
help
Say Y here to enable support for platform-specific V4L drivers.

--
2.24.1

2020-03-24 13:45:57

by Mauro Carvalho Chehab

[permalink] [raw]
Subject: [PATCH v2 03/20] media: pci: move VIDEO_PCI_SKELETON to a different Kconfig

The V4L2 PCI skeleton is not part of the V4L2 core. Move it
to appear together with the other PCI drivers, at the end,
as this is something that normal users don't even need to
bother.

Signed-off-by: Mauro Carvalho Chehab <[email protected]>
---
drivers/media/pci/Kconfig | 10 ++++++++++
drivers/media/v4l2-core/Kconfig | 10 ----------
2 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/drivers/media/pci/Kconfig b/drivers/media/pci/Kconfig
index dcb3719f440e..9336f8446cf0 100644
--- a/drivers/media/pci/Kconfig
+++ b/drivers/media/pci/Kconfig
@@ -56,5 +56,15 @@ endif

source "drivers/media/pci/intel/ipu3/Kconfig"

+config VIDEO_PCI_SKELETON
+ tristate "Skeleton PCI V4L2 driver"
+ depends on PCI
+ depends on SAMPLES
+ depends on VIDEO_V4L2 && VIDEOBUF2_CORE
+ depends on VIDEOBUF2_MEMOPS && VIDEOBUF2_DMA_CONTIG
+ help
+ Enable build of the skeleton PCI driver, used as a reference
+ when developing new drivers.
+
endif #MEDIA_PCI_SUPPORT
endif #PCI
diff --git a/drivers/media/v4l2-core/Kconfig b/drivers/media/v4l2-core/Kconfig
index 39e3fb30ba0b..26276b257eae 100644
--- a/drivers/media/v4l2-core/Kconfig
+++ b/drivers/media/v4l2-core/Kconfig
@@ -31,16 +31,6 @@ config VIDEO_FIXED_MINOR_RANGES

When in doubt, say N.

-config VIDEO_PCI_SKELETON
- tristate "Skeleton PCI V4L2 driver"
- depends on PCI
- depends on SAMPLES
- depends on VIDEO_V4L2 && VIDEOBUF2_CORE
- depends on VIDEOBUF2_MEMOPS && VIDEOBUF2_DMA_CONTIG
- help
- Enable build of the skeleton PCI driver, used as a reference
- when developing new drivers.
-
# Used by drivers that need tuner.ko
config VIDEO_TUNER
tristate
--
2.24.1

2020-03-24 13:45:57

by Mauro Carvalho Chehab

[permalink] [raw]
Subject: [PATCH v2 13/20] media: Kconfig: move V4L2 subdev API to v4l2-core/Kconfig

This option is part of V4L2 API extra functionality set.
Move it to be at the v4l2-core/Kconfig, where it belongs,
cleaning the main Kconfig file.

Signed-off-by: Mauro Carvalho Chehab <[email protected]>
---
drivers/media/Kconfig | 9 ---------
drivers/media/v4l2-core/Kconfig | 9 +++++++++
2 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/drivers/media/Kconfig b/drivers/media/Kconfig
index 44aceb5e5b63..d6fb8411a8de 100644
--- a/drivers/media/Kconfig
+++ b/drivers/media/Kconfig
@@ -140,15 +140,6 @@ config VIDEO_DEV
depends on MEDIA_SUPPORT
default MEDIA_CAMERA_SUPPORT || MEDIA_ANALOG_TV_SUPPORT || MEDIA_RADIO_SUPPORT || MEDIA_SDR_SUPPORT || V4L_PLATFORM_DRIVERS

-config VIDEO_V4L2_SUBDEV_API
- bool "V4L2 sub-device userspace API"
- depends on VIDEO_DEV && MEDIA_CONTROLLER
- help
- Enables the V4L2 sub-device pad-level userspace API used to configure
- video format, size and frame rate between hardware blocks.
-
- This API is mostly used by camera interfaces in embedded platforms.
-
source "drivers/media/v4l2-core/Kconfig"

#
diff --git a/drivers/media/v4l2-core/Kconfig b/drivers/media/v4l2-core/Kconfig
index 26276b257eae..33aa7fe571f8 100644
--- a/drivers/media/v4l2-core/Kconfig
+++ b/drivers/media/v4l2-core/Kconfig
@@ -16,6 +16,15 @@ config VIDEO_V4L2_I2C
depends on I2C && VIDEO_V4L2
default y

+config VIDEO_V4L2_SUBDEV_API
+ bool "V4L2 sub-device userspace API"
+ depends on VIDEO_DEV && MEDIA_CONTROLLER
+ help
+ Enables the V4L2 sub-device pad-level userspace API used to configure
+ video format, size and frame rate between hardware blocks.
+
+ This API is mostly used by camera interfaces in embedded platforms.
+
config VIDEO_ADV_DEBUG
bool "Enable advanced debug functionality on V4L2 drivers"
help
--
2.24.1

2020-03-24 13:46:12

by Mauro Carvalho Chehab

[permalink] [raw]
Subject: [PATCH v2 01/20] media: dvb-usb: auto-select CYPRESS_FIRMWARE

At least some of the supported boards by dvb-usb
driver need to load the cypress firmware, so select
it, as otherwise missing dependencies may popup.

Also, as the cypress firmware load routines are needed
only by the dvb-usb, dvb-usb-v2 and go7007 drivers, and
those all (now) select it, there's no need to ask the
user for manually select it.

Signed-off-by: Mauro Carvalho Chehab <[email protected]>
---
drivers/media/common/Kconfig | 2 +-
drivers/media/usb/dvb-usb/Kconfig | 1 +
2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/media/common/Kconfig b/drivers/media/common/Kconfig
index 1990b7f09454..4ea03b7899a8 100644
--- a/drivers/media/common/Kconfig
+++ b/drivers/media/common/Kconfig
@@ -14,7 +14,7 @@ config VIDEO_TVEEPROM
depends on I2C

config CYPRESS_FIRMWARE
- tristate "Cypress firmware helper routines"
+ tristate
depends on USB

source "drivers/media/common/videobuf2/Kconfig"
diff --git a/drivers/media/usb/dvb-usb/Kconfig b/drivers/media/usb/dvb-usb/Kconfig
index 1a3e5f965ae4..42334a02cdce 100644
--- a/drivers/media/usb/dvb-usb/Kconfig
+++ b/drivers/media/usb/dvb-usb/Kconfig
@@ -2,6 +2,7 @@
config DVB_USB
tristate "Support for various USB DVB devices"
depends on DVB_CORE && USB && I2C && RC_CORE
+ select CYPRESS_FIRMWARE
help
By enabling this you will be able to choose the various supported
USB1.1 and USB2.0 DVB devices.
--
2.24.1

2020-03-24 13:46:40

by Mauro Carvalho Chehab

[permalink] [raw]
Subject: [PATCH v2 04/20] media: reorganize the drivers menu options

The comments before some of the drivers support look
weird, because their Kconfig have their own "comment"
directive inside it. So, rearrange them to make it
look a little nicer for the ones with are not too
familiar with the media system.

Signed-off-by: Mauro Carvalho Chehab <[email protected]>
---
drivers/media/Kconfig | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/drivers/media/Kconfig b/drivers/media/Kconfig
index 4af21fa73fcf..586d8931d9fc 100644
--- a/drivers/media/Kconfig
+++ b/drivers/media/Kconfig
@@ -87,6 +87,8 @@ config MEDIA_CEC_SUPPORT
Say Y when you have an HDMI receiver, transmitter or a USB CEC
adapter that supports HDMI CEC.

+comment "Media core options"
+
source "drivers/media/cec/Kconfig"

source "drivers/media/mc/Kconfig"
@@ -166,17 +168,17 @@ comment "Media drivers"

source "drivers/media/usb/Kconfig"
source "drivers/media/pci/Kconfig"
+source "drivers/media/radio/Kconfig"
+
+# Common driver options
+source "drivers/media/common/Kconfig"
source "drivers/media/platform/Kconfig"
source "drivers/media/mmc/Kconfig"
-source "drivers/media/radio/Kconfig"

comment "Supported FireWire (IEEE 1394) Adapters"
depends on DVB_CORE && FIREWIRE
source "drivers/media/firewire/Kconfig"

-# Common driver options
-source "drivers/media/common/Kconfig"
-
comment "Media ancillary drivers (tuners, sensors, i2c, spi, frontends)"

#
--
2.24.1

2020-03-24 13:54:47

by Laurent Pinchart

[permalink] [raw]
Subject: Re: [PATCH v2 00/20] Reorganize media Kconfig

Hi Mauro,

Thank you for the patches.

On Tue, Mar 24, 2020 at 02:42:53PM +0100, Mauro Carvalho Chehab wrote:
> This patch series do lots of reorg at the media Kconfig options.
> It also move test drivers from platform dir to a new one.
>
> After this change, the main config is organized on menus, allowing to
> select:
>
> - type of devices selection - the filtering options
> - Media core options - with API and other core stuff
> - Media core extra options
> - Media drivers
> - Media ancillary drivers
>
> The "type of devices" menu has the filtering options for:
>
> - Cameras and video grabbers
> - Analog TV
> - Digital TV
> - AM/FM radio receivers/transmitters
> - SDR
> - CEC
> - Embeded devices (SoC)
> - Test drivers
>
> This way, one interested only on embedded devices can unselect
> everything but "Embedded devices (SoC)" option.
>
> Distros for PC/Laptops can enable everything but
> "Embedded devices (SoC)" and "Test drivers".

How about a device such as the Intel IPU3 ? It's a SoC, and is present
in laptops. Unlike the physical interface which is a fairly well defined
way to categorize devices, creating artificial classes will always leave
some devices without a home. We could have a capture card that supports
both analog and digital TV. A digital TV capture card with an HDMI input
can have a CEC device. Lots of combinations are possible.

> Users can select just what they want, without bothering with
> hundreds of options that he won't have any clue about their
> meanings.
>
> Mauro Carvalho Chehab (20):
> media: dvb-usb: auto-select CYPRESS_FIRMWARE
> media: Kconfig: not all V4L2 platform drivers are for camera
> media: pci: move VIDEO_PCI_SKELETON to a different Kconfig
> media: reorganize the drivers menu options
> media: Kconfig: update the MEDIA_SUPPORT help message
> media: Kconfig: use a sub-menu to select supported devices
> media: Kconfig: add an option to filter in/out the embedded drivers
> media: split test drivers from platform directory
> media: Kconfig: make filtering devices optional
> media: Kconfig: move CEC-specific options to cec/Kconfig
> media: Kconfig: move comment to siano include
> media: Kconfig: move DVB-specific options to dvb-core/Kconfig
> media: Kconfig: move V4L2 subdev API to v4l2-core/Kconfig
> media: Kconfig: move drivers-specific TTPCI_EEPROM Kconfig var
> media: Kconfig: move media controller core select to main Kconfig
> media: Kconfig: better organize menu items
> media: Kconfig: mode firewire comment to firewire/Kconfig
> media: Kconfig: place all options under a sub-menu
> media: Kconfig: move the position of sub-driver autoselection
> media: Kconfig: on !EMBEDDED && !EXPERT, enable driver filtering
>
> drivers/media/Kconfig | 216 ++++++++++--------
> drivers/media/cec/Kconfig | 10 +
> drivers/media/common/Kconfig | 2 +-
> drivers/media/dvb-core/Kconfig | 26 +++
> drivers/media/firewire/Kconfig | 5 +-
> drivers/media/mc/Kconfig | 9 -
> drivers/media/mmc/Kconfig | 1 -
> drivers/media/mmc/siano/Kconfig | 2 +
> drivers/media/pci/Kconfig | 10 +
> drivers/media/platform/Kconfig | 24 --
> drivers/media/platform/Makefile | 5 -
> drivers/media/test_drivers/Kconfig | 28 +++
> drivers/media/test_drivers/Makefile | 9 +
> .../vicodec/Kconfig | 0
> .../vicodec/Makefile | 0
> .../vicodec/codec-fwht.c | 0
> .../vicodec/codec-fwht.h | 0
> .../vicodec/codec-v4l2-fwht.c | 0
> .../vicodec/codec-v4l2-fwht.h | 0
> .../vicodec/vicodec-core.c | 0
> .../media/{platform => test_drivers}/vim2m.c | 0
> .../{platform => test_drivers}/vimc/Kconfig | 0
> .../{platform => test_drivers}/vimc/Makefile | 0
> .../vimc/vimc-capture.c | 0
> .../vimc/vimc-common.c | 0
> .../vimc/vimc-common.h | 0
> .../vimc/vimc-core.c | 0
> .../vimc/vimc-debayer.c | 0
> .../vimc/vimc-scaler.c | 0
> .../vimc/vimc-sensor.c | 0
> .../vimc/vimc-streamer.c | 0
> .../vimc/vimc-streamer.h | 0
> .../{platform => test_drivers}/vivid/Kconfig | 0
> .../{platform => test_drivers}/vivid/Makefile | 0
> .../vivid/vivid-cec.c | 0
> .../vivid/vivid-cec.h | 0
> .../vivid/vivid-core.c | 0
> .../vivid/vivid-core.h | 0
> .../vivid/vivid-ctrls.c | 0
> .../vivid/vivid-ctrls.h | 0
> .../vivid/vivid-kthread-cap.c | 0
> .../vivid/vivid-kthread-cap.h | 0
> .../vivid/vivid-kthread-out.c | 0
> .../vivid/vivid-kthread-out.h | 0
> .../vivid/vivid-kthread-touch.c | 0
> .../vivid/vivid-kthread-touch.h | 0
> .../vivid/vivid-meta-cap.c | 0
> .../vivid/vivid-meta-cap.h | 0
> .../vivid/vivid-meta-out.c | 0
> .../vivid/vivid-meta-out.h | 0
> .../vivid/vivid-osd.c | 0
> .../vivid/vivid-osd.h | 0
> .../vivid/vivid-radio-common.c | 0
> .../vivid/vivid-radio-common.h | 0
> .../vivid/vivid-radio-rx.c | 0
> .../vivid/vivid-radio-rx.h | 0
> .../vivid/vivid-radio-tx.c | 0
> .../vivid/vivid-radio-tx.h | 0
> .../vivid/vivid-rds-gen.c | 0
> .../vivid/vivid-rds-gen.h | 0
> .../vivid/vivid-sdr-cap.c | 0
> .../vivid/vivid-sdr-cap.h | 0
> .../vivid/vivid-touch-cap.c | 0
> .../vivid/vivid-touch-cap.h | 0
> .../vivid/vivid-vbi-cap.c | 0
> .../vivid/vivid-vbi-cap.h | 0
> .../vivid/vivid-vbi-gen.c | 0
> .../vivid/vivid-vbi-gen.h | 0
> .../vivid/vivid-vbi-out.c | 0
> .../vivid/vivid-vbi-out.h | 0
> .../vivid/vivid-vid-cap.c | 0
> .../vivid/vivid-vid-cap.h | 0
> .../vivid/vivid-vid-common.c | 0
> .../vivid/vivid-vid-common.h | 0
> .../vivid/vivid-vid-out.c | 0
> .../vivid/vivid-vid-out.h | 0
> drivers/media/usb/Kconfig | 6 +
> drivers/media/usb/dvb-usb/Kconfig | 1 +
> drivers/media/v4l2-core/Kconfig | 19 +-
> 79 files changed, 222 insertions(+), 151 deletions(-)
> create mode 100644 drivers/media/test_drivers/Kconfig
> create mode 100644 drivers/media/test_drivers/Makefile
> rename drivers/media/{platform => test_drivers}/vicodec/Kconfig (100%)
> rename drivers/media/{platform => test_drivers}/vicodec/Makefile (100%)
> rename drivers/media/{platform => test_drivers}/vicodec/codec-fwht.c (100%)
> rename drivers/media/{platform => test_drivers}/vicodec/codec-fwht.h (100%)
> rename drivers/media/{platform => test_drivers}/vicodec/codec-v4l2-fwht.c (100%)
> rename drivers/media/{platform => test_drivers}/vicodec/codec-v4l2-fwht.h (100%)
> rename drivers/media/{platform => test_drivers}/vicodec/vicodec-core.c (100%)
> rename drivers/media/{platform => test_drivers}/vim2m.c (100%)
> rename drivers/media/{platform => test_drivers}/vimc/Kconfig (100%)
> rename drivers/media/{platform => test_drivers}/vimc/Makefile (100%)
> rename drivers/media/{platform => test_drivers}/vimc/vimc-capture.c (100%)
> rename drivers/media/{platform => test_drivers}/vimc/vimc-common.c (100%)
> rename drivers/media/{platform => test_drivers}/vimc/vimc-common.h (100%)
> rename drivers/media/{platform => test_drivers}/vimc/vimc-core.c (100%)
> rename drivers/media/{platform => test_drivers}/vimc/vimc-debayer.c (100%)
> rename drivers/media/{platform => test_drivers}/vimc/vimc-scaler.c (100%)
> rename drivers/media/{platform => test_drivers}/vimc/vimc-sensor.c (100%)
> rename drivers/media/{platform => test_drivers}/vimc/vimc-streamer.c (100%)
> rename drivers/media/{platform => test_drivers}/vimc/vimc-streamer.h (100%)
> rename drivers/media/{platform => test_drivers}/vivid/Kconfig (100%)
> rename drivers/media/{platform => test_drivers}/vivid/Makefile (100%)
> rename drivers/media/{platform => test_drivers}/vivid/vivid-cec.c (100%)
> rename drivers/media/{platform => test_drivers}/vivid/vivid-cec.h (100%)
> rename drivers/media/{platform => test_drivers}/vivid/vivid-core.c (100%)
> rename drivers/media/{platform => test_drivers}/vivid/vivid-core.h (100%)
> rename drivers/media/{platform => test_drivers}/vivid/vivid-ctrls.c (100%)
> rename drivers/media/{platform => test_drivers}/vivid/vivid-ctrls.h (100%)
> rename drivers/media/{platform => test_drivers}/vivid/vivid-kthread-cap.c (100%)
> rename drivers/media/{platform => test_drivers}/vivid/vivid-kthread-cap.h (100%)
> rename drivers/media/{platform => test_drivers}/vivid/vivid-kthread-out.c (100%)
> rename drivers/media/{platform => test_drivers}/vivid/vivid-kthread-out.h (100%)
> rename drivers/media/{platform => test_drivers}/vivid/vivid-kthread-touch.c (100%)
> rename drivers/media/{platform => test_drivers}/vivid/vivid-kthread-touch.h (100%)
> rename drivers/media/{platform => test_drivers}/vivid/vivid-meta-cap.c (100%)
> rename drivers/media/{platform => test_drivers}/vivid/vivid-meta-cap.h (100%)
> rename drivers/media/{platform => test_drivers}/vivid/vivid-meta-out.c (100%)
> rename drivers/media/{platform => test_drivers}/vivid/vivid-meta-out.h (100%)
> rename drivers/media/{platform => test_drivers}/vivid/vivid-osd.c (100%)
> rename drivers/media/{platform => test_drivers}/vivid/vivid-osd.h (100%)
> rename drivers/media/{platform => test_drivers}/vivid/vivid-radio-common.c (100%)
> rename drivers/media/{platform => test_drivers}/vivid/vivid-radio-common.h (100%)
> rename drivers/media/{platform => test_drivers}/vivid/vivid-radio-rx.c (100%)
> rename drivers/media/{platform => test_drivers}/vivid/vivid-radio-rx.h (100%)
> rename drivers/media/{platform => test_drivers}/vivid/vivid-radio-tx.c (100%)
> rename drivers/media/{platform => test_drivers}/vivid/vivid-radio-tx.h (100%)
> rename drivers/media/{platform => test_drivers}/vivid/vivid-rds-gen.c (100%)
> rename drivers/media/{platform => test_drivers}/vivid/vivid-rds-gen.h (100%)
> rename drivers/media/{platform => test_drivers}/vivid/vivid-sdr-cap.c (100%)
> rename drivers/media/{platform => test_drivers}/vivid/vivid-sdr-cap.h (100%)
> rename drivers/media/{platform => test_drivers}/vivid/vivid-touch-cap.c (100%)
> rename drivers/media/{platform => test_drivers}/vivid/vivid-touch-cap.h (100%)
> rename drivers/media/{platform => test_drivers}/vivid/vivid-vbi-cap.c (100%)
> rename drivers/media/{platform => test_drivers}/vivid/vivid-vbi-cap.h (100%)
> rename drivers/media/{platform => test_drivers}/vivid/vivid-vbi-gen.c (100%)
> rename drivers/media/{platform => test_drivers}/vivid/vivid-vbi-gen.h (100%)
> rename drivers/media/{platform => test_drivers}/vivid/vivid-vbi-out.c (100%)
> rename drivers/media/{platform => test_drivers}/vivid/vivid-vbi-out.h (100%)
> rename drivers/media/{platform => test_drivers}/vivid/vivid-vid-cap.c (100%)
> rename drivers/media/{platform => test_drivers}/vivid/vivid-vid-cap.h (100%)
> rename drivers/media/{platform => test_drivers}/vivid/vivid-vid-common.c (100%)
> rename drivers/media/{platform => test_drivers}/vivid/vivid-vid-common.h (100%)
> rename drivers/media/{platform => test_drivers}/vivid/vivid-vid-out.c (100%)
> rename drivers/media/{platform => test_drivers}/vivid/vivid-vid-out.h (100%)

--
Regards,

Laurent Pinchart

2020-03-24 13:59:45

by Hans Verkuil

[permalink] [raw]
Subject: Re: [PATCH v2 00/20] Reorganize media Kconfig

On 3/24/20 2:42 PM, Mauro Carvalho Chehab wrote:
> This patch series do lots of reorg at the media Kconfig options.
> It also move test drivers from platform dir to a new one.

You sent this to linux-doc, but you probably meant linux-media.

Can you repost?

Regards,

Hans

>
> After this change, the main config is organized on menus, allowing to
> select:
>
> - type of devices selection - the filtering options
> - Media core options - with API and other core stuff
> - Media core extra options
> - Media drivers
> - Media ancillary drivers
>
> The "type of devices" menu has the filtering options for:
>
> - Cameras and video grabbers
> - Analog TV
> - Digital TV
> - AM/FM radio receivers/transmitters
> - SDR
> - CEC
> - Embeded devices (SoC)
> - Test drivers
>
> This way, one interested only on embedded devices can unselect
> everything but "Embedded devices (SoC)" option.
>
> Distros for PC/Laptops can enable everything but
> "Embedded devices (SoC)" and "Test drivers".
>
> Users can select just what they want, without bothering with
> hundreds of options that he won't have any clue about their
> meanings.
>
> Mauro Carvalho Chehab (20):
> media: dvb-usb: auto-select CYPRESS_FIRMWARE
> media: Kconfig: not all V4L2 platform drivers are for camera
> media: pci: move VIDEO_PCI_SKELETON to a different Kconfig
> media: reorganize the drivers menu options
> media: Kconfig: update the MEDIA_SUPPORT help message
> media: Kconfig: use a sub-menu to select supported devices
> media: Kconfig: add an option to filter in/out the embedded drivers
> media: split test drivers from platform directory
> media: Kconfig: make filtering devices optional
> media: Kconfig: move CEC-specific options to cec/Kconfig
> media: Kconfig: move comment to siano include
> media: Kconfig: move DVB-specific options to dvb-core/Kconfig
> media: Kconfig: move V4L2 subdev API to v4l2-core/Kconfig
> media: Kconfig: move drivers-specific TTPCI_EEPROM Kconfig var
> media: Kconfig: move media controller core select to main Kconfig
> media: Kconfig: better organize menu items
> media: Kconfig: mode firewire comment to firewire/Kconfig
> media: Kconfig: place all options under a sub-menu
> media: Kconfig: move the position of sub-driver autoselection
> media: Kconfig: on !EMBEDDED && !EXPERT, enable driver filtering
>
> drivers/media/Kconfig | 216 ++++++++++--------
> drivers/media/cec/Kconfig | 10 +
> drivers/media/common/Kconfig | 2 +-
> drivers/media/dvb-core/Kconfig | 26 +++
> drivers/media/firewire/Kconfig | 5 +-
> drivers/media/mc/Kconfig | 9 -
> drivers/media/mmc/Kconfig | 1 -
> drivers/media/mmc/siano/Kconfig | 2 +
> drivers/media/pci/Kconfig | 10 +
> drivers/media/platform/Kconfig | 24 --
> drivers/media/platform/Makefile | 5 -
> drivers/media/test_drivers/Kconfig | 28 +++
> drivers/media/test_drivers/Makefile | 9 +
> .../vicodec/Kconfig | 0
> .../vicodec/Makefile | 0
> .../vicodec/codec-fwht.c | 0
> .../vicodec/codec-fwht.h | 0
> .../vicodec/codec-v4l2-fwht.c | 0
> .../vicodec/codec-v4l2-fwht.h | 0
> .../vicodec/vicodec-core.c | 0
> .../media/{platform => test_drivers}/vim2m.c | 0
> .../{platform => test_drivers}/vimc/Kconfig | 0
> .../{platform => test_drivers}/vimc/Makefile | 0
> .../vimc/vimc-capture.c | 0
> .../vimc/vimc-common.c | 0
> .../vimc/vimc-common.h | 0
> .../vimc/vimc-core.c | 0
> .../vimc/vimc-debayer.c | 0
> .../vimc/vimc-scaler.c | 0
> .../vimc/vimc-sensor.c | 0
> .../vimc/vimc-streamer.c | 0
> .../vimc/vimc-streamer.h | 0
> .../{platform => test_drivers}/vivid/Kconfig | 0
> .../{platform => test_drivers}/vivid/Makefile | 0
> .../vivid/vivid-cec.c | 0
> .../vivid/vivid-cec.h | 0
> .../vivid/vivid-core.c | 0
> .../vivid/vivid-core.h | 0
> .../vivid/vivid-ctrls.c | 0
> .../vivid/vivid-ctrls.h | 0
> .../vivid/vivid-kthread-cap.c | 0
> .../vivid/vivid-kthread-cap.h | 0
> .../vivid/vivid-kthread-out.c | 0
> .../vivid/vivid-kthread-out.h | 0
> .../vivid/vivid-kthread-touch.c | 0
> .../vivid/vivid-kthread-touch.h | 0
> .../vivid/vivid-meta-cap.c | 0
> .../vivid/vivid-meta-cap.h | 0
> .../vivid/vivid-meta-out.c | 0
> .../vivid/vivid-meta-out.h | 0
> .../vivid/vivid-osd.c | 0
> .../vivid/vivid-osd.h | 0
> .../vivid/vivid-radio-common.c | 0
> .../vivid/vivid-radio-common.h | 0
> .../vivid/vivid-radio-rx.c | 0
> .../vivid/vivid-radio-rx.h | 0
> .../vivid/vivid-radio-tx.c | 0
> .../vivid/vivid-radio-tx.h | 0
> .../vivid/vivid-rds-gen.c | 0
> .../vivid/vivid-rds-gen.h | 0
> .../vivid/vivid-sdr-cap.c | 0
> .../vivid/vivid-sdr-cap.h | 0
> .../vivid/vivid-touch-cap.c | 0
> .../vivid/vivid-touch-cap.h | 0
> .../vivid/vivid-vbi-cap.c | 0
> .../vivid/vivid-vbi-cap.h | 0
> .../vivid/vivid-vbi-gen.c | 0
> .../vivid/vivid-vbi-gen.h | 0
> .../vivid/vivid-vbi-out.c | 0
> .../vivid/vivid-vbi-out.h | 0
> .../vivid/vivid-vid-cap.c | 0
> .../vivid/vivid-vid-cap.h | 0
> .../vivid/vivid-vid-common.c | 0
> .../vivid/vivid-vid-common.h | 0
> .../vivid/vivid-vid-out.c | 0
> .../vivid/vivid-vid-out.h | 0
> drivers/media/usb/Kconfig | 6 +
> drivers/media/usb/dvb-usb/Kconfig | 1 +
> drivers/media/v4l2-core/Kconfig | 19 +-
> 79 files changed, 222 insertions(+), 151 deletions(-)
> create mode 100644 drivers/media/test_drivers/Kconfig
> create mode 100644 drivers/media/test_drivers/Makefile
> rename drivers/media/{platform => test_drivers}/vicodec/Kconfig (100%)
> rename drivers/media/{platform => test_drivers}/vicodec/Makefile (100%)
> rename drivers/media/{platform => test_drivers}/vicodec/codec-fwht.c (100%)
> rename drivers/media/{platform => test_drivers}/vicodec/codec-fwht.h (100%)
> rename drivers/media/{platform => test_drivers}/vicodec/codec-v4l2-fwht.c (100%)
> rename drivers/media/{platform => test_drivers}/vicodec/codec-v4l2-fwht.h (100%)
> rename drivers/media/{platform => test_drivers}/vicodec/vicodec-core.c (100%)
> rename drivers/media/{platform => test_drivers}/vim2m.c (100%)
> rename drivers/media/{platform => test_drivers}/vimc/Kconfig (100%)
> rename drivers/media/{platform => test_drivers}/vimc/Makefile (100%)
> rename drivers/media/{platform => test_drivers}/vimc/vimc-capture.c (100%)
> rename drivers/media/{platform => test_drivers}/vimc/vimc-common.c (100%)
> rename drivers/media/{platform => test_drivers}/vimc/vimc-common.h (100%)
> rename drivers/media/{platform => test_drivers}/vimc/vimc-core.c (100%)
> rename drivers/media/{platform => test_drivers}/vimc/vimc-debayer.c (100%)
> rename drivers/media/{platform => test_drivers}/vimc/vimc-scaler.c (100%)
> rename drivers/media/{platform => test_drivers}/vimc/vimc-sensor.c (100%)
> rename drivers/media/{platform => test_drivers}/vimc/vimc-streamer.c (100%)
> rename drivers/media/{platform => test_drivers}/vimc/vimc-streamer.h (100%)
> rename drivers/media/{platform => test_drivers}/vivid/Kconfig (100%)
> rename drivers/media/{platform => test_drivers}/vivid/Makefile (100%)
> rename drivers/media/{platform => test_drivers}/vivid/vivid-cec.c (100%)
> rename drivers/media/{platform => test_drivers}/vivid/vivid-cec.h (100%)
> rename drivers/media/{platform => test_drivers}/vivid/vivid-core.c (100%)
> rename drivers/media/{platform => test_drivers}/vivid/vivid-core.h (100%)
> rename drivers/media/{platform => test_drivers}/vivid/vivid-ctrls.c (100%)
> rename drivers/media/{platform => test_drivers}/vivid/vivid-ctrls.h (100%)
> rename drivers/media/{platform => test_drivers}/vivid/vivid-kthread-cap.c (100%)
> rename drivers/media/{platform => test_drivers}/vivid/vivid-kthread-cap.h (100%)
> rename drivers/media/{platform => test_drivers}/vivid/vivid-kthread-out.c (100%)
> rename drivers/media/{platform => test_drivers}/vivid/vivid-kthread-out.h (100%)
> rename drivers/media/{platform => test_drivers}/vivid/vivid-kthread-touch.c (100%)
> rename drivers/media/{platform => test_drivers}/vivid/vivid-kthread-touch.h (100%)
> rename drivers/media/{platform => test_drivers}/vivid/vivid-meta-cap.c (100%)
> rename drivers/media/{platform => test_drivers}/vivid/vivid-meta-cap.h (100%)
> rename drivers/media/{platform => test_drivers}/vivid/vivid-meta-out.c (100%)
> rename drivers/media/{platform => test_drivers}/vivid/vivid-meta-out.h (100%)
> rename drivers/media/{platform => test_drivers}/vivid/vivid-osd.c (100%)
> rename drivers/media/{platform => test_drivers}/vivid/vivid-osd.h (100%)
> rename drivers/media/{platform => test_drivers}/vivid/vivid-radio-common.c (100%)
> rename drivers/media/{platform => test_drivers}/vivid/vivid-radio-common.h (100%)
> rename drivers/media/{platform => test_drivers}/vivid/vivid-radio-rx.c (100%)
> rename drivers/media/{platform => test_drivers}/vivid/vivid-radio-rx.h (100%)
> rename drivers/media/{platform => test_drivers}/vivid/vivid-radio-tx.c (100%)
> rename drivers/media/{platform => test_drivers}/vivid/vivid-radio-tx.h (100%)
> rename drivers/media/{platform => test_drivers}/vivid/vivid-rds-gen.c (100%)
> rename drivers/media/{platform => test_drivers}/vivid/vivid-rds-gen.h (100%)
> rename drivers/media/{platform => test_drivers}/vivid/vivid-sdr-cap.c (100%)
> rename drivers/media/{platform => test_drivers}/vivid/vivid-sdr-cap.h (100%)
> rename drivers/media/{platform => test_drivers}/vivid/vivid-touch-cap.c (100%)
> rename drivers/media/{platform => test_drivers}/vivid/vivid-touch-cap.h (100%)
> rename drivers/media/{platform => test_drivers}/vivid/vivid-vbi-cap.c (100%)
> rename drivers/media/{platform => test_drivers}/vivid/vivid-vbi-cap.h (100%)
> rename drivers/media/{platform => test_drivers}/vivid/vivid-vbi-gen.c (100%)
> rename drivers/media/{platform => test_drivers}/vivid/vivid-vbi-gen.h (100%)
> rename drivers/media/{platform => test_drivers}/vivid/vivid-vbi-out.c (100%)
> rename drivers/media/{platform => test_drivers}/vivid/vivid-vbi-out.h (100%)
> rename drivers/media/{platform => test_drivers}/vivid/vivid-vid-cap.c (100%)
> rename drivers/media/{platform => test_drivers}/vivid/vivid-vid-cap.h (100%)
> rename drivers/media/{platform => test_drivers}/vivid/vivid-vid-common.c (100%)
> rename drivers/media/{platform => test_drivers}/vivid/vivid-vid-common.h (100%)
> rename drivers/media/{platform => test_drivers}/vivid/vivid-vid-out.c (100%)
> rename drivers/media/{platform => test_drivers}/vivid/vivid-vid-out.h (100%)
>

2020-03-24 14:04:17

by Mauro Carvalho Chehab

[permalink] [raw]
Subject: Re: [PATCH v2 00/20] Reorganize media Kconfig

Em Tue, 24 Mar 2020 15:53:59 +0200
Laurent Pinchart <[email protected]> escreveu:

> Hi Mauro,
>
> Thank you for the patches.
>
> On Tue, Mar 24, 2020 at 02:42:53PM +0100, Mauro Carvalho Chehab wrote:
> > This patch series do lots of reorg at the media Kconfig options.
> > It also move test drivers from platform dir to a new one.
> >
> > After this change, the main config is organized on menus, allowing to
> > select:
> >
> > - type of devices selection - the filtering options
> > - Media core options - with API and other core stuff
> > - Media core extra options
> > - Media drivers
> > - Media ancillary drivers
> >
> > The "type of devices" menu has the filtering options for:
> >
> > - Cameras and video grabbers
> > - Analog TV
> > - Digital TV
> > - AM/FM radio receivers/transmitters
> > - SDR
> > - CEC
> > - Embeded devices (SoC)
> > - Test drivers
> >
> > This way, one interested only on embedded devices can unselect
> > everything but "Embedded devices (SoC)" option.
> >
> > Distros for PC/Laptops can enable everything but
> > "Embedded devices (SoC)" and "Test drivers".
>
> How about a device such as the Intel IPU3 ? It's a SoC, and is present
> in laptops. Unlike the physical interface which is a fairly well defined
> way to categorize devices, creating artificial classes will always leave
> some devices without a home. We could have a capture card that supports
> both analog and digital TV. A digital TV capture card with an HDMI input
> can have a CEC device. Lots of combinations are possible.

This is basically what we had before, just better organized.

It is a hints based selection. So, a multi-function device like IPU3
would basically do (either directly or the menu which contains it):

depends on MEDIA_EMBEDDED_SUPPORT || MEDIA_CAMERA_SUPPORT

When the filter is disabled, both options tune to "y".


Thanks,
Mauro

2020-03-24 14:29:31

by Mauro Carvalho Chehab

[permalink] [raw]
Subject: Re: [PATCH v2 00/20] Reorganize media Kconfig

Em Tue, 24 Mar 2020 14:58:59 +0100
Hans Verkuil <[email protected]> escreveu:

> On 3/24/20 2:42 PM, Mauro Carvalho Chehab wrote:
> > This patch series do lots of reorg at the media Kconfig options.
> > It also move test drivers from platform dir to a new one.
>
> You sent this to linux-doc, but you probably meant linux-media.
>
> Can you repost?

Oh! Sorry for that. I used the same git clone I have lots of doc patches,
as it would make easier for me to rebase, but forgot that the send
code inside .git/config was pointing to a different c/c list.

Resent.

>
> Regards,
>
> Hans
>
> >
> > After this change, the main config is organized on menus, allowing to
> > select:
> >
> > - type of devices selection - the filtering options
> > - Media core options - with API and other core stuff
> > - Media core extra options
> > - Media drivers
> > - Media ancillary drivers
> >
> > The "type of devices" menu has the filtering options for:
> >
> > - Cameras and video grabbers
> > - Analog TV
> > - Digital TV
> > - AM/FM radio receivers/transmitters
> > - SDR
> > - CEC
> > - Embeded devices (SoC)
> > - Test drivers
> >
> > This way, one interested only on embedded devices can unselect
> > everything but "Embedded devices (SoC)" option.
> >
> > Distros for PC/Laptops can enable everything but
> > "Embedded devices (SoC)" and "Test drivers".
> >
> > Users can select just what they want, without bothering with
> > hundreds of options that he won't have any clue about their
> > meanings.
> >
> > Mauro Carvalho Chehab (20):
> > media: dvb-usb: auto-select CYPRESS_FIRMWARE
> > media: Kconfig: not all V4L2 platform drivers are for camera
> > media: pci: move VIDEO_PCI_SKELETON to a different Kconfig
> > media: reorganize the drivers menu options
> > media: Kconfig: update the MEDIA_SUPPORT help message
> > media: Kconfig: use a sub-menu to select supported devices
> > media: Kconfig: add an option to filter in/out the embedded drivers
> > media: split test drivers from platform directory
> > media: Kconfig: make filtering devices optional
> > media: Kconfig: move CEC-specific options to cec/Kconfig
> > media: Kconfig: move comment to siano include
> > media: Kconfig: move DVB-specific options to dvb-core/Kconfig
> > media: Kconfig: move V4L2 subdev API to v4l2-core/Kconfig
> > media: Kconfig: move drivers-specific TTPCI_EEPROM Kconfig var
> > media: Kconfig: move media controller core select to main Kconfig
> > media: Kconfig: better organize menu items
> > media: Kconfig: mode firewire comment to firewire/Kconfig
> > media: Kconfig: place all options under a sub-menu
> > media: Kconfig: move the position of sub-driver autoselection
> > media: Kconfig: on !EMBEDDED && !EXPERT, enable driver filtering
> >
> > drivers/media/Kconfig | 216 ++++++++++--------
> > drivers/media/cec/Kconfig | 10 +
> > drivers/media/common/Kconfig | 2 +-
> > drivers/media/dvb-core/Kconfig | 26 +++
> > drivers/media/firewire/Kconfig | 5 +-
> > drivers/media/mc/Kconfig | 9 -
> > drivers/media/mmc/Kconfig | 1 -
> > drivers/media/mmc/siano/Kconfig | 2 +
> > drivers/media/pci/Kconfig | 10 +
> > drivers/media/platform/Kconfig | 24 --
> > drivers/media/platform/Makefile | 5 -
> > drivers/media/test_drivers/Kconfig | 28 +++
> > drivers/media/test_drivers/Makefile | 9 +
> > .../vicodec/Kconfig | 0
> > .../vicodec/Makefile | 0
> > .../vicodec/codec-fwht.c | 0
> > .../vicodec/codec-fwht.h | 0
> > .../vicodec/codec-v4l2-fwht.c | 0
> > .../vicodec/codec-v4l2-fwht.h | 0
> > .../vicodec/vicodec-core.c | 0
> > .../media/{platform => test_drivers}/vim2m.c | 0
> > .../{platform => test_drivers}/vimc/Kconfig | 0
> > .../{platform => test_drivers}/vimc/Makefile | 0
> > .../vimc/vimc-capture.c | 0
> > .../vimc/vimc-common.c | 0
> > .../vimc/vimc-common.h | 0
> > .../vimc/vimc-core.c | 0
> > .../vimc/vimc-debayer.c | 0
> > .../vimc/vimc-scaler.c | 0
> > .../vimc/vimc-sensor.c | 0
> > .../vimc/vimc-streamer.c | 0
> > .../vimc/vimc-streamer.h | 0
> > .../{platform => test_drivers}/vivid/Kconfig | 0
> > .../{platform => test_drivers}/vivid/Makefile | 0
> > .../vivid/vivid-cec.c | 0
> > .../vivid/vivid-cec.h | 0
> > .../vivid/vivid-core.c | 0
> > .../vivid/vivid-core.h | 0
> > .../vivid/vivid-ctrls.c | 0
> > .../vivid/vivid-ctrls.h | 0
> > .../vivid/vivid-kthread-cap.c | 0
> > .../vivid/vivid-kthread-cap.h | 0
> > .../vivid/vivid-kthread-out.c | 0
> > .../vivid/vivid-kthread-out.h | 0
> > .../vivid/vivid-kthread-touch.c | 0
> > .../vivid/vivid-kthread-touch.h | 0
> > .../vivid/vivid-meta-cap.c | 0
> > .../vivid/vivid-meta-cap.h | 0
> > .../vivid/vivid-meta-out.c | 0
> > .../vivid/vivid-meta-out.h | 0
> > .../vivid/vivid-osd.c | 0
> > .../vivid/vivid-osd.h | 0
> > .../vivid/vivid-radio-common.c | 0
> > .../vivid/vivid-radio-common.h | 0
> > .../vivid/vivid-radio-rx.c | 0
> > .../vivid/vivid-radio-rx.h | 0
> > .../vivid/vivid-radio-tx.c | 0
> > .../vivid/vivid-radio-tx.h | 0
> > .../vivid/vivid-rds-gen.c | 0
> > .../vivid/vivid-rds-gen.h | 0
> > .../vivid/vivid-sdr-cap.c | 0
> > .../vivid/vivid-sdr-cap.h | 0
> > .../vivid/vivid-touch-cap.c | 0
> > .../vivid/vivid-touch-cap.h | 0
> > .../vivid/vivid-vbi-cap.c | 0
> > .../vivid/vivid-vbi-cap.h | 0
> > .../vivid/vivid-vbi-gen.c | 0
> > .../vivid/vivid-vbi-gen.h | 0
> > .../vivid/vivid-vbi-out.c | 0
> > .../vivid/vivid-vbi-out.h | 0
> > .../vivid/vivid-vid-cap.c | 0
> > .../vivid/vivid-vid-cap.h | 0
> > .../vivid/vivid-vid-common.c | 0
> > .../vivid/vivid-vid-common.h | 0
> > .../vivid/vivid-vid-out.c | 0
> > .../vivid/vivid-vid-out.h | 0
> > drivers/media/usb/Kconfig | 6 +
> > drivers/media/usb/dvb-usb/Kconfig | 1 +
> > drivers/media/v4l2-core/Kconfig | 19 +-
> > 79 files changed, 222 insertions(+), 151 deletions(-)
> > create mode 100644 drivers/media/test_drivers/Kconfig
> > create mode 100644 drivers/media/test_drivers/Makefile
> > rename drivers/media/{platform => test_drivers}/vicodec/Kconfig (100%)
> > rename drivers/media/{platform => test_drivers}/vicodec/Makefile (100%)
> > rename drivers/media/{platform => test_drivers}/vicodec/codec-fwht.c (100%)
> > rename drivers/media/{platform => test_drivers}/vicodec/codec-fwht.h (100%)
> > rename drivers/media/{platform => test_drivers}/vicodec/codec-v4l2-fwht.c (100%)
> > rename drivers/media/{platform => test_drivers}/vicodec/codec-v4l2-fwht.h (100%)
> > rename drivers/media/{platform => test_drivers}/vicodec/vicodec-core.c (100%)
> > rename drivers/media/{platform => test_drivers}/vim2m.c (100%)
> > rename drivers/media/{platform => test_drivers}/vimc/Kconfig (100%)
> > rename drivers/media/{platform => test_drivers}/vimc/Makefile (100%)
> > rename drivers/media/{platform => test_drivers}/vimc/vimc-capture.c (100%)
> > rename drivers/media/{platform => test_drivers}/vimc/vimc-common.c (100%)
> > rename drivers/media/{platform => test_drivers}/vimc/vimc-common.h (100%)
> > rename drivers/media/{platform => test_drivers}/vimc/vimc-core.c (100%)
> > rename drivers/media/{platform => test_drivers}/vimc/vimc-debayer.c (100%)
> > rename drivers/media/{platform => test_drivers}/vimc/vimc-scaler.c (100%)
> > rename drivers/media/{platform => test_drivers}/vimc/vimc-sensor.c (100%)
> > rename drivers/media/{platform => test_drivers}/vimc/vimc-streamer.c (100%)
> > rename drivers/media/{platform => test_drivers}/vimc/vimc-streamer.h (100%)
> > rename drivers/media/{platform => test_drivers}/vivid/Kconfig (100%)
> > rename drivers/media/{platform => test_drivers}/vivid/Makefile (100%)
> > rename drivers/media/{platform => test_drivers}/vivid/vivid-cec.c (100%)
> > rename drivers/media/{platform => test_drivers}/vivid/vivid-cec.h (100%)
> > rename drivers/media/{platform => test_drivers}/vivid/vivid-core.c (100%)
> > rename drivers/media/{platform => test_drivers}/vivid/vivid-core.h (100%)
> > rename drivers/media/{platform => test_drivers}/vivid/vivid-ctrls.c (100%)
> > rename drivers/media/{platform => test_drivers}/vivid/vivid-ctrls.h (100%)
> > rename drivers/media/{platform => test_drivers}/vivid/vivid-kthread-cap.c (100%)
> > rename drivers/media/{platform => test_drivers}/vivid/vivid-kthread-cap.h (100%)
> > rename drivers/media/{platform => test_drivers}/vivid/vivid-kthread-out.c (100%)
> > rename drivers/media/{platform => test_drivers}/vivid/vivid-kthread-out.h (100%)
> > rename drivers/media/{platform => test_drivers}/vivid/vivid-kthread-touch.c (100%)
> > rename drivers/media/{platform => test_drivers}/vivid/vivid-kthread-touch.h (100%)
> > rename drivers/media/{platform => test_drivers}/vivid/vivid-meta-cap.c (100%)
> > rename drivers/media/{platform => test_drivers}/vivid/vivid-meta-cap.h (100%)
> > rename drivers/media/{platform => test_drivers}/vivid/vivid-meta-out.c (100%)
> > rename drivers/media/{platform => test_drivers}/vivid/vivid-meta-out.h (100%)
> > rename drivers/media/{platform => test_drivers}/vivid/vivid-osd.c (100%)
> > rename drivers/media/{platform => test_drivers}/vivid/vivid-osd.h (100%)
> > rename drivers/media/{platform => test_drivers}/vivid/vivid-radio-common.c (100%)
> > rename drivers/media/{platform => test_drivers}/vivid/vivid-radio-common.h (100%)
> > rename drivers/media/{platform => test_drivers}/vivid/vivid-radio-rx.c (100%)
> > rename drivers/media/{platform => test_drivers}/vivid/vivid-radio-rx.h (100%)
> > rename drivers/media/{platform => test_drivers}/vivid/vivid-radio-tx.c (100%)
> > rename drivers/media/{platform => test_drivers}/vivid/vivid-radio-tx.h (100%)
> > rename drivers/media/{platform => test_drivers}/vivid/vivid-rds-gen.c (100%)
> > rename drivers/media/{platform => test_drivers}/vivid/vivid-rds-gen.h (100%)
> > rename drivers/media/{platform => test_drivers}/vivid/vivid-sdr-cap.c (100%)
> > rename drivers/media/{platform => test_drivers}/vivid/vivid-sdr-cap.h (100%)
> > rename drivers/media/{platform => test_drivers}/vivid/vivid-touch-cap.c (100%)
> > rename drivers/media/{platform => test_drivers}/vivid/vivid-touch-cap.h (100%)
> > rename drivers/media/{platform => test_drivers}/vivid/vivid-vbi-cap.c (100%)
> > rename drivers/media/{platform => test_drivers}/vivid/vivid-vbi-cap.h (100%)
> > rename drivers/media/{platform => test_drivers}/vivid/vivid-vbi-gen.c (100%)
> > rename drivers/media/{platform => test_drivers}/vivid/vivid-vbi-gen.h (100%)
> > rename drivers/media/{platform => test_drivers}/vivid/vivid-vbi-out.c (100%)
> > rename drivers/media/{platform => test_drivers}/vivid/vivid-vbi-out.h (100%)
> > rename drivers/media/{platform => test_drivers}/vivid/vivid-vid-cap.c (100%)
> > rename drivers/media/{platform => test_drivers}/vivid/vivid-vid-cap.h (100%)
> > rename drivers/media/{platform => test_drivers}/vivid/vivid-vid-common.c (100%)
> > rename drivers/media/{platform => test_drivers}/vivid/vivid-vid-common.h (100%)
> > rename drivers/media/{platform => test_drivers}/vivid/vivid-vid-out.c (100%)
> > rename drivers/media/{platform => test_drivers}/vivid/vivid-vid-out.h (100%)
> >
>



Thanks,
Mauro

2020-04-16 09:56:20

by David Hildenbrand

[permalink] [raw]
Subject: Re: [PATCH v2 00/20] Reorganize media Kconfig

On 24.03.20 14:42, Mauro Carvalho Chehab wrote:
> This patch series do lots of reorg at the media Kconfig options.
> It also move test drivers from platform dir to a new one.
>
> After this change, the main config is organized on menus, allowing to
> select:
>
> - type of devices selection - the filtering options
> - Media core options - with API and other core stuff
> - Media core extra options
> - Media drivers
> - Media ancillary drivers
>
> The "type of devices" menu has the filtering options for:
>
> - Cameras and video grabbers
> - Analog TV
> - Digital TV
> - AM/FM radio receivers/transmitters
> - SDR
> - CEC
> - Embeded devices (SoC)
> - Test drivers
>
> This way, one interested only on embedded devices can unselect
> everything but "Embedded devices (SoC)" option.
>
> Distros for PC/Laptops can enable everything but
> "Embedded devices (SoC)" and "Test drivers".
>
> Users can select just what they want, without bothering with
> hundreds of options that he won't have any clue about their
> meanings.
>
> Mauro Carvalho Chehab (20):
> media: dvb-usb: auto-select CYPRESS_FIRMWARE
> media: Kconfig: not all V4L2 platform drivers are for camera
> media: pci: move VIDEO_PCI_SKELETON to a different Kconfig
> media: reorganize the drivers menu options
> media: Kconfig: update the MEDIA_SUPPORT help message
> media: Kconfig: use a sub-menu to select supported devices
> media: Kconfig: add an option to filter in/out the embedded drivers
> media: split test drivers from platform directory
> media: Kconfig: make filtering devices optional
> media: Kconfig: move CEC-specific options to cec/Kconfig
> media: Kconfig: move comment to siano include
> media: Kconfig: move DVB-specific options to dvb-core/Kconfig
> media: Kconfig: move V4L2 subdev API to v4l2-core/Kconfig
> media: Kconfig: move drivers-specific TTPCI_EEPROM Kconfig var
> media: Kconfig: move media controller core select to main Kconfig
> media: Kconfig: better organize menu items
> media: Kconfig: mode firewire comment to firewire/Kconfig
> media: Kconfig: place all options under a sub-menu
> media: Kconfig: move the position of sub-driver autoselection
> media: Kconfig: on !EMBEDDED && !EXPERT, enable driver filtering
>

There is a patch in linux-next (which I cannot find on lkml), which
breaks the build on s390x:

4be5e8648b0c287aefc6ac3f3a0b12c696054f43 is the first bad commit
commit 4be5e8648b0c287aefc6ac3f3a0b12c696054f43
Author: Mauro Carvalho Chehab <[email protected]>
Date: Wed Apr 15 11:03:40 2020 +0200

media: move CEC platform drivers to a separate directory

As CEC support doesn't depend on MEDIA_SUPPORT, let's
place the platform drivers outside the media menu.

As a side effect, instead of depends on PCI, seco driver
can select it (and DMI).

Acked-by: Hans Verkuil <[email protected]>
Signed-off-by: Mauro Carvalho Chehab <[email protected]>


[linux1@rhkvm01 linux]$ make -j4
scripts/kconfig/conf --syncconfig Kconfig
drivers/pci/Kconfig:16:error: recursive dependency detected!
drivers/pci/Kconfig:16: symbol PCI is selected by VIDEO_SECO_CEC
drivers/media/cec/platform/Kconfig:100: symbol VIDEO_SECO_CEC depends on
MEDIA_CEC_SUPPORT
drivers/media/cec/Kconfig:27: symbol MEDIA_CEC_SUPPORT default is
visible depending on MEDIA_SUPPORT_FILTER
drivers/media/Kconfig:25: symbol MEDIA_SUPPORT_FILTER depends on
MEDIA_SUPPORT
drivers/media/Kconfig:12: symbol MEDIA_SUPPORT depends on HAS_IOMEM
arch/s390/Kconfig:721: symbol HAS_IOMEM default value contains PCI
For a resolution refer to Documentation/kbuild/kconfig-language.rst
subsection "Kconfig recursive dependency limitations"

make[3]: *** [syncconfig] Error 1
make[2]: *** [syncconfig] Error 2
make[1]: *** [include/config/auto.conf.cmd] Error 2
make: *** [sub-make] Error 2



--
Thanks,

David / dhildenb