diff mbox

media: none of the drivers should be enabled by default

Message ID Pine.LNX.4.64.1108301921040.19151@axis700.grange (mailing list archive)
State New, archived
Headers show

Commit Message

Guennadi Liakhovetski Aug. 30, 2011, 5:22 p.m. UTC
None of the media drivers are compulsory, let users select which drivers
they want to build, instead of having to unselect them one by one.

Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
---
 drivers/media/common/tuners/Kconfig |   23 +----------------------
 drivers/media/radio/Kconfig         |    1 -
 drivers/media/rc/Kconfig            |   16 +---------------
 drivers/media/rc/keymaps/Kconfig    |    1 -
 drivers/media/video/Kconfig         |    7 ++-----
 5 files changed, 4 insertions(+), 44 deletions(-)

Comments

Michael Ira Krufky Aug. 30, 2011, 5:32 p.m. UTC | #1
On Tue, Aug 30, 2011 at 1:22 PM, Guennadi Liakhovetski
<g.liakhovetski@gmx.de> wrote:
> None of the media drivers are compulsory, let users select which drivers
> they want to build, instead of having to unselect them one by one.
>
> Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>

I would be against this particular patch.  When MEDIA_TUNER_CUSTOMISE
is DISABLED, Kconfig automatically selects the required tuners.  When
MEDIA_TUNER_CUSTOMISE is *ENABLED*, the menu opens up with everything
selected by default, users can choose which modules not to build.  I
believe that your patch will create a new user-support nightmare.  Is
there any way to justify a need for this type of change?  Can't you
just leave MEDIA_TUNER_CUSTOMISE disabled?  If MEDIA_TUNER_CUSTOMISE
is disabled and you are not building any drivers that require a tuner
module, then the tuner modules will not be built -- if that isn't
functioning properly, then let's fix that, instead.

Regards,

Michael Krufky


> ---
>  drivers/media/common/tuners/Kconfig |   23 +----------------------
>  drivers/media/radio/Kconfig         |    1 -
>  drivers/media/rc/Kconfig            |   16 +---------------
>  drivers/media/rc/keymaps/Kconfig    |    1 -
>  drivers/media/video/Kconfig         |    7 ++-----
>  5 files changed, 4 insertions(+), 44 deletions(-)
>
> diff --git a/drivers/media/common/tuners/Kconfig b/drivers/media/common/tuners/Kconfig
> index 996302a..1e53057 100644
> --- a/drivers/media/common/tuners/Kconfig
> +++ b/drivers/media/common/tuners/Kconfig
> @@ -33,7 +33,7 @@ config MEDIA_TUNER
>        select MEDIA_TUNER_MC44S803 if !MEDIA_TUNER_CUSTOMISE
>
>  config MEDIA_TUNER_CUSTOMISE
> -       bool "Customize analog and hybrid tuner modules to build"
> +       bool "Select analog and hybrid tuner modules to build"
>        depends on MEDIA_TUNER
>        default y if EXPERT
>        help
> @@ -52,7 +52,6 @@ config MEDIA_TUNER_SIMPLE
>        tristate "Simple tuner support"
>        depends on VIDEO_MEDIA && I2C
>        select MEDIA_TUNER_TDA9887
> -       default m if MEDIA_TUNER_CUSTOMISE
>        help
>          Say Y here to include support for various simple tuners.
>
> @@ -61,28 +60,24 @@ config MEDIA_TUNER_TDA8290
>        depends on VIDEO_MEDIA && I2C
>        select MEDIA_TUNER_TDA827X
>        select MEDIA_TUNER_TDA18271
> -       default m if MEDIA_TUNER_CUSTOMISE
>        help
>          Say Y here to include support for Philips TDA8290+8275(a) tuner.
>
>  config MEDIA_TUNER_TDA827X
>        tristate "Philips TDA827X silicon tuner"
>        depends on VIDEO_MEDIA && I2C
> -       default m if MEDIA_TUNER_CUSTOMISE
>        help
>          A DVB-T silicon tuner module. Say Y when you want to support this tuner.
>
>  config MEDIA_TUNER_TDA18271
>        tristate "NXP TDA18271 silicon tuner"
>        depends on VIDEO_MEDIA && I2C
> -       default m if MEDIA_TUNER_CUSTOMISE
>        help
>          A silicon tuner module. Say Y when you want to support this tuner.
>
>  config MEDIA_TUNER_TDA9887
>        tristate "TDA 9885/6/7 analog IF demodulator"
>        depends on VIDEO_MEDIA && I2C
> -       default m if MEDIA_TUNER_CUSTOMISE
>        help
>          Say Y here to include support for Philips TDA9885/6/7
>          analog IF demodulator.
> @@ -91,63 +86,54 @@ config MEDIA_TUNER_TEA5761
>        tristate "TEA 5761 radio tuner (EXPERIMENTAL)"
>        depends on VIDEO_MEDIA && I2C
>        depends on EXPERIMENTAL
> -       default m if MEDIA_TUNER_CUSTOMISE
>        help
>          Say Y here to include support for the Philips TEA5761 radio tuner.
>
>  config MEDIA_TUNER_TEA5767
>        tristate "TEA 5767 radio tuner"
>        depends on VIDEO_MEDIA && I2C
> -       default m if MEDIA_TUNER_CUSTOMISE
>        help
>          Say Y here to include support for the Philips TEA5767 radio tuner.
>
>  config MEDIA_TUNER_MT20XX
>        tristate "Microtune 2032 / 2050 tuners"
>        depends on VIDEO_MEDIA && I2C
> -       default m if MEDIA_TUNER_CUSTOMISE
>        help
>          Say Y here to include support for the MT2032 / MT2050 tuner.
>
>  config MEDIA_TUNER_MT2060
>        tristate "Microtune MT2060 silicon IF tuner"
>        depends on VIDEO_MEDIA && I2C
> -       default m if MEDIA_TUNER_CUSTOMISE
>        help
>          A driver for the silicon IF tuner MT2060 from Microtune.
>
>  config MEDIA_TUNER_MT2266
>        tristate "Microtune MT2266 silicon tuner"
>        depends on VIDEO_MEDIA && I2C
> -       default m if MEDIA_TUNER_CUSTOMISE
>        help
>          A driver for the silicon baseband tuner MT2266 from Microtune.
>
>  config MEDIA_TUNER_MT2131
>        tristate "Microtune MT2131 silicon tuner"
>        depends on VIDEO_MEDIA && I2C
> -       default m if MEDIA_TUNER_CUSTOMISE
>        help
>          A driver for the silicon baseband tuner MT2131 from Microtune.
>
>  config MEDIA_TUNER_QT1010
>        tristate "Quantek QT1010 silicon tuner"
>        depends on VIDEO_MEDIA && I2C
> -       default m if MEDIA_TUNER_CUSTOMISE
>        help
>          A driver for the silicon tuner QT1010 from Quantek.
>
>  config MEDIA_TUNER_XC2028
>        tristate "XCeive xc2028/xc3028 tuners"
>        depends on VIDEO_MEDIA && I2C
> -       default m if MEDIA_TUNER_CUSTOMISE
>        help
>          Say Y here to include support for the xc2028/xc3028 tuners.
>
>  config MEDIA_TUNER_XC5000
>        tristate "Xceive XC5000 silicon tuner"
>        depends on VIDEO_MEDIA && I2C
> -       default m if MEDIA_TUNER_CUSTOMISE
>        help
>          A driver for the silicon tuner XC5000 from Xceive.
>          This device is only used inside a SiP called together with a
> @@ -156,7 +142,6 @@ config MEDIA_TUNER_XC5000
>  config MEDIA_TUNER_XC4000
>        tristate "Xceive XC4000 silicon tuner"
>        depends on VIDEO_MEDIA && I2C
> -       default m if MEDIA_TUNER_CUSTOMISE
>        help
>          A driver for the silicon tuner XC4000 from Xceive.
>          This device is only used inside a SiP called together with a
> @@ -165,42 +150,36 @@ config MEDIA_TUNER_XC4000
>  config MEDIA_TUNER_MXL5005S
>        tristate "MaxLinear MSL5005S silicon tuner"
>        depends on VIDEO_MEDIA && I2C
> -       default m if MEDIA_TUNER_CUSTOMISE
>        help
>          A driver for the silicon tuner MXL5005S from MaxLinear.
>
>  config MEDIA_TUNER_MXL5007T
>        tristate "MaxLinear MxL5007T silicon tuner"
>        depends on VIDEO_MEDIA && I2C
> -       default m if MEDIA_TUNER_CUSTOMISE
>        help
>          A driver for the silicon tuner MxL5007T from MaxLinear.
>
>  config MEDIA_TUNER_MC44S803
>        tristate "Freescale MC44S803 Low Power CMOS Broadband tuners"
>        depends on VIDEO_MEDIA && I2C
> -       default m if MEDIA_TUNER_CUSTOMISE
>        help
>          Say Y here to support the Freescale MC44S803 based tuners
>
>  config MEDIA_TUNER_MAX2165
>        tristate "Maxim MAX2165 silicon tuner"
>        depends on VIDEO_MEDIA && I2C
> -       default m if MEDIA_TUNER_CUSTOMISE
>        help
>          A driver for the silicon tuner MAX2165 from Maxim.
>
>  config MEDIA_TUNER_TDA18218
>        tristate "NXP TDA18218 silicon tuner"
>        depends on VIDEO_MEDIA && I2C
> -       default m if MEDIA_TUNER_CUSTOMISE
>        help
>          NXP TDA18218 silicon tuner driver.
>
>  config MEDIA_TUNER_TDA18212
>        tristate "NXP TDA18212 silicon tuner"
>        depends on VIDEO_MEDIA && I2C
> -       default m if MEDIA_TUNER_CUSTOMISE
>        help
>          NXP TDA18212 silicon tuner driver.
>
> diff --git a/drivers/media/radio/Kconfig b/drivers/media/radio/Kconfig
> index 52798a1..0195335 100644
> --- a/drivers/media/radio/Kconfig
> +++ b/drivers/media/radio/Kconfig
> @@ -5,7 +5,6 @@
>  menuconfig RADIO_ADAPTERS
>        bool "Radio Adapters"
>        depends on VIDEO_V4L2
> -       default y
>        ---help---
>          Say Y here to enable selecting AM/FM radio adapters.
>
> diff --git a/drivers/media/rc/Kconfig b/drivers/media/rc/Kconfig
> index 899f783..2a4f829 100644
> --- a/drivers/media/rc/Kconfig
> +++ b/drivers/media/rc/Kconfig
> @@ -1,7 +1,6 @@
>  menuconfig RC_CORE
>        tristate "Remote Controller adapters"
>        depends on INPUT
> -       default INPUT
>        ---help---
>          Enable support for Remote Controllers on Linux. This is
>          needed in order to support several video capture adapters.
> @@ -11,12 +10,9 @@ menuconfig RC_CORE
>          if you don't need IR, as otherwise, you may not be able to
>          compile the driver for your adapter.
>
> -if RC_CORE
> -
>  config LIRC
>        tristate
> -       default y
> -
> +       depends on RC_CORE
>        ---help---
>           Enable this option to build the Linux Infrared Remote
>           Control (LIRC) core device interface driver. The LIRC
> @@ -30,7 +26,6 @@ config IR_NEC_DECODER
>        tristate "Enable IR raw decoder for the NEC protocol"
>        depends on RC_CORE
>        select BITREVERSE
> -       default y
>
>        ---help---
>           Enable this option if you have IR with NEC protocol, and
> @@ -40,7 +35,6 @@ config IR_RC5_DECODER
>        tristate "Enable IR raw decoder for the RC-5 protocol"
>        depends on RC_CORE
>        select BITREVERSE
> -       default y
>
>        ---help---
>           Enable this option if you have IR with RC-5 protocol, and
> @@ -50,7 +44,6 @@ config IR_RC6_DECODER
>        tristate "Enable IR raw decoder for the RC6 protocol"
>        depends on RC_CORE
>        select BITREVERSE
> -       default y
>
>        ---help---
>           Enable this option if you have an infrared remote control which
> @@ -60,7 +53,6 @@ config IR_JVC_DECODER
>        tristate "Enable IR raw decoder for the JVC protocol"
>        depends on RC_CORE
>        select BITREVERSE
> -       default y
>
>        ---help---
>           Enable this option if you have an infrared remote control which
> @@ -69,7 +61,6 @@ config IR_JVC_DECODER
>  config IR_SONY_DECODER
>        tristate "Enable IR raw decoder for the Sony protocol"
>        depends on RC_CORE
> -       default y
>
>        ---help---
>           Enable this option if you have an infrared remote control which
> @@ -79,7 +70,6 @@ config IR_RC5_SZ_DECODER
>        tristate "Enable IR raw decoder for the RC-5 (streamzap) protocol"
>        depends on RC_CORE
>        select BITREVERSE
> -       default y
>
>        ---help---
>           Enable this option if you have IR with RC-5 (streamzap) protocol,
> @@ -91,7 +81,6 @@ config IR_MCE_KBD_DECODER
>        tristate "Enable IR raw decoder for the MCE keyboard/mouse protocol"
>        depends on RC_CORE
>        select BITREVERSE
> -       default y
>
>        ---help---
>           Enable this option if you have a Microsoft Remote Keyboard for
> @@ -102,7 +91,6 @@ config IR_LIRC_CODEC
>        tristate "Enable IR to LIRC bridge"
>        depends on RC_CORE
>        depends on LIRC
> -       default y
>
>        ---help---
>           Enable this option to pass raw IR to and from userspace via
> @@ -236,5 +224,3 @@ config RC_LOOPBACK
>
>           To compile this driver as a module, choose M here: the module will
>           be called rc_loopback.
> -
> -endif #RC_CORE
> diff --git a/drivers/media/rc/keymaps/Kconfig b/drivers/media/rc/keymaps/Kconfig
> index 8e615fd..dbaacf1 100644
> --- a/drivers/media/rc/keymaps/Kconfig
> +++ b/drivers/media/rc/keymaps/Kconfig
> @@ -1,7 +1,6 @@
>  config RC_MAP
>        tristate "Compile Remote Controller keymap modules"
>        depends on RC_CORE
> -       default y
>
>        ---help---
>           This option enables the compilation of lots of Remote
> diff --git a/drivers/media/video/Kconfig b/drivers/media/video/Kconfig
> index f574dc0..d26443d 100644
> --- a/drivers/media/video/Kconfig
> +++ b/drivers/media/video/Kconfig
> @@ -73,7 +73,6 @@ config VIDEOBUF2_DMA_SG
>  menuconfig VIDEO_CAPTURE_DRIVERS
>        bool "Video capture adapters"
>        depends on VIDEO_V4L2
> -       default y
>        ---help---
>          Say Y here to enable selecting the video adapters for
>          webcams, analog TV, and hybrid analog/digital TV.
> @@ -113,8 +112,8 @@ config VIDEO_HELPER_CHIPS_AUTO
>
>  config VIDEO_IR_I2C
>        tristate "I2C module for IR" if !VIDEO_HELPER_CHIPS_AUTO
> -       depends on I2C && RC_CORE
> -       default y
> +       depends on I2C
> +       select RC_CORE
>        ---help---
>          Most boards have an IR chip directly connected via GPIO. However,
>          some video boards have the IR connected via I2C bus.
> @@ -556,7 +555,6 @@ config VIDEO_VIU
>        tristate "Freescale VIU Video Driver"
>        depends on VIDEO_V4L2 && PPC_MPC512x
>        select VIDEOBUF_DMA_CONTIG
> -       default y
>        ---help---
>          Support for Freescale VIU video driver. This device captures
>          video data, or overlays video on DIU frame buffer.
> @@ -986,7 +984,6 @@ source "drivers/media/video/s5p-tv/Kconfig"
>  menuconfig V4L_USB_DRIVERS
>        bool "V4L USB devices"
>        depends on USB
> -       default y
>
>  if V4L_USB_DRIVERS && USB
>
> --
> 1.7.2.5
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-media" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Michael Ira Krufky Aug. 30, 2011, 5:35 p.m. UTC | #2
On Tue, Aug 30, 2011 at 1:32 PM, Michael Krufky <mkrufky@linuxtv.org> wrote:
> On Tue, Aug 30, 2011 at 1:22 PM, Guennadi Liakhovetski
> <g.liakhovetski@gmx.de> wrote:
>> None of the media drivers are compulsory, let users select which drivers
>> they want to build, instead of having to unselect them one by one.
>>
>> Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
>
> I would be against this particular patch.  When MEDIA_TUNER_CUSTOMISE
> is DISABLED, Kconfig automatically selects the required tuners.  When
> MEDIA_TUNER_CUSTOMISE is *ENABLED*, the menu opens up with everything
> selected by default, users can choose which modules not to build.  I
> believe that your patch will create a new user-support nightmare.  Is
> there any way to justify a need for this type of change?  Can't you
> just leave MEDIA_TUNER_CUSTOMISE disabled?  If MEDIA_TUNER_CUSTOMISE
> is disabled and you are not building any drivers that require a tuner
> module, then the tuner modules will not be built -- if that isn't
> functioning properly, then let's fix that, instead.

I see now that this applies to decoders and such as well -- not only
tuners.  I see this patch as a step backwards, where the current state
is user friendly enough to automatically select required module
dependencies while still allowing customization.


Michael Krufky
>
>
>> ---
>>  drivers/media/common/tuners/Kconfig |   23 +----------------------
>>  drivers/media/radio/Kconfig         |    1 -
>>  drivers/media/rc/Kconfig            |   16 +---------------
>>  drivers/media/rc/keymaps/Kconfig    |    1 -
>>  drivers/media/video/Kconfig         |    7 ++-----
>>  5 files changed, 4 insertions(+), 44 deletions(-)
>>
>> diff --git a/drivers/media/common/tuners/Kconfig b/drivers/media/common/tuners/Kconfig
>> index 996302a..1e53057 100644
>> --- a/drivers/media/common/tuners/Kconfig
>> +++ b/drivers/media/common/tuners/Kconfig
>> @@ -33,7 +33,7 @@ config MEDIA_TUNER
>>        select MEDIA_TUNER_MC44S803 if !MEDIA_TUNER_CUSTOMISE
>>
>>  config MEDIA_TUNER_CUSTOMISE
>> -       bool "Customize analog and hybrid tuner modules to build"
>> +       bool "Select analog and hybrid tuner modules to build"
>>        depends on MEDIA_TUNER
>>        default y if EXPERT
>>        help
>> @@ -52,7 +52,6 @@ config MEDIA_TUNER_SIMPLE
>>        tristate "Simple tuner support"
>>        depends on VIDEO_MEDIA && I2C
>>        select MEDIA_TUNER_TDA9887
>> -       default m if MEDIA_TUNER_CUSTOMISE
>>        help
>>          Say Y here to include support for various simple tuners.
>>
>> @@ -61,28 +60,24 @@ config MEDIA_TUNER_TDA8290
>>        depends on VIDEO_MEDIA && I2C
>>        select MEDIA_TUNER_TDA827X
>>        select MEDIA_TUNER_TDA18271
>> -       default m if MEDIA_TUNER_CUSTOMISE
>>        help
>>          Say Y here to include support for Philips TDA8290+8275(a) tuner.
>>
>>  config MEDIA_TUNER_TDA827X
>>        tristate "Philips TDA827X silicon tuner"
>>        depends on VIDEO_MEDIA && I2C
>> -       default m if MEDIA_TUNER_CUSTOMISE
>>        help
>>          A DVB-T silicon tuner module. Say Y when you want to support this tuner.
>>
>>  config MEDIA_TUNER_TDA18271
>>        tristate "NXP TDA18271 silicon tuner"
>>        depends on VIDEO_MEDIA && I2C
>> -       default m if MEDIA_TUNER_CUSTOMISE
>>        help
>>          A silicon tuner module. Say Y when you want to support this tuner.
>>
>>  config MEDIA_TUNER_TDA9887
>>        tristate "TDA 9885/6/7 analog IF demodulator"
>>        depends on VIDEO_MEDIA && I2C
>> -       default m if MEDIA_TUNER_CUSTOMISE
>>        help
>>          Say Y here to include support for Philips TDA9885/6/7
>>          analog IF demodulator.
>> @@ -91,63 +86,54 @@ config MEDIA_TUNER_TEA5761
>>        tristate "TEA 5761 radio tuner (EXPERIMENTAL)"
>>        depends on VIDEO_MEDIA && I2C
>>        depends on EXPERIMENTAL
>> -       default m if MEDIA_TUNER_CUSTOMISE
>>        help
>>          Say Y here to include support for the Philips TEA5761 radio tuner.
>>
>>  config MEDIA_TUNER_TEA5767
>>        tristate "TEA 5767 radio tuner"
>>        depends on VIDEO_MEDIA && I2C
>> -       default m if MEDIA_TUNER_CUSTOMISE
>>        help
>>          Say Y here to include support for the Philips TEA5767 radio tuner.
>>
>>  config MEDIA_TUNER_MT20XX
>>        tristate "Microtune 2032 / 2050 tuners"
>>        depends on VIDEO_MEDIA && I2C
>> -       default m if MEDIA_TUNER_CUSTOMISE
>>        help
>>          Say Y here to include support for the MT2032 / MT2050 tuner.
>>
>>  config MEDIA_TUNER_MT2060
>>        tristate "Microtune MT2060 silicon IF tuner"
>>        depends on VIDEO_MEDIA && I2C
>> -       default m if MEDIA_TUNER_CUSTOMISE
>>        help
>>          A driver for the silicon IF tuner MT2060 from Microtune.
>>
>>  config MEDIA_TUNER_MT2266
>>        tristate "Microtune MT2266 silicon tuner"
>>        depends on VIDEO_MEDIA && I2C
>> -       default m if MEDIA_TUNER_CUSTOMISE
>>        help
>>          A driver for the silicon baseband tuner MT2266 from Microtune.
>>
>>  config MEDIA_TUNER_MT2131
>>        tristate "Microtune MT2131 silicon tuner"
>>        depends on VIDEO_MEDIA && I2C
>> -       default m if MEDIA_TUNER_CUSTOMISE
>>        help
>>          A driver for the silicon baseband tuner MT2131 from Microtune.
>>
>>  config MEDIA_TUNER_QT1010
>>        tristate "Quantek QT1010 silicon tuner"
>>        depends on VIDEO_MEDIA && I2C
>> -       default m if MEDIA_TUNER_CUSTOMISE
>>        help
>>          A driver for the silicon tuner QT1010 from Quantek.
>>
>>  config MEDIA_TUNER_XC2028
>>        tristate "XCeive xc2028/xc3028 tuners"
>>        depends on VIDEO_MEDIA && I2C
>> -       default m if MEDIA_TUNER_CUSTOMISE
>>        help
>>          Say Y here to include support for the xc2028/xc3028 tuners.
>>
>>  config MEDIA_TUNER_XC5000
>>        tristate "Xceive XC5000 silicon tuner"
>>        depends on VIDEO_MEDIA && I2C
>> -       default m if MEDIA_TUNER_CUSTOMISE
>>        help
>>          A driver for the silicon tuner XC5000 from Xceive.
>>          This device is only used inside a SiP called together with a
>> @@ -156,7 +142,6 @@ config MEDIA_TUNER_XC5000
>>  config MEDIA_TUNER_XC4000
>>        tristate "Xceive XC4000 silicon tuner"
>>        depends on VIDEO_MEDIA && I2C
>> -       default m if MEDIA_TUNER_CUSTOMISE
>>        help
>>          A driver for the silicon tuner XC4000 from Xceive.
>>          This device is only used inside a SiP called together with a
>> @@ -165,42 +150,36 @@ config MEDIA_TUNER_XC4000
>>  config MEDIA_TUNER_MXL5005S
>>        tristate "MaxLinear MSL5005S silicon tuner"
>>        depends on VIDEO_MEDIA && I2C
>> -       default m if MEDIA_TUNER_CUSTOMISE
>>        help
>>          A driver for the silicon tuner MXL5005S from MaxLinear.
>>
>>  config MEDIA_TUNER_MXL5007T
>>        tristate "MaxLinear MxL5007T silicon tuner"
>>        depends on VIDEO_MEDIA && I2C
>> -       default m if MEDIA_TUNER_CUSTOMISE
>>        help
>>          A driver for the silicon tuner MxL5007T from MaxLinear.
>>
>>  config MEDIA_TUNER_MC44S803
>>        tristate "Freescale MC44S803 Low Power CMOS Broadband tuners"
>>        depends on VIDEO_MEDIA && I2C
>> -       default m if MEDIA_TUNER_CUSTOMISE
>>        help
>>          Say Y here to support the Freescale MC44S803 based tuners
>>
>>  config MEDIA_TUNER_MAX2165
>>        tristate "Maxim MAX2165 silicon tuner"
>>        depends on VIDEO_MEDIA && I2C
>> -       default m if MEDIA_TUNER_CUSTOMISE
>>        help
>>          A driver for the silicon tuner MAX2165 from Maxim.
>>
>>  config MEDIA_TUNER_TDA18218
>>        tristate "NXP TDA18218 silicon tuner"
>>        depends on VIDEO_MEDIA && I2C
>> -       default m if MEDIA_TUNER_CUSTOMISE
>>        help
>>          NXP TDA18218 silicon tuner driver.
>>
>>  config MEDIA_TUNER_TDA18212
>>        tristate "NXP TDA18212 silicon tuner"
>>        depends on VIDEO_MEDIA && I2C
>> -       default m if MEDIA_TUNER_CUSTOMISE
>>        help
>>          NXP TDA18212 silicon tuner driver.
>>
>> diff --git a/drivers/media/radio/Kconfig b/drivers/media/radio/Kconfig
>> index 52798a1..0195335 100644
>> --- a/drivers/media/radio/Kconfig
>> +++ b/drivers/media/radio/Kconfig
>> @@ -5,7 +5,6 @@
>>  menuconfig RADIO_ADAPTERS
>>        bool "Radio Adapters"
>>        depends on VIDEO_V4L2
>> -       default y
>>        ---help---
>>          Say Y here to enable selecting AM/FM radio adapters.
>>
>> diff --git a/drivers/media/rc/Kconfig b/drivers/media/rc/Kconfig
>> index 899f783..2a4f829 100644
>> --- a/drivers/media/rc/Kconfig
>> +++ b/drivers/media/rc/Kconfig
>> @@ -1,7 +1,6 @@
>>  menuconfig RC_CORE
>>        tristate "Remote Controller adapters"
>>        depends on INPUT
>> -       default INPUT
>>        ---help---
>>          Enable support for Remote Controllers on Linux. This is
>>          needed in order to support several video capture adapters.
>> @@ -11,12 +10,9 @@ menuconfig RC_CORE
>>          if you don't need IR, as otherwise, you may not be able to
>>          compile the driver for your adapter.
>>
>> -if RC_CORE
>> -
>>  config LIRC
>>        tristate
>> -       default y
>> -
>> +       depends on RC_CORE
>>        ---help---
>>           Enable this option to build the Linux Infrared Remote
>>           Control (LIRC) core device interface driver. The LIRC
>> @@ -30,7 +26,6 @@ config IR_NEC_DECODER
>>        tristate "Enable IR raw decoder for the NEC protocol"
>>        depends on RC_CORE
>>        select BITREVERSE
>> -       default y
>>
>>        ---help---
>>           Enable this option if you have IR with NEC protocol, and
>> @@ -40,7 +35,6 @@ config IR_RC5_DECODER
>>        tristate "Enable IR raw decoder for the RC-5 protocol"
>>        depends on RC_CORE
>>        select BITREVERSE
>> -       default y
>>
>>        ---help---
>>           Enable this option if you have IR with RC-5 protocol, and
>> @@ -50,7 +44,6 @@ config IR_RC6_DECODER
>>        tristate "Enable IR raw decoder for the RC6 protocol"
>>        depends on RC_CORE
>>        select BITREVERSE
>> -       default y
>>
>>        ---help---
>>           Enable this option if you have an infrared remote control which
>> @@ -60,7 +53,6 @@ config IR_JVC_DECODER
>>        tristate "Enable IR raw decoder for the JVC protocol"
>>        depends on RC_CORE
>>        select BITREVERSE
>> -       default y
>>
>>        ---help---
>>           Enable this option if you have an infrared remote control which
>> @@ -69,7 +61,6 @@ config IR_JVC_DECODER
>>  config IR_SONY_DECODER
>>        tristate "Enable IR raw decoder for the Sony protocol"
>>        depends on RC_CORE
>> -       default y
>>
>>        ---help---
>>           Enable this option if you have an infrared remote control which
>> @@ -79,7 +70,6 @@ config IR_RC5_SZ_DECODER
>>        tristate "Enable IR raw decoder for the RC-5 (streamzap) protocol"
>>        depends on RC_CORE
>>        select BITREVERSE
>> -       default y
>>
>>        ---help---
>>           Enable this option if you have IR with RC-5 (streamzap) protocol,
>> @@ -91,7 +81,6 @@ config IR_MCE_KBD_DECODER
>>        tristate "Enable IR raw decoder for the MCE keyboard/mouse protocol"
>>        depends on RC_CORE
>>        select BITREVERSE
>> -       default y
>>
>>        ---help---
>>           Enable this option if you have a Microsoft Remote Keyboard for
>> @@ -102,7 +91,6 @@ config IR_LIRC_CODEC
>>        tristate "Enable IR to LIRC bridge"
>>        depends on RC_CORE
>>        depends on LIRC
>> -       default y
>>
>>        ---help---
>>           Enable this option to pass raw IR to and from userspace via
>> @@ -236,5 +224,3 @@ config RC_LOOPBACK
>>
>>           To compile this driver as a module, choose M here: the module will
>>           be called rc_loopback.
>> -
>> -endif #RC_CORE
>> diff --git a/drivers/media/rc/keymaps/Kconfig b/drivers/media/rc/keymaps/Kconfig
>> index 8e615fd..dbaacf1 100644
>> --- a/drivers/media/rc/keymaps/Kconfig
>> +++ b/drivers/media/rc/keymaps/Kconfig
>> @@ -1,7 +1,6 @@
>>  config RC_MAP
>>        tristate "Compile Remote Controller keymap modules"
>>        depends on RC_CORE
>> -       default y
>>
>>        ---help---
>>           This option enables the compilation of lots of Remote
>> diff --git a/drivers/media/video/Kconfig b/drivers/media/video/Kconfig
>> index f574dc0..d26443d 100644
>> --- a/drivers/media/video/Kconfig
>> +++ b/drivers/media/video/Kconfig
>> @@ -73,7 +73,6 @@ config VIDEOBUF2_DMA_SG
>>  menuconfig VIDEO_CAPTURE_DRIVERS
>>        bool "Video capture adapters"
>>        depends on VIDEO_V4L2
>> -       default y
>>        ---help---
>>          Say Y here to enable selecting the video adapters for
>>          webcams, analog TV, and hybrid analog/digital TV.
>> @@ -113,8 +112,8 @@ config VIDEO_HELPER_CHIPS_AUTO
>>
>>  config VIDEO_IR_I2C
>>        tristate "I2C module for IR" if !VIDEO_HELPER_CHIPS_AUTO
>> -       depends on I2C && RC_CORE
>> -       default y
>> +       depends on I2C
>> +       select RC_CORE
>>        ---help---
>>          Most boards have an IR chip directly connected via GPIO. However,
>>          some video boards have the IR connected via I2C bus.
>> @@ -556,7 +555,6 @@ config VIDEO_VIU
>>        tristate "Freescale VIU Video Driver"
>>        depends on VIDEO_V4L2 && PPC_MPC512x
>>        select VIDEOBUF_DMA_CONTIG
>> -       default y
>>        ---help---
>>          Support for Freescale VIU video driver. This device captures
>>          video data, or overlays video on DIU frame buffer.
>> @@ -986,7 +984,6 @@ source "drivers/media/video/s5p-tv/Kconfig"
>>  menuconfig V4L_USB_DRIVERS
>>        bool "V4L USB devices"
>>        depends on USB
>> -       default y
>>
>>  if V4L_USB_DRIVERS && USB
>>
>> --
>> 1.7.2.5
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-media" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>>
>
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Hans Verkuil Aug. 30, 2011, 7:39 p.m. UTC | #3
On Tuesday, August 30, 2011 19:22:00 Guennadi Liakhovetski wrote:
> None of the media drivers are compulsory, let users select which drivers
> they want to build, instead of having to unselect them one by one.

I disagree with this: while this is fine for SoCs, for a generic kernel I
think it is better to build it all. Even expert users can have a hard time
figuring out what chip is in a particular device.

Regards,

	Hans

> Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
> ---
>  drivers/media/common/tuners/Kconfig |   23 +----------------------
>  drivers/media/radio/Kconfig         |    1 -
>  drivers/media/rc/Kconfig            |   16 +---------------
>  drivers/media/rc/keymaps/Kconfig    |    1 -
>  drivers/media/video/Kconfig         |    7 ++-----
>  5 files changed, 4 insertions(+), 44 deletions(-)
> 
> diff --git a/drivers/media/common/tuners/Kconfig b/drivers/media/common/tuners/Kconfig
> index 996302a..1e53057 100644
> --- a/drivers/media/common/tuners/Kconfig
> +++ b/drivers/media/common/tuners/Kconfig
> @@ -33,7 +33,7 @@ config MEDIA_TUNER
>  	select MEDIA_TUNER_MC44S803 if !MEDIA_TUNER_CUSTOMISE
>  
>  config MEDIA_TUNER_CUSTOMISE
> -	bool "Customize analog and hybrid tuner modules to build"
> +	bool "Select analog and hybrid tuner modules to build"
>  	depends on MEDIA_TUNER
>  	default y if EXPERT
>  	help
> @@ -52,7 +52,6 @@ config MEDIA_TUNER_SIMPLE
>  	tristate "Simple tuner support"
>  	depends on VIDEO_MEDIA && I2C
>  	select MEDIA_TUNER_TDA9887
> -	default m if MEDIA_TUNER_CUSTOMISE
>  	help
>  	  Say Y here to include support for various simple tuners.
>  
> @@ -61,28 +60,24 @@ config MEDIA_TUNER_TDA8290
>  	depends on VIDEO_MEDIA && I2C
>  	select MEDIA_TUNER_TDA827X
>  	select MEDIA_TUNER_TDA18271
> -	default m if MEDIA_TUNER_CUSTOMISE
>  	help
>  	  Say Y here to include support for Philips TDA8290+8275(a) tuner.
>  
>  config MEDIA_TUNER_TDA827X
>  	tristate "Philips TDA827X silicon tuner"
>  	depends on VIDEO_MEDIA && I2C
> -	default m if MEDIA_TUNER_CUSTOMISE
>  	help
>  	  A DVB-T silicon tuner module. Say Y when you want to support this tuner.
>  
>  config MEDIA_TUNER_TDA18271
>  	tristate "NXP TDA18271 silicon tuner"
>  	depends on VIDEO_MEDIA && I2C
> -	default m if MEDIA_TUNER_CUSTOMISE
>  	help
>  	  A silicon tuner module. Say Y when you want to support this tuner.
>  
>  config MEDIA_TUNER_TDA9887
>  	tristate "TDA 9885/6/7 analog IF demodulator"
>  	depends on VIDEO_MEDIA && I2C
> -	default m if MEDIA_TUNER_CUSTOMISE
>  	help
>  	  Say Y here to include support for Philips TDA9885/6/7
>  	  analog IF demodulator.
> @@ -91,63 +86,54 @@ config MEDIA_TUNER_TEA5761
>  	tristate "TEA 5761 radio tuner (EXPERIMENTAL)"
>  	depends on VIDEO_MEDIA && I2C
>  	depends on EXPERIMENTAL
> -	default m if MEDIA_TUNER_CUSTOMISE
>  	help
>  	  Say Y here to include support for the Philips TEA5761 radio tuner.
>  
>  config MEDIA_TUNER_TEA5767
>  	tristate "TEA 5767 radio tuner"
>  	depends on VIDEO_MEDIA && I2C
> -	default m if MEDIA_TUNER_CUSTOMISE
>  	help
>  	  Say Y here to include support for the Philips TEA5767 radio tuner.
>  
>  config MEDIA_TUNER_MT20XX
>  	tristate "Microtune 2032 / 2050 tuners"
>  	depends on VIDEO_MEDIA && I2C
> -	default m if MEDIA_TUNER_CUSTOMISE
>  	help
>  	  Say Y here to include support for the MT2032 / MT2050 tuner.
>  
>  config MEDIA_TUNER_MT2060
>  	tristate "Microtune MT2060 silicon IF tuner"
>  	depends on VIDEO_MEDIA && I2C
> -	default m if MEDIA_TUNER_CUSTOMISE
>  	help
>  	  A driver for the silicon IF tuner MT2060 from Microtune.
>  
>  config MEDIA_TUNER_MT2266
>  	tristate "Microtune MT2266 silicon tuner"
>  	depends on VIDEO_MEDIA && I2C
> -	default m if MEDIA_TUNER_CUSTOMISE
>  	help
>  	  A driver for the silicon baseband tuner MT2266 from Microtune.
>  
>  config MEDIA_TUNER_MT2131
>  	tristate "Microtune MT2131 silicon tuner"
>  	depends on VIDEO_MEDIA && I2C
> -	default m if MEDIA_TUNER_CUSTOMISE
>  	help
>  	  A driver for the silicon baseband tuner MT2131 from Microtune.
>  
>  config MEDIA_TUNER_QT1010
>  	tristate "Quantek QT1010 silicon tuner"
>  	depends on VIDEO_MEDIA && I2C
> -	default m if MEDIA_TUNER_CUSTOMISE
>  	help
>  	  A driver for the silicon tuner QT1010 from Quantek.
>  
>  config MEDIA_TUNER_XC2028
>  	tristate "XCeive xc2028/xc3028 tuners"
>  	depends on VIDEO_MEDIA && I2C
> -	default m if MEDIA_TUNER_CUSTOMISE
>  	help
>  	  Say Y here to include support for the xc2028/xc3028 tuners.
>  
>  config MEDIA_TUNER_XC5000
>  	tristate "Xceive XC5000 silicon tuner"
>  	depends on VIDEO_MEDIA && I2C
> -	default m if MEDIA_TUNER_CUSTOMISE
>  	help
>  	  A driver for the silicon tuner XC5000 from Xceive.
>  	  This device is only used inside a SiP called together with a
> @@ -156,7 +142,6 @@ config MEDIA_TUNER_XC5000
>  config MEDIA_TUNER_XC4000
>  	tristate "Xceive XC4000 silicon tuner"
>  	depends on VIDEO_MEDIA && I2C
> -	default m if MEDIA_TUNER_CUSTOMISE
>  	help
>  	  A driver for the silicon tuner XC4000 from Xceive.
>  	  This device is only used inside a SiP called together with a
> @@ -165,42 +150,36 @@ config MEDIA_TUNER_XC4000
>  config MEDIA_TUNER_MXL5005S
>  	tristate "MaxLinear MSL5005S silicon tuner"
>  	depends on VIDEO_MEDIA && I2C
> -	default m if MEDIA_TUNER_CUSTOMISE
>  	help
>  	  A driver for the silicon tuner MXL5005S from MaxLinear.
>  
>  config MEDIA_TUNER_MXL5007T
>  	tristate "MaxLinear MxL5007T silicon tuner"
>  	depends on VIDEO_MEDIA && I2C
> -	default m if MEDIA_TUNER_CUSTOMISE
>  	help
>  	  A driver for the silicon tuner MxL5007T from MaxLinear.
>  
>  config MEDIA_TUNER_MC44S803
>  	tristate "Freescale MC44S803 Low Power CMOS Broadband tuners"
>  	depends on VIDEO_MEDIA && I2C
> -	default m if MEDIA_TUNER_CUSTOMISE
>  	help
>  	  Say Y here to support the Freescale MC44S803 based tuners
>  
>  config MEDIA_TUNER_MAX2165
>  	tristate "Maxim MAX2165 silicon tuner"
>  	depends on VIDEO_MEDIA && I2C
> -	default m if MEDIA_TUNER_CUSTOMISE
>  	help
>  	  A driver for the silicon tuner MAX2165 from Maxim.
>  
>  config MEDIA_TUNER_TDA18218
>  	tristate "NXP TDA18218 silicon tuner"
>  	depends on VIDEO_MEDIA && I2C
> -	default m if MEDIA_TUNER_CUSTOMISE
>  	help
>  	  NXP TDA18218 silicon tuner driver.
>  
>  config MEDIA_TUNER_TDA18212
>  	tristate "NXP TDA18212 silicon tuner"
>  	depends on VIDEO_MEDIA && I2C
> -	default m if MEDIA_TUNER_CUSTOMISE
>  	help
>  	  NXP TDA18212 silicon tuner driver.
>  
> diff --git a/drivers/media/radio/Kconfig b/drivers/media/radio/Kconfig
> index 52798a1..0195335 100644
> --- a/drivers/media/radio/Kconfig
> +++ b/drivers/media/radio/Kconfig
> @@ -5,7 +5,6 @@
>  menuconfig RADIO_ADAPTERS
>  	bool "Radio Adapters"
>  	depends on VIDEO_V4L2
> -	default y
>  	---help---
>  	  Say Y here to enable selecting AM/FM radio adapters.
>  
> diff --git a/drivers/media/rc/Kconfig b/drivers/media/rc/Kconfig
> index 899f783..2a4f829 100644
> --- a/drivers/media/rc/Kconfig
> +++ b/drivers/media/rc/Kconfig
> @@ -1,7 +1,6 @@
>  menuconfig RC_CORE
>  	tristate "Remote Controller adapters"
>  	depends on INPUT
> -	default INPUT
>  	---help---
>  	  Enable support for Remote Controllers on Linux. This is
>  	  needed in order to support several video capture adapters.
> @@ -11,12 +10,9 @@ menuconfig RC_CORE
>  	  if you don't need IR, as otherwise, you may not be able to
>  	  compile the driver for your adapter.
>  
> -if RC_CORE
> -
>  config LIRC
>  	tristate
> -	default y
> -
> +	depends on RC_CORE
>  	---help---
>  	   Enable this option to build the Linux Infrared Remote
>  	   Control (LIRC) core device interface driver. The LIRC
> @@ -30,7 +26,6 @@ config IR_NEC_DECODER
>  	tristate "Enable IR raw decoder for the NEC protocol"
>  	depends on RC_CORE
>  	select BITREVERSE
> -	default y
>  
>  	---help---
>  	   Enable this option if you have IR with NEC protocol, and
> @@ -40,7 +35,6 @@ config IR_RC5_DECODER
>  	tristate "Enable IR raw decoder for the RC-5 protocol"
>  	depends on RC_CORE
>  	select BITREVERSE
> -	default y
>  
>  	---help---
>  	   Enable this option if you have IR with RC-5 protocol, and
> @@ -50,7 +44,6 @@ config IR_RC6_DECODER
>  	tristate "Enable IR raw decoder for the RC6 protocol"
>  	depends on RC_CORE
>  	select BITREVERSE
> -	default y
>  
>  	---help---
>  	   Enable this option if you have an infrared remote control which
> @@ -60,7 +53,6 @@ config IR_JVC_DECODER
>  	tristate "Enable IR raw decoder for the JVC protocol"
>  	depends on RC_CORE
>  	select BITREVERSE
> -	default y
>  
>  	---help---
>  	   Enable this option if you have an infrared remote control which
> @@ -69,7 +61,6 @@ config IR_JVC_DECODER
>  config IR_SONY_DECODER
>  	tristate "Enable IR raw decoder for the Sony protocol"
>  	depends on RC_CORE
> -	default y
>  
>  	---help---
>  	   Enable this option if you have an infrared remote control which
> @@ -79,7 +70,6 @@ config IR_RC5_SZ_DECODER
>  	tristate "Enable IR raw decoder for the RC-5 (streamzap) protocol"
>  	depends on RC_CORE
>  	select BITREVERSE
> -	default y
>  
>  	---help---
>  	   Enable this option if you have IR with RC-5 (streamzap) protocol,
> @@ -91,7 +81,6 @@ config IR_MCE_KBD_DECODER
>  	tristate "Enable IR raw decoder for the MCE keyboard/mouse protocol"
>  	depends on RC_CORE
>  	select BITREVERSE
> -	default y
>  
>  	---help---
>  	   Enable this option if you have a Microsoft Remote Keyboard for
> @@ -102,7 +91,6 @@ config IR_LIRC_CODEC
>  	tristate "Enable IR to LIRC bridge"
>  	depends on RC_CORE
>  	depends on LIRC
> -	default y
>  
>  	---help---
>  	   Enable this option to pass raw IR to and from userspace via
> @@ -236,5 +224,3 @@ config RC_LOOPBACK
>  
>  	   To compile this driver as a module, choose M here: the module will
>  	   be called rc_loopback.
> -
> -endif #RC_CORE
> diff --git a/drivers/media/rc/keymaps/Kconfig b/drivers/media/rc/keymaps/Kconfig
> index 8e615fd..dbaacf1 100644
> --- a/drivers/media/rc/keymaps/Kconfig
> +++ b/drivers/media/rc/keymaps/Kconfig
> @@ -1,7 +1,6 @@
>  config RC_MAP
>  	tristate "Compile Remote Controller keymap modules"
>  	depends on RC_CORE
> -	default y
>  
>  	---help---
>  	   This option enables the compilation of lots of Remote
> diff --git a/drivers/media/video/Kconfig b/drivers/media/video/Kconfig
> index f574dc0..d26443d 100644
> --- a/drivers/media/video/Kconfig
> +++ b/drivers/media/video/Kconfig
> @@ -73,7 +73,6 @@ config VIDEOBUF2_DMA_SG
>  menuconfig VIDEO_CAPTURE_DRIVERS
>  	bool "Video capture adapters"
>  	depends on VIDEO_V4L2
> -	default y
>  	---help---
>  	  Say Y here to enable selecting the video adapters for
>  	  webcams, analog TV, and hybrid analog/digital TV.
> @@ -113,8 +112,8 @@ config VIDEO_HELPER_CHIPS_AUTO
>  
>  config VIDEO_IR_I2C
>  	tristate "I2C module for IR" if !VIDEO_HELPER_CHIPS_AUTO
> -	depends on I2C && RC_CORE
> -	default y
> +	depends on I2C
> +	select RC_CORE
>  	---help---
>  	  Most boards have an IR chip directly connected via GPIO. However,
>  	  some video boards have the IR connected via I2C bus.
> @@ -556,7 +555,6 @@ config VIDEO_VIU
>  	tristate "Freescale VIU Video Driver"
>  	depends on VIDEO_V4L2 && PPC_MPC512x
>  	select VIDEOBUF_DMA_CONTIG
> -	default y
>  	---help---
>  	  Support for Freescale VIU video driver. This device captures
>  	  video data, or overlays video on DIU frame buffer.
> @@ -986,7 +984,6 @@ source "drivers/media/video/s5p-tv/Kconfig"
>  menuconfig V4L_USB_DRIVERS
>  	bool "V4L USB devices"
>  	depends on USB
> -	default y
>  
>  if V4L_USB_DRIVERS && USB
>  
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Guennadi Liakhovetski Aug. 30, 2011, 8:12 p.m. UTC | #4
On Tue, 30 Aug 2011, Hans Verkuil wrote:

> On Tuesday, August 30, 2011 19:22:00 Guennadi Liakhovetski wrote:
> > None of the media drivers are compulsory, let users select which drivers
> > they want to build, instead of having to unselect them one by one.
> 
> I disagree with this: while this is fine for SoCs, for a generic kernel I
> think it is better to build it all. Even expert users can have a hard time
> figuring out what chip is in a particular device.

Then could someone, please, explain to me, why I don't find this 
"convenience" in any other kernel driver class? Wireless, ALSA, USB, I2C - 
you name them. Is there something special about media, that I'm missing, 
or are all others just user-unfriendly? Why are distro-kernels, 
allmodconfig, allyesconfig not enough for media and we think it's 
necessary to build everything "just in case?"

Thanks
Guennadi

> 
> Regards,
> 
> 	Hans
> 
> > Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
> > ---
> >  drivers/media/common/tuners/Kconfig |   23 +----------------------
> >  drivers/media/radio/Kconfig         |    1 -
> >  drivers/media/rc/Kconfig            |   16 +---------------
> >  drivers/media/rc/keymaps/Kconfig    |    1 -
> >  drivers/media/video/Kconfig         |    7 ++-----
> >  5 files changed, 4 insertions(+), 44 deletions(-)
> > 
> > diff --git a/drivers/media/common/tuners/Kconfig b/drivers/media/common/tuners/Kconfig
> > index 996302a..1e53057 100644
> > --- a/drivers/media/common/tuners/Kconfig
> > +++ b/drivers/media/common/tuners/Kconfig
> > @@ -33,7 +33,7 @@ config MEDIA_TUNER
> >  	select MEDIA_TUNER_MC44S803 if !MEDIA_TUNER_CUSTOMISE
> >  
> >  config MEDIA_TUNER_CUSTOMISE
> > -	bool "Customize analog and hybrid tuner modules to build"
> > +	bool "Select analog and hybrid tuner modules to build"
> >  	depends on MEDIA_TUNER
> >  	default y if EXPERT
> >  	help
> > @@ -52,7 +52,6 @@ config MEDIA_TUNER_SIMPLE
> >  	tristate "Simple tuner support"
> >  	depends on VIDEO_MEDIA && I2C
> >  	select MEDIA_TUNER_TDA9887
> > -	default m if MEDIA_TUNER_CUSTOMISE
> >  	help
> >  	  Say Y here to include support for various simple tuners.
> >  
> > @@ -61,28 +60,24 @@ config MEDIA_TUNER_TDA8290
> >  	depends on VIDEO_MEDIA && I2C
> >  	select MEDIA_TUNER_TDA827X
> >  	select MEDIA_TUNER_TDA18271
> > -	default m if MEDIA_TUNER_CUSTOMISE
> >  	help
> >  	  Say Y here to include support for Philips TDA8290+8275(a) tuner.
> >  
> >  config MEDIA_TUNER_TDA827X
> >  	tristate "Philips TDA827X silicon tuner"
> >  	depends on VIDEO_MEDIA && I2C
> > -	default m if MEDIA_TUNER_CUSTOMISE
> >  	help
> >  	  A DVB-T silicon tuner module. Say Y when you want to support this tuner.
> >  
> >  config MEDIA_TUNER_TDA18271
> >  	tristate "NXP TDA18271 silicon tuner"
> >  	depends on VIDEO_MEDIA && I2C
> > -	default m if MEDIA_TUNER_CUSTOMISE
> >  	help
> >  	  A silicon tuner module. Say Y when you want to support this tuner.
> >  
> >  config MEDIA_TUNER_TDA9887
> >  	tristate "TDA 9885/6/7 analog IF demodulator"
> >  	depends on VIDEO_MEDIA && I2C
> > -	default m if MEDIA_TUNER_CUSTOMISE
> >  	help
> >  	  Say Y here to include support for Philips TDA9885/6/7
> >  	  analog IF demodulator.
> > @@ -91,63 +86,54 @@ config MEDIA_TUNER_TEA5761
> >  	tristate "TEA 5761 radio tuner (EXPERIMENTAL)"
> >  	depends on VIDEO_MEDIA && I2C
> >  	depends on EXPERIMENTAL
> > -	default m if MEDIA_TUNER_CUSTOMISE
> >  	help
> >  	  Say Y here to include support for the Philips TEA5761 radio tuner.
> >  
> >  config MEDIA_TUNER_TEA5767
> >  	tristate "TEA 5767 radio tuner"
> >  	depends on VIDEO_MEDIA && I2C
> > -	default m if MEDIA_TUNER_CUSTOMISE
> >  	help
> >  	  Say Y here to include support for the Philips TEA5767 radio tuner.
> >  
> >  config MEDIA_TUNER_MT20XX
> >  	tristate "Microtune 2032 / 2050 tuners"
> >  	depends on VIDEO_MEDIA && I2C
> > -	default m if MEDIA_TUNER_CUSTOMISE
> >  	help
> >  	  Say Y here to include support for the MT2032 / MT2050 tuner.
> >  
> >  config MEDIA_TUNER_MT2060
> >  	tristate "Microtune MT2060 silicon IF tuner"
> >  	depends on VIDEO_MEDIA && I2C
> > -	default m if MEDIA_TUNER_CUSTOMISE
> >  	help
> >  	  A driver for the silicon IF tuner MT2060 from Microtune.
> >  
> >  config MEDIA_TUNER_MT2266
> >  	tristate "Microtune MT2266 silicon tuner"
> >  	depends on VIDEO_MEDIA && I2C
> > -	default m if MEDIA_TUNER_CUSTOMISE
> >  	help
> >  	  A driver for the silicon baseband tuner MT2266 from Microtune.
> >  
> >  config MEDIA_TUNER_MT2131
> >  	tristate "Microtune MT2131 silicon tuner"
> >  	depends on VIDEO_MEDIA && I2C
> > -	default m if MEDIA_TUNER_CUSTOMISE
> >  	help
> >  	  A driver for the silicon baseband tuner MT2131 from Microtune.
> >  
> >  config MEDIA_TUNER_QT1010
> >  	tristate "Quantek QT1010 silicon tuner"
> >  	depends on VIDEO_MEDIA && I2C
> > -	default m if MEDIA_TUNER_CUSTOMISE
> >  	help
> >  	  A driver for the silicon tuner QT1010 from Quantek.
> >  
> >  config MEDIA_TUNER_XC2028
> >  	tristate "XCeive xc2028/xc3028 tuners"
> >  	depends on VIDEO_MEDIA && I2C
> > -	default m if MEDIA_TUNER_CUSTOMISE
> >  	help
> >  	  Say Y here to include support for the xc2028/xc3028 tuners.
> >  
> >  config MEDIA_TUNER_XC5000
> >  	tristate "Xceive XC5000 silicon tuner"
> >  	depends on VIDEO_MEDIA && I2C
> > -	default m if MEDIA_TUNER_CUSTOMISE
> >  	help
> >  	  A driver for the silicon tuner XC5000 from Xceive.
> >  	  This device is only used inside a SiP called together with a
> > @@ -156,7 +142,6 @@ config MEDIA_TUNER_XC5000
> >  config MEDIA_TUNER_XC4000
> >  	tristate "Xceive XC4000 silicon tuner"
> >  	depends on VIDEO_MEDIA && I2C
> > -	default m if MEDIA_TUNER_CUSTOMISE
> >  	help
> >  	  A driver for the silicon tuner XC4000 from Xceive.
> >  	  This device is only used inside a SiP called together with a
> > @@ -165,42 +150,36 @@ config MEDIA_TUNER_XC4000
> >  config MEDIA_TUNER_MXL5005S
> >  	tristate "MaxLinear MSL5005S silicon tuner"
> >  	depends on VIDEO_MEDIA && I2C
> > -	default m if MEDIA_TUNER_CUSTOMISE
> >  	help
> >  	  A driver for the silicon tuner MXL5005S from MaxLinear.
> >  
> >  config MEDIA_TUNER_MXL5007T
> >  	tristate "MaxLinear MxL5007T silicon tuner"
> >  	depends on VIDEO_MEDIA && I2C
> > -	default m if MEDIA_TUNER_CUSTOMISE
> >  	help
> >  	  A driver for the silicon tuner MxL5007T from MaxLinear.
> >  
> >  config MEDIA_TUNER_MC44S803
> >  	tristate "Freescale MC44S803 Low Power CMOS Broadband tuners"
> >  	depends on VIDEO_MEDIA && I2C
> > -	default m if MEDIA_TUNER_CUSTOMISE
> >  	help
> >  	  Say Y here to support the Freescale MC44S803 based tuners
> >  
> >  config MEDIA_TUNER_MAX2165
> >  	tristate "Maxim MAX2165 silicon tuner"
> >  	depends on VIDEO_MEDIA && I2C
> > -	default m if MEDIA_TUNER_CUSTOMISE
> >  	help
> >  	  A driver for the silicon tuner MAX2165 from Maxim.
> >  
> >  config MEDIA_TUNER_TDA18218
> >  	tristate "NXP TDA18218 silicon tuner"
> >  	depends on VIDEO_MEDIA && I2C
> > -	default m if MEDIA_TUNER_CUSTOMISE
> >  	help
> >  	  NXP TDA18218 silicon tuner driver.
> >  
> >  config MEDIA_TUNER_TDA18212
> >  	tristate "NXP TDA18212 silicon tuner"
> >  	depends on VIDEO_MEDIA && I2C
> > -	default m if MEDIA_TUNER_CUSTOMISE
> >  	help
> >  	  NXP TDA18212 silicon tuner driver.
> >  
> > diff --git a/drivers/media/radio/Kconfig b/drivers/media/radio/Kconfig
> > index 52798a1..0195335 100644
> > --- a/drivers/media/radio/Kconfig
> > +++ b/drivers/media/radio/Kconfig
> > @@ -5,7 +5,6 @@
> >  menuconfig RADIO_ADAPTERS
> >  	bool "Radio Adapters"
> >  	depends on VIDEO_V4L2
> > -	default y
> >  	---help---
> >  	  Say Y here to enable selecting AM/FM radio adapters.
> >  
> > diff --git a/drivers/media/rc/Kconfig b/drivers/media/rc/Kconfig
> > index 899f783..2a4f829 100644
> > --- a/drivers/media/rc/Kconfig
> > +++ b/drivers/media/rc/Kconfig
> > @@ -1,7 +1,6 @@
> >  menuconfig RC_CORE
> >  	tristate "Remote Controller adapters"
> >  	depends on INPUT
> > -	default INPUT
> >  	---help---
> >  	  Enable support for Remote Controllers on Linux. This is
> >  	  needed in order to support several video capture adapters.
> > @@ -11,12 +10,9 @@ menuconfig RC_CORE
> >  	  if you don't need IR, as otherwise, you may not be able to
> >  	  compile the driver for your adapter.
> >  
> > -if RC_CORE
> > -
> >  config LIRC
> >  	tristate
> > -	default y
> > -
> > +	depends on RC_CORE
> >  	---help---
> >  	   Enable this option to build the Linux Infrared Remote
> >  	   Control (LIRC) core device interface driver. The LIRC
> > @@ -30,7 +26,6 @@ config IR_NEC_DECODER
> >  	tristate "Enable IR raw decoder for the NEC protocol"
> >  	depends on RC_CORE
> >  	select BITREVERSE
> > -	default y
> >  
> >  	---help---
> >  	   Enable this option if you have IR with NEC protocol, and
> > @@ -40,7 +35,6 @@ config IR_RC5_DECODER
> >  	tristate "Enable IR raw decoder for the RC-5 protocol"
> >  	depends on RC_CORE
> >  	select BITREVERSE
> > -	default y
> >  
> >  	---help---
> >  	   Enable this option if you have IR with RC-5 protocol, and
> > @@ -50,7 +44,6 @@ config IR_RC6_DECODER
> >  	tristate "Enable IR raw decoder for the RC6 protocol"
> >  	depends on RC_CORE
> >  	select BITREVERSE
> > -	default y
> >  
> >  	---help---
> >  	   Enable this option if you have an infrared remote control which
> > @@ -60,7 +53,6 @@ config IR_JVC_DECODER
> >  	tristate "Enable IR raw decoder for the JVC protocol"
> >  	depends on RC_CORE
> >  	select BITREVERSE
> > -	default y
> >  
> >  	---help---
> >  	   Enable this option if you have an infrared remote control which
> > @@ -69,7 +61,6 @@ config IR_JVC_DECODER
> >  config IR_SONY_DECODER
> >  	tristate "Enable IR raw decoder for the Sony protocol"
> >  	depends on RC_CORE
> > -	default y
> >  
> >  	---help---
> >  	   Enable this option if you have an infrared remote control which
> > @@ -79,7 +70,6 @@ config IR_RC5_SZ_DECODER
> >  	tristate "Enable IR raw decoder for the RC-5 (streamzap) protocol"
> >  	depends on RC_CORE
> >  	select BITREVERSE
> > -	default y
> >  
> >  	---help---
> >  	   Enable this option if you have IR with RC-5 (streamzap) protocol,
> > @@ -91,7 +81,6 @@ config IR_MCE_KBD_DECODER
> >  	tristate "Enable IR raw decoder for the MCE keyboard/mouse protocol"
> >  	depends on RC_CORE
> >  	select BITREVERSE
> > -	default y
> >  
> >  	---help---
> >  	   Enable this option if you have a Microsoft Remote Keyboard for
> > @@ -102,7 +91,6 @@ config IR_LIRC_CODEC
> >  	tristate "Enable IR to LIRC bridge"
> >  	depends on RC_CORE
> >  	depends on LIRC
> > -	default y
> >  
> >  	---help---
> >  	   Enable this option to pass raw IR to and from userspace via
> > @@ -236,5 +224,3 @@ config RC_LOOPBACK
> >  
> >  	   To compile this driver as a module, choose M here: the module will
> >  	   be called rc_loopback.
> > -
> > -endif #RC_CORE
> > diff --git a/drivers/media/rc/keymaps/Kconfig b/drivers/media/rc/keymaps/Kconfig
> > index 8e615fd..dbaacf1 100644
> > --- a/drivers/media/rc/keymaps/Kconfig
> > +++ b/drivers/media/rc/keymaps/Kconfig
> > @@ -1,7 +1,6 @@
> >  config RC_MAP
> >  	tristate "Compile Remote Controller keymap modules"
> >  	depends on RC_CORE
> > -	default y
> >  
> >  	---help---
> >  	   This option enables the compilation of lots of Remote
> > diff --git a/drivers/media/video/Kconfig b/drivers/media/video/Kconfig
> > index f574dc0..d26443d 100644
> > --- a/drivers/media/video/Kconfig
> > +++ b/drivers/media/video/Kconfig
> > @@ -73,7 +73,6 @@ config VIDEOBUF2_DMA_SG
> >  menuconfig VIDEO_CAPTURE_DRIVERS
> >  	bool "Video capture adapters"
> >  	depends on VIDEO_V4L2
> > -	default y
> >  	---help---
> >  	  Say Y here to enable selecting the video adapters for
> >  	  webcams, analog TV, and hybrid analog/digital TV.
> > @@ -113,8 +112,8 @@ config VIDEO_HELPER_CHIPS_AUTO
> >  
> >  config VIDEO_IR_I2C
> >  	tristate "I2C module for IR" if !VIDEO_HELPER_CHIPS_AUTO
> > -	depends on I2C && RC_CORE
> > -	default y
> > +	depends on I2C
> > +	select RC_CORE
> >  	---help---
> >  	  Most boards have an IR chip directly connected via GPIO. However,
> >  	  some video boards have the IR connected via I2C bus.
> > @@ -556,7 +555,6 @@ config VIDEO_VIU
> >  	tristate "Freescale VIU Video Driver"
> >  	depends on VIDEO_V4L2 && PPC_MPC512x
> >  	select VIDEOBUF_DMA_CONTIG
> > -	default y
> >  	---help---
> >  	  Support for Freescale VIU video driver. This device captures
> >  	  video data, or overlays video on DIU frame buffer.
> > @@ -986,7 +984,6 @@ source "drivers/media/video/s5p-tv/Kconfig"
> >  menuconfig V4L_USB_DRIVERS
> >  	bool "V4L USB devices"
> >  	depends on USB
> > -	default y
> >  
> >  if V4L_USB_DRIVERS && USB
> >  
> > 
> 

---
Guennadi Liakhovetski, Ph.D.
Freelance Open-Source Software Developer
http://www.open-technology.de/
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Hans Verkuil Aug. 30, 2011, 8:28 p.m. UTC | #5
On Tuesday, August 30, 2011 22:12:09 Guennadi Liakhovetski wrote:
> On Tue, 30 Aug 2011, Hans Verkuil wrote:
> 
> > On Tuesday, August 30, 2011 19:22:00 Guennadi Liakhovetski wrote:
> > > None of the media drivers are compulsory, let users select which drivers
> > > they want to build, instead of having to unselect them one by one.
> > 
> > I disagree with this: while this is fine for SoCs, for a generic kernel I
> > think it is better to build it all. Even expert users can have a hard time
> > figuring out what chip is in a particular device.
> 
> Then could someone, please, explain to me, why I don't find this 
> "convenience" in any other kernel driver class? Wireless, ALSA, USB, I2C - 
> you name them. Is there something special about media, that I'm missing, 
> or are all others just user-unfriendly? Why are distro-kernels, 
> allmodconfig, allyesconfig not enough for media and we think it's 
> necessary to build everything "just in case?"

That's actually a good question. I certainly think that the more obscure
drivers can be disabled by default. But I also think that you want to keep
a certain subset of commonly used drivers enabled. I'm thinking bttv, uvc,
perhaps gspca.

As far as I can see, alsa enables for example HD Audio, which almost all
modern hw supports. We should do something similar for v4l.

And we should really reorder some of the entries in the menu: one of the
first drivers you see are parallel port webcams and other very obscure
devices.

Regards,

	Hans

> 
> Thanks
> Guennadi
> 
> > 
> > Regards,
> > 
> > 	Hans
> > 
> > > Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
> > > ---
> > >  drivers/media/common/tuners/Kconfig |   23 +----------------------
> > >  drivers/media/radio/Kconfig         |    1 -
> > >  drivers/media/rc/Kconfig            |   16 +---------------
> > >  drivers/media/rc/keymaps/Kconfig    |    1 -
> > >  drivers/media/video/Kconfig         |    7 ++-----
> > >  5 files changed, 4 insertions(+), 44 deletions(-)
> > > 
> > > diff --git a/drivers/media/common/tuners/Kconfig b/drivers/media/common/tuners/Kconfig
> > > index 996302a..1e53057 100644
> > > --- a/drivers/media/common/tuners/Kconfig
> > > +++ b/drivers/media/common/tuners/Kconfig
> > > @@ -33,7 +33,7 @@ config MEDIA_TUNER
> > >  	select MEDIA_TUNER_MC44S803 if !MEDIA_TUNER_CUSTOMISE
> > >  
> > >  config MEDIA_TUNER_CUSTOMISE
> > > -	bool "Customize analog and hybrid tuner modules to build"
> > > +	bool "Select analog and hybrid tuner modules to build"
> > >  	depends on MEDIA_TUNER
> > >  	default y if EXPERT
> > >  	help
> > > @@ -52,7 +52,6 @@ config MEDIA_TUNER_SIMPLE
> > >  	tristate "Simple tuner support"
> > >  	depends on VIDEO_MEDIA && I2C
> > >  	select MEDIA_TUNER_TDA9887
> > > -	default m if MEDIA_TUNER_CUSTOMISE
> > >  	help
> > >  	  Say Y here to include support for various simple tuners.
> > >  
> > > @@ -61,28 +60,24 @@ config MEDIA_TUNER_TDA8290
> > >  	depends on VIDEO_MEDIA && I2C
> > >  	select MEDIA_TUNER_TDA827X
> > >  	select MEDIA_TUNER_TDA18271
> > > -	default m if MEDIA_TUNER_CUSTOMISE
> > >  	help
> > >  	  Say Y here to include support for Philips TDA8290+8275(a) tuner.
> > >  
> > >  config MEDIA_TUNER_TDA827X
> > >  	tristate "Philips TDA827X silicon tuner"
> > >  	depends on VIDEO_MEDIA && I2C
> > > -	default m if MEDIA_TUNER_CUSTOMISE
> > >  	help
> > >  	  A DVB-T silicon tuner module. Say Y when you want to support this tuner.
> > >  
> > >  config MEDIA_TUNER_TDA18271
> > >  	tristate "NXP TDA18271 silicon tuner"
> > >  	depends on VIDEO_MEDIA && I2C
> > > -	default m if MEDIA_TUNER_CUSTOMISE
> > >  	help
> > >  	  A silicon tuner module. Say Y when you want to support this tuner.
> > >  
> > >  config MEDIA_TUNER_TDA9887
> > >  	tristate "TDA 9885/6/7 analog IF demodulator"
> > >  	depends on VIDEO_MEDIA && I2C
> > > -	default m if MEDIA_TUNER_CUSTOMISE
> > >  	help
> > >  	  Say Y here to include support for Philips TDA9885/6/7
> > >  	  analog IF demodulator.
> > > @@ -91,63 +86,54 @@ config MEDIA_TUNER_TEA5761
> > >  	tristate "TEA 5761 radio tuner (EXPERIMENTAL)"
> > >  	depends on VIDEO_MEDIA && I2C
> > >  	depends on EXPERIMENTAL
> > > -	default m if MEDIA_TUNER_CUSTOMISE
> > >  	help
> > >  	  Say Y here to include support for the Philips TEA5761 radio tuner.
> > >  
> > >  config MEDIA_TUNER_TEA5767
> > >  	tristate "TEA 5767 radio tuner"
> > >  	depends on VIDEO_MEDIA && I2C
> > > -	default m if MEDIA_TUNER_CUSTOMISE
> > >  	help
> > >  	  Say Y here to include support for the Philips TEA5767 radio tuner.
> > >  
> > >  config MEDIA_TUNER_MT20XX
> > >  	tristate "Microtune 2032 / 2050 tuners"
> > >  	depends on VIDEO_MEDIA && I2C
> > > -	default m if MEDIA_TUNER_CUSTOMISE
> > >  	help
> > >  	  Say Y here to include support for the MT2032 / MT2050 tuner.
> > >  
> > >  config MEDIA_TUNER_MT2060
> > >  	tristate "Microtune MT2060 silicon IF tuner"
> > >  	depends on VIDEO_MEDIA && I2C
> > > -	default m if MEDIA_TUNER_CUSTOMISE
> > >  	help
> > >  	  A driver for the silicon IF tuner MT2060 from Microtune.
> > >  
> > >  config MEDIA_TUNER_MT2266
> > >  	tristate "Microtune MT2266 silicon tuner"
> > >  	depends on VIDEO_MEDIA && I2C
> > > -	default m if MEDIA_TUNER_CUSTOMISE
> > >  	help
> > >  	  A driver for the silicon baseband tuner MT2266 from Microtune.
> > >  
> > >  config MEDIA_TUNER_MT2131
> > >  	tristate "Microtune MT2131 silicon tuner"
> > >  	depends on VIDEO_MEDIA && I2C
> > > -	default m if MEDIA_TUNER_CUSTOMISE
> > >  	help
> > >  	  A driver for the silicon baseband tuner MT2131 from Microtune.
> > >  
> > >  config MEDIA_TUNER_QT1010
> > >  	tristate "Quantek QT1010 silicon tuner"
> > >  	depends on VIDEO_MEDIA && I2C
> > > -	default m if MEDIA_TUNER_CUSTOMISE
> > >  	help
> > >  	  A driver for the silicon tuner QT1010 from Quantek.
> > >  
> > >  config MEDIA_TUNER_XC2028
> > >  	tristate "XCeive xc2028/xc3028 tuners"
> > >  	depends on VIDEO_MEDIA && I2C
> > > -	default m if MEDIA_TUNER_CUSTOMISE
> > >  	help
> > >  	  Say Y here to include support for the xc2028/xc3028 tuners.
> > >  
> > >  config MEDIA_TUNER_XC5000
> > >  	tristate "Xceive XC5000 silicon tuner"
> > >  	depends on VIDEO_MEDIA && I2C
> > > -	default m if MEDIA_TUNER_CUSTOMISE
> > >  	help
> > >  	  A driver for the silicon tuner XC5000 from Xceive.
> > >  	  This device is only used inside a SiP called together with a
> > > @@ -156,7 +142,6 @@ config MEDIA_TUNER_XC5000
> > >  config MEDIA_TUNER_XC4000
> > >  	tristate "Xceive XC4000 silicon tuner"
> > >  	depends on VIDEO_MEDIA && I2C
> > > -	default m if MEDIA_TUNER_CUSTOMISE
> > >  	help
> > >  	  A driver for the silicon tuner XC4000 from Xceive.
> > >  	  This device is only used inside a SiP called together with a
> > > @@ -165,42 +150,36 @@ config MEDIA_TUNER_XC4000
> > >  config MEDIA_TUNER_MXL5005S
> > >  	tristate "MaxLinear MSL5005S silicon tuner"
> > >  	depends on VIDEO_MEDIA && I2C
> > > -	default m if MEDIA_TUNER_CUSTOMISE
> > >  	help
> > >  	  A driver for the silicon tuner MXL5005S from MaxLinear.
> > >  
> > >  config MEDIA_TUNER_MXL5007T
> > >  	tristate "MaxLinear MxL5007T silicon tuner"
> > >  	depends on VIDEO_MEDIA && I2C
> > > -	default m if MEDIA_TUNER_CUSTOMISE
> > >  	help
> > >  	  A driver for the silicon tuner MxL5007T from MaxLinear.
> > >  
> > >  config MEDIA_TUNER_MC44S803
> > >  	tristate "Freescale MC44S803 Low Power CMOS Broadband tuners"
> > >  	depends on VIDEO_MEDIA && I2C
> > > -	default m if MEDIA_TUNER_CUSTOMISE
> > >  	help
> > >  	  Say Y here to support the Freescale MC44S803 based tuners
> > >  
> > >  config MEDIA_TUNER_MAX2165
> > >  	tristate "Maxim MAX2165 silicon tuner"
> > >  	depends on VIDEO_MEDIA && I2C
> > > -	default m if MEDIA_TUNER_CUSTOMISE
> > >  	help
> > >  	  A driver for the silicon tuner MAX2165 from Maxim.
> > >  
> > >  config MEDIA_TUNER_TDA18218
> > >  	tristate "NXP TDA18218 silicon tuner"
> > >  	depends on VIDEO_MEDIA && I2C
> > > -	default m if MEDIA_TUNER_CUSTOMISE
> > >  	help
> > >  	  NXP TDA18218 silicon tuner driver.
> > >  
> > >  config MEDIA_TUNER_TDA18212
> > >  	tristate "NXP TDA18212 silicon tuner"
> > >  	depends on VIDEO_MEDIA && I2C
> > > -	default m if MEDIA_TUNER_CUSTOMISE
> > >  	help
> > >  	  NXP TDA18212 silicon tuner driver.
> > >  
> > > diff --git a/drivers/media/radio/Kconfig b/drivers/media/radio/Kconfig
> > > index 52798a1..0195335 100644
> > > --- a/drivers/media/radio/Kconfig
> > > +++ b/drivers/media/radio/Kconfig
> > > @@ -5,7 +5,6 @@
> > >  menuconfig RADIO_ADAPTERS
> > >  	bool "Radio Adapters"
> > >  	depends on VIDEO_V4L2
> > > -	default y
> > >  	---help---
> > >  	  Say Y here to enable selecting AM/FM radio adapters.
> > >  
> > > diff --git a/drivers/media/rc/Kconfig b/drivers/media/rc/Kconfig
> > > index 899f783..2a4f829 100644
> > > --- a/drivers/media/rc/Kconfig
> > > +++ b/drivers/media/rc/Kconfig
> > > @@ -1,7 +1,6 @@
> > >  menuconfig RC_CORE
> > >  	tristate "Remote Controller adapters"
> > >  	depends on INPUT
> > > -	default INPUT
> > >  	---help---
> > >  	  Enable support for Remote Controllers on Linux. This is
> > >  	  needed in order to support several video capture adapters.
> > > @@ -11,12 +10,9 @@ menuconfig RC_CORE
> > >  	  if you don't need IR, as otherwise, you may not be able to
> > >  	  compile the driver for your adapter.
> > >  
> > > -if RC_CORE
> > > -
> > >  config LIRC
> > >  	tristate
> > > -	default y
> > > -
> > > +	depends on RC_CORE
> > >  	---help---
> > >  	   Enable this option to build the Linux Infrared Remote
> > >  	   Control (LIRC) core device interface driver. The LIRC
> > > @@ -30,7 +26,6 @@ config IR_NEC_DECODER
> > >  	tristate "Enable IR raw decoder for the NEC protocol"
> > >  	depends on RC_CORE
> > >  	select BITREVERSE
> > > -	default y
> > >  
> > >  	---help---
> > >  	   Enable this option if you have IR with NEC protocol, and
> > > @@ -40,7 +35,6 @@ config IR_RC5_DECODER
> > >  	tristate "Enable IR raw decoder for the RC-5 protocol"
> > >  	depends on RC_CORE
> > >  	select BITREVERSE
> > > -	default y
> > >  
> > >  	---help---
> > >  	   Enable this option if you have IR with RC-5 protocol, and
> > > @@ -50,7 +44,6 @@ config IR_RC6_DECODER
> > >  	tristate "Enable IR raw decoder for the RC6 protocol"
> > >  	depends on RC_CORE
> > >  	select BITREVERSE
> > > -	default y
> > >  
> > >  	---help---
> > >  	   Enable this option if you have an infrared remote control which
> > > @@ -60,7 +53,6 @@ config IR_JVC_DECODER
> > >  	tristate "Enable IR raw decoder for the JVC protocol"
> > >  	depends on RC_CORE
> > >  	select BITREVERSE
> > > -	default y
> > >  
> > >  	---help---
> > >  	   Enable this option if you have an infrared remote control which
> > > @@ -69,7 +61,6 @@ config IR_JVC_DECODER
> > >  config IR_SONY_DECODER
> > >  	tristate "Enable IR raw decoder for the Sony protocol"
> > >  	depends on RC_CORE
> > > -	default y
> > >  
> > >  	---help---
> > >  	   Enable this option if you have an infrared remote control which
> > > @@ -79,7 +70,6 @@ config IR_RC5_SZ_DECODER
> > >  	tristate "Enable IR raw decoder for the RC-5 (streamzap) protocol"
> > >  	depends on RC_CORE
> > >  	select BITREVERSE
> > > -	default y
> > >  
> > >  	---help---
> > >  	   Enable this option if you have IR with RC-5 (streamzap) protocol,
> > > @@ -91,7 +81,6 @@ config IR_MCE_KBD_DECODER
> > >  	tristate "Enable IR raw decoder for the MCE keyboard/mouse protocol"
> > >  	depends on RC_CORE
> > >  	select BITREVERSE
> > > -	default y
> > >  
> > >  	---help---
> > >  	   Enable this option if you have a Microsoft Remote Keyboard for
> > > @@ -102,7 +91,6 @@ config IR_LIRC_CODEC
> > >  	tristate "Enable IR to LIRC bridge"
> > >  	depends on RC_CORE
> > >  	depends on LIRC
> > > -	default y
> > >  
> > >  	---help---
> > >  	   Enable this option to pass raw IR to and from userspace via
> > > @@ -236,5 +224,3 @@ config RC_LOOPBACK
> > >  
> > >  	   To compile this driver as a module, choose M here: the module will
> > >  	   be called rc_loopback.
> > > -
> > > -endif #RC_CORE
> > > diff --git a/drivers/media/rc/keymaps/Kconfig b/drivers/media/rc/keymaps/Kconfig
> > > index 8e615fd..dbaacf1 100644
> > > --- a/drivers/media/rc/keymaps/Kconfig
> > > +++ b/drivers/media/rc/keymaps/Kconfig
> > > @@ -1,7 +1,6 @@
> > >  config RC_MAP
> > >  	tristate "Compile Remote Controller keymap modules"
> > >  	depends on RC_CORE
> > > -	default y
> > >  
> > >  	---help---
> > >  	   This option enables the compilation of lots of Remote
> > > diff --git a/drivers/media/video/Kconfig b/drivers/media/video/Kconfig
> > > index f574dc0..d26443d 100644
> > > --- a/drivers/media/video/Kconfig
> > > +++ b/drivers/media/video/Kconfig
> > > @@ -73,7 +73,6 @@ config VIDEOBUF2_DMA_SG
> > >  menuconfig VIDEO_CAPTURE_DRIVERS
> > >  	bool "Video capture adapters"
> > >  	depends on VIDEO_V4L2
> > > -	default y
> > >  	---help---
> > >  	  Say Y here to enable selecting the video adapters for
> > >  	  webcams, analog TV, and hybrid analog/digital TV.
> > > @@ -113,8 +112,8 @@ config VIDEO_HELPER_CHIPS_AUTO
> > >  
> > >  config VIDEO_IR_I2C
> > >  	tristate "I2C module for IR" if !VIDEO_HELPER_CHIPS_AUTO
> > > -	depends on I2C && RC_CORE
> > > -	default y
> > > +	depends on I2C
> > > +	select RC_CORE
> > >  	---help---
> > >  	  Most boards have an IR chip directly connected via GPIO. However,
> > >  	  some video boards have the IR connected via I2C bus.
> > > @@ -556,7 +555,6 @@ config VIDEO_VIU
> > >  	tristate "Freescale VIU Video Driver"
> > >  	depends on VIDEO_V4L2 && PPC_MPC512x
> > >  	select VIDEOBUF_DMA_CONTIG
> > > -	default y
> > >  	---help---
> > >  	  Support for Freescale VIU video driver. This device captures
> > >  	  video data, or overlays video on DIU frame buffer.
> > > @@ -986,7 +984,6 @@ source "drivers/media/video/s5p-tv/Kconfig"
> > >  menuconfig V4L_USB_DRIVERS
> > >  	bool "V4L USB devices"
> > >  	depends on USB
> > > -	default y
> > >  
> > >  if V4L_USB_DRIVERS && USB
> > >  
> > > 
> > 
> 
> ---
> Guennadi Liakhovetski, Ph.D.
> Freelance Open-Source Software Developer
> http://www.open-technology.de/
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Michael Ira Krufky Aug. 30, 2011, 8:51 p.m. UTC | #6
On Tue, Aug 30, 2011 at 4:12 PM, Guennadi Liakhovetski
<g.liakhovetski@gmx.de> wrote:
> On Tue, 30 Aug 2011, Hans Verkuil wrote:
>
>> On Tuesday, August 30, 2011 19:22:00 Guennadi Liakhovetski wrote:
>> > None of the media drivers are compulsory, let users select which drivers
>> > they want to build, instead of having to unselect them one by one.
>>
>> I disagree with this: while this is fine for SoCs, for a generic kernel I
>> think it is better to build it all. Even expert users can have a hard time
>> figuring out what chip is in a particular device.
>
> Then could someone, please, explain to me, why I don't find this
> "convenience" in any other kernel driver class? Wireless, ALSA, USB, I2C -
> you name them. Is there something special about media, that I'm missing,
> or are all others just user-unfriendly? Why are distro-kernels,
> allmodconfig, allyesconfig not enough for media and we think it's
> necessary to build everything "just in case?"


This isn't a matter of "building all drivers by default" -- it is a
matter of building component dependency drivers that are needed by the
bridge drivers, and allowing users to not build drivers that they
don't need.  The customization options are there to allow you to
disable the "helper chips" / "tuners" etc from all being built if that
is your choice.  If you disable the customization options, then
Kconfig automatically selects the dependencies of the bridge drivers
that you've selected and does NOT build those that are irrelevant to
you.  At first, users were forced to build everything without being
able to disable these modules.  We added this mechanism to allow such
modules to be disabled from a build, but we enable them by default
because anything else would become a user-support nightmare, as I
stated earlier.  If you refer to the mailing list archives from about
four or five years ago, you'll may find that this was discussed at
length on the video4linux and linux-dvb mailing lists.  In the end I
believe this is the solution that satisfied everybody the best.

-Mike Krufky
>
> Thanks
> Guennadi
>
>>
>> Regards,
>>
>>       Hans
>>
>> > Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
>> > ---
>> >  drivers/media/common/tuners/Kconfig |   23 +----------------------
>> >  drivers/media/radio/Kconfig         |    1 -
>> >  drivers/media/rc/Kconfig            |   16 +---------------
>> >  drivers/media/rc/keymaps/Kconfig    |    1 -
>> >  drivers/media/video/Kconfig         |    7 ++-----
>> >  5 files changed, 4 insertions(+), 44 deletions(-)
>> >
>> > diff --git a/drivers/media/common/tuners/Kconfig b/drivers/media/common/tuners/Kconfig
>> > index 996302a..1e53057 100644
>> > --- a/drivers/media/common/tuners/Kconfig
>> > +++ b/drivers/media/common/tuners/Kconfig
>> > @@ -33,7 +33,7 @@ config MEDIA_TUNER
>> >     select MEDIA_TUNER_MC44S803 if !MEDIA_TUNER_CUSTOMISE
>> >
>> >  config MEDIA_TUNER_CUSTOMISE
>> > -   bool "Customize analog and hybrid tuner modules to build"
>> > +   bool "Select analog and hybrid tuner modules to build"
>> >     depends on MEDIA_TUNER
>> >     default y if EXPERT
>> >     help
>> > @@ -52,7 +52,6 @@ config MEDIA_TUNER_SIMPLE
>> >     tristate "Simple tuner support"
>> >     depends on VIDEO_MEDIA && I2C
>> >     select MEDIA_TUNER_TDA9887
>> > -   default m if MEDIA_TUNER_CUSTOMISE
>> >     help
>> >       Say Y here to include support for various simple tuners.
>> >
>> > @@ -61,28 +60,24 @@ config MEDIA_TUNER_TDA8290
>> >     depends on VIDEO_MEDIA && I2C
>> >     select MEDIA_TUNER_TDA827X
>> >     select MEDIA_TUNER_TDA18271
>> > -   default m if MEDIA_TUNER_CUSTOMISE
>> >     help
>> >       Say Y here to include support for Philips TDA8290+8275(a) tuner.
>> >
>> >  config MEDIA_TUNER_TDA827X
>> >     tristate "Philips TDA827X silicon tuner"
>> >     depends on VIDEO_MEDIA && I2C
>> > -   default m if MEDIA_TUNER_CUSTOMISE
>> >     help
>> >       A DVB-T silicon tuner module. Say Y when you want to support this tuner.
>> >
>> >  config MEDIA_TUNER_TDA18271
>> >     tristate "NXP TDA18271 silicon tuner"
>> >     depends on VIDEO_MEDIA && I2C
>> > -   default m if MEDIA_TUNER_CUSTOMISE
>> >     help
>> >       A silicon tuner module. Say Y when you want to support this tuner.
>> >
>> >  config MEDIA_TUNER_TDA9887
>> >     tristate "TDA 9885/6/7 analog IF demodulator"
>> >     depends on VIDEO_MEDIA && I2C
>> > -   default m if MEDIA_TUNER_CUSTOMISE
>> >     help
>> >       Say Y here to include support for Philips TDA9885/6/7
>> >       analog IF demodulator.
>> > @@ -91,63 +86,54 @@ config MEDIA_TUNER_TEA5761
>> >     tristate "TEA 5761 radio tuner (EXPERIMENTAL)"
>> >     depends on VIDEO_MEDIA && I2C
>> >     depends on EXPERIMENTAL
>> > -   default m if MEDIA_TUNER_CUSTOMISE
>> >     help
>> >       Say Y here to include support for the Philips TEA5761 radio tuner.
>> >
>> >  config MEDIA_TUNER_TEA5767
>> >     tristate "TEA 5767 radio tuner"
>> >     depends on VIDEO_MEDIA && I2C
>> > -   default m if MEDIA_TUNER_CUSTOMISE
>> >     help
>> >       Say Y here to include support for the Philips TEA5767 radio tuner.
>> >
>> >  config MEDIA_TUNER_MT20XX
>> >     tristate "Microtune 2032 / 2050 tuners"
>> >     depends on VIDEO_MEDIA && I2C
>> > -   default m if MEDIA_TUNER_CUSTOMISE
>> >     help
>> >       Say Y here to include support for the MT2032 / MT2050 tuner.
>> >
>> >  config MEDIA_TUNER_MT2060
>> >     tristate "Microtune MT2060 silicon IF tuner"
>> >     depends on VIDEO_MEDIA && I2C
>> > -   default m if MEDIA_TUNER_CUSTOMISE
>> >     help
>> >       A driver for the silicon IF tuner MT2060 from Microtune.
>> >
>> >  config MEDIA_TUNER_MT2266
>> >     tristate "Microtune MT2266 silicon tuner"
>> >     depends on VIDEO_MEDIA && I2C
>> > -   default m if MEDIA_TUNER_CUSTOMISE
>> >     help
>> >       A driver for the silicon baseband tuner MT2266 from Microtune.
>> >
>> >  config MEDIA_TUNER_MT2131
>> >     tristate "Microtune MT2131 silicon tuner"
>> >     depends on VIDEO_MEDIA && I2C
>> > -   default m if MEDIA_TUNER_CUSTOMISE
>> >     help
>> >       A driver for the silicon baseband tuner MT2131 from Microtune.
>> >
>> >  config MEDIA_TUNER_QT1010
>> >     tristate "Quantek QT1010 silicon tuner"
>> >     depends on VIDEO_MEDIA && I2C
>> > -   default m if MEDIA_TUNER_CUSTOMISE
>> >     help
>> >       A driver for the silicon tuner QT1010 from Quantek.
>> >
>> >  config MEDIA_TUNER_XC2028
>> >     tristate "XCeive xc2028/xc3028 tuners"
>> >     depends on VIDEO_MEDIA && I2C
>> > -   default m if MEDIA_TUNER_CUSTOMISE
>> >     help
>> >       Say Y here to include support for the xc2028/xc3028 tuners.
>> >
>> >  config MEDIA_TUNER_XC5000
>> >     tristate "Xceive XC5000 silicon tuner"
>> >     depends on VIDEO_MEDIA && I2C
>> > -   default m if MEDIA_TUNER_CUSTOMISE
>> >     help
>> >       A driver for the silicon tuner XC5000 from Xceive.
>> >       This device is only used inside a SiP called together with a
>> > @@ -156,7 +142,6 @@ config MEDIA_TUNER_XC5000
>> >  config MEDIA_TUNER_XC4000
>> >     tristate "Xceive XC4000 silicon tuner"
>> >     depends on VIDEO_MEDIA && I2C
>> > -   default m if MEDIA_TUNER_CUSTOMISE
>> >     help
>> >       A driver for the silicon tuner XC4000 from Xceive.
>> >       This device is only used inside a SiP called together with a
>> > @@ -165,42 +150,36 @@ config MEDIA_TUNER_XC4000
>> >  config MEDIA_TUNER_MXL5005S
>> >     tristate "MaxLinear MSL5005S silicon tuner"
>> >     depends on VIDEO_MEDIA && I2C
>> > -   default m if MEDIA_TUNER_CUSTOMISE
>> >     help
>> >       A driver for the silicon tuner MXL5005S from MaxLinear.
>> >
>> >  config MEDIA_TUNER_MXL5007T
>> >     tristate "MaxLinear MxL5007T silicon tuner"
>> >     depends on VIDEO_MEDIA && I2C
>> > -   default m if MEDIA_TUNER_CUSTOMISE
>> >     help
>> >       A driver for the silicon tuner MxL5007T from MaxLinear.
>> >
>> >  config MEDIA_TUNER_MC44S803
>> >     tristate "Freescale MC44S803 Low Power CMOS Broadband tuners"
>> >     depends on VIDEO_MEDIA && I2C
>> > -   default m if MEDIA_TUNER_CUSTOMISE
>> >     help
>> >       Say Y here to support the Freescale MC44S803 based tuners
>> >
>> >  config MEDIA_TUNER_MAX2165
>> >     tristate "Maxim MAX2165 silicon tuner"
>> >     depends on VIDEO_MEDIA && I2C
>> > -   default m if MEDIA_TUNER_CUSTOMISE
>> >     help
>> >       A driver for the silicon tuner MAX2165 from Maxim.
>> >
>> >  config MEDIA_TUNER_TDA18218
>> >     tristate "NXP TDA18218 silicon tuner"
>> >     depends on VIDEO_MEDIA && I2C
>> > -   default m if MEDIA_TUNER_CUSTOMISE
>> >     help
>> >       NXP TDA18218 silicon tuner driver.
>> >
>> >  config MEDIA_TUNER_TDA18212
>> >     tristate "NXP TDA18212 silicon tuner"
>> >     depends on VIDEO_MEDIA && I2C
>> > -   default m if MEDIA_TUNER_CUSTOMISE
>> >     help
>> >       NXP TDA18212 silicon tuner driver.
>> >
>> > diff --git a/drivers/media/radio/Kconfig b/drivers/media/radio/Kconfig
>> > index 52798a1..0195335 100644
>> > --- a/drivers/media/radio/Kconfig
>> > +++ b/drivers/media/radio/Kconfig
>> > @@ -5,7 +5,6 @@
>> >  menuconfig RADIO_ADAPTERS
>> >     bool "Radio Adapters"
>> >     depends on VIDEO_V4L2
>> > -   default y
>> >     ---help---
>> >       Say Y here to enable selecting AM/FM radio adapters.
>> >
>> > diff --git a/drivers/media/rc/Kconfig b/drivers/media/rc/Kconfig
>> > index 899f783..2a4f829 100644
>> > --- a/drivers/media/rc/Kconfig
>> > +++ b/drivers/media/rc/Kconfig
>> > @@ -1,7 +1,6 @@
>> >  menuconfig RC_CORE
>> >     tristate "Remote Controller adapters"
>> >     depends on INPUT
>> > -   default INPUT
>> >     ---help---
>> >       Enable support for Remote Controllers on Linux. This is
>> >       needed in order to support several video capture adapters.
>> > @@ -11,12 +10,9 @@ menuconfig RC_CORE
>> >       if you don't need IR, as otherwise, you may not be able to
>> >       compile the driver for your adapter.
>> >
>> > -if RC_CORE
>> > -
>> >  config LIRC
>> >     tristate
>> > -   default y
>> > -
>> > +   depends on RC_CORE
>> >     ---help---
>> >        Enable this option to build the Linux Infrared Remote
>> >        Control (LIRC) core device interface driver. The LIRC
>> > @@ -30,7 +26,6 @@ config IR_NEC_DECODER
>> >     tristate "Enable IR raw decoder for the NEC protocol"
>> >     depends on RC_CORE
>> >     select BITREVERSE
>> > -   default y
>> >
>> >     ---help---
>> >        Enable this option if you have IR with NEC protocol, and
>> > @@ -40,7 +35,6 @@ config IR_RC5_DECODER
>> >     tristate "Enable IR raw decoder for the RC-5 protocol"
>> >     depends on RC_CORE
>> >     select BITREVERSE
>> > -   default y
>> >
>> >     ---help---
>> >        Enable this option if you have IR with RC-5 protocol, and
>> > @@ -50,7 +44,6 @@ config IR_RC6_DECODER
>> >     tristate "Enable IR raw decoder for the RC6 protocol"
>> >     depends on RC_CORE
>> >     select BITREVERSE
>> > -   default y
>> >
>> >     ---help---
>> >        Enable this option if you have an infrared remote control which
>> > @@ -60,7 +53,6 @@ config IR_JVC_DECODER
>> >     tristate "Enable IR raw decoder for the JVC protocol"
>> >     depends on RC_CORE
>> >     select BITREVERSE
>> > -   default y
>> >
>> >     ---help---
>> >        Enable this option if you have an infrared remote control which
>> > @@ -69,7 +61,6 @@ config IR_JVC_DECODER
>> >  config IR_SONY_DECODER
>> >     tristate "Enable IR raw decoder for the Sony protocol"
>> >     depends on RC_CORE
>> > -   default y
>> >
>> >     ---help---
>> >        Enable this option if you have an infrared remote control which
>> > @@ -79,7 +70,6 @@ config IR_RC5_SZ_DECODER
>> >     tristate "Enable IR raw decoder for the RC-5 (streamzap) protocol"
>> >     depends on RC_CORE
>> >     select BITREVERSE
>> > -   default y
>> >
>> >     ---help---
>> >        Enable this option if you have IR with RC-5 (streamzap) protocol,
>> > @@ -91,7 +81,6 @@ config IR_MCE_KBD_DECODER
>> >     tristate "Enable IR raw decoder for the MCE keyboard/mouse protocol"
>> >     depends on RC_CORE
>> >     select BITREVERSE
>> > -   default y
>> >
>> >     ---help---
>> >        Enable this option if you have a Microsoft Remote Keyboard for
>> > @@ -102,7 +91,6 @@ config IR_LIRC_CODEC
>> >     tristate "Enable IR to LIRC bridge"
>> >     depends on RC_CORE
>> >     depends on LIRC
>> > -   default y
>> >
>> >     ---help---
>> >        Enable this option to pass raw IR to and from userspace via
>> > @@ -236,5 +224,3 @@ config RC_LOOPBACK
>> >
>> >        To compile this driver as a module, choose M here: the module will
>> >        be called rc_loopback.
>> > -
>> > -endif #RC_CORE
>> > diff --git a/drivers/media/rc/keymaps/Kconfig b/drivers/media/rc/keymaps/Kconfig
>> > index 8e615fd..dbaacf1 100644
>> > --- a/drivers/media/rc/keymaps/Kconfig
>> > +++ b/drivers/media/rc/keymaps/Kconfig
>> > @@ -1,7 +1,6 @@
>> >  config RC_MAP
>> >     tristate "Compile Remote Controller keymap modules"
>> >     depends on RC_CORE
>> > -   default y
>> >
>> >     ---help---
>> >        This option enables the compilation of lots of Remote
>> > diff --git a/drivers/media/video/Kconfig b/drivers/media/video/Kconfig
>> > index f574dc0..d26443d 100644
>> > --- a/drivers/media/video/Kconfig
>> > +++ b/drivers/media/video/Kconfig
>> > @@ -73,7 +73,6 @@ config VIDEOBUF2_DMA_SG
>> >  menuconfig VIDEO_CAPTURE_DRIVERS
>> >     bool "Video capture adapters"
>> >     depends on VIDEO_V4L2
>> > -   default y
>> >     ---help---
>> >       Say Y here to enable selecting the video adapters for
>> >       webcams, analog TV, and hybrid analog/digital TV.
>> > @@ -113,8 +112,8 @@ config VIDEO_HELPER_CHIPS_AUTO
>> >
>> >  config VIDEO_IR_I2C
>> >     tristate "I2C module for IR" if !VIDEO_HELPER_CHIPS_AUTO
>> > -   depends on I2C && RC_CORE
>> > -   default y
>> > +   depends on I2C
>> > +   select RC_CORE
>> >     ---help---
>> >       Most boards have an IR chip directly connected via GPIO. However,
>> >       some video boards have the IR connected via I2C bus.
>> > @@ -556,7 +555,6 @@ config VIDEO_VIU
>> >     tristate "Freescale VIU Video Driver"
>> >     depends on VIDEO_V4L2 && PPC_MPC512x
>> >     select VIDEOBUF_DMA_CONTIG
>> > -   default y
>> >     ---help---
>> >       Support for Freescale VIU video driver. This device captures
>> >       video data, or overlays video on DIU frame buffer.
>> > @@ -986,7 +984,6 @@ source "drivers/media/video/s5p-tv/Kconfig"
>> >  menuconfig V4L_USB_DRIVERS
>> >     bool "V4L USB devices"
>> >     depends on USB
>> > -   default y
>> >
>> >  if V4L_USB_DRIVERS && USB
>> >
>> >
>>
>
> ---
> Guennadi Liakhovetski, Ph.D.
> Freelance Open-Source Software Developer
> http://www.open-technology.de/
> --
> To unsubscribe from this list: send the line "unsubscribe linux-media" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Guennadi Liakhovetski Aug. 30, 2011, 9:31 p.m. UTC | #7
On Tue, 30 Aug 2011, Hans Verkuil wrote:

> On Tuesday, August 30, 2011 22:12:09 Guennadi Liakhovetski wrote:
> > On Tue, 30 Aug 2011, Hans Verkuil wrote:
> > 
> > > On Tuesday, August 30, 2011 19:22:00 Guennadi Liakhovetski wrote:
> > > > None of the media drivers are compulsory, let users select which drivers
> > > > they want to build, instead of having to unselect them one by one.
> > > 
> > > I disagree with this: while this is fine for SoCs, for a generic kernel I
> > > think it is better to build it all. Even expert users can have a hard time
> > > figuring out what chip is in a particular device.
> > 
> > Then could someone, please, explain to me, why I don't find this 
> > "convenience" in any other kernel driver class? Wireless, ALSA, USB, I2C - 
> > you name them. Is there something special about media, that I'm missing, 
> > or are all others just user-unfriendly? Why are distro-kernels, 
> > allmodconfig, allyesconfig not enough for media and we think it's 
> > necessary to build everything "just in case?"
> 
> That's actually a good question. I certainly think that the more obscure
> drivers can be disabled by default. But I also think that you want to keep
> a certain subset of commonly used drivers enabled. I'm thinking bttv, uvc,
> perhaps gspca.

Good, this is a good beginning! It was actually the purpose of my patch - 
to make us actually consider which drivers we need enabled per default, 
and which we don't, instead of just enabling all.

> As far as I can see, alsa enables for example HD Audio, which almost all
> modern hw supports. We should do something similar for v4l.

Yes, agree.

> And we should really reorder some of the entries in the menu: one of the
> first drivers you see are parallel port webcams and other very obscure
> devices.

Ok.

So, how should we proceed? What I certainly would like to disable 
completely or to 99% are remote controls and tuners. The rest are actually 
disabled by default, which is great. Or at least I would like to have a 
single switch "disable all," ideally active by default. One of the 
possibilities would be to take the patch as is and _then_ begin to think, 
which drivers we want enabled by default. I just think, that the correct 
approach is to think, which drivers we need enabled by default - as 
exceptions, instead of - which drivers we can afford to disable.

Thanks
Guennadi
---
Guennadi Liakhovetski, Ph.D.
Freelance Open-Source Software Developer
http://www.open-technology.de/
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Guennadi Liakhovetski Aug. 30, 2011, 9:47 p.m. UTC | #8
On Tue, 30 Aug 2011, Michael Krufky wrote:

> On Tue, Aug 30, 2011 at 4:12 PM, Guennadi Liakhovetski
> <g.liakhovetski@gmx.de> wrote:
> > On Tue, 30 Aug 2011, Hans Verkuil wrote:
> >
> >> On Tuesday, August 30, 2011 19:22:00 Guennadi Liakhovetski wrote:
> >> > None of the media drivers are compulsory, let users select which drivers
> >> > they want to build, instead of having to unselect them one by one.
> >>
> >> I disagree with this: while this is fine for SoCs, for a generic kernel I
> >> think it is better to build it all. Even expert users can have a hard time
> >> figuring out what chip is in a particular device.
> >
> > Then could someone, please, explain to me, why I don't find this
> > "convenience" in any other kernel driver class? Wireless, ALSA, USB, I2C -
> > you name them. Is there something special about media, that I'm missing,
> > or are all others just user-unfriendly? Why are distro-kernels,
> > allmodconfig, allyesconfig not enough for media and we think it's
> > necessary to build everything "just in case?"
> 
> 
> This isn't a matter of "building all drivers by default" -- it is a
> matter of building component dependency drivers that are needed by the
> bridge drivers, and allowing users to not build drivers that they
> don't need.

I would understand, if in the beginning all was empty (all drivers 
disabled), then the user goes to his or her card entry, enables it. And 
since that card has a 100 of variations, and we don't know exactly which 
of them the user has, we enable all components, possibly present on this 
card. This would make sense. Howevre, this is not what we currently have.

> The customization options are there to allow you to
> disable the "helper chips" / "tuners" etc from all being built if that
> is your choice.  If you disable the customization options, then
> Kconfig automatically selects the dependencies of the bridge drivers
> that you've selected and does NOT build those that are irrelevant to
> you.

Hm, that's not what I see. I just tried the following: made a default 
x86_64 .config, it had media disabled. Then I enabled media and alreay a 
bunch of IR remotes has been enabled. Then I enabled V4L, and all tuners 
got enabled. Switching on "customize" allowed me to kill them selectively. 
So, I don't see what you described above: how those tuners only get to 
build, if I enable respective bridges. Or have I misunderstood you?

Thanks
Guennadi

> At first, users were forced to build everything without being
> able to disable these modules.  We added this mechanism to allow such
> modules to be disabled from a build, but we enable them by default
> because anything else would become a user-support nightmare, as I
> stated earlier.  If you refer to the mailing list archives from about
> four or five years ago, you'll may find that this was discussed at
> length on the video4linux and linux-dvb mailing lists.  In the end I
> believe this is the solution that satisfied everybody the best.
> 
> -Mike Krufky
> >
> > Thanks
> > Guennadi
> >
> >>
> >> Regards,
> >>
> >>       Hans
> >>
> >> > Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
> >> > ---
> >> >  drivers/media/common/tuners/Kconfig |   23 +----------------------
> >> >  drivers/media/radio/Kconfig         |    1 -
> >> >  drivers/media/rc/Kconfig            |   16 +---------------
> >> >  drivers/media/rc/keymaps/Kconfig    |    1 -
> >> >  drivers/media/video/Kconfig         |    7 ++-----
> >> >  5 files changed, 4 insertions(+), 44 deletions(-)
> >> >
> >> > diff --git a/drivers/media/common/tuners/Kconfig b/drivers/media/common/tuners/Kconfig
> >> > index 996302a..1e53057 100644
> >> > --- a/drivers/media/common/tuners/Kconfig
> >> > +++ b/drivers/media/common/tuners/Kconfig
> >> > @@ -33,7 +33,7 @@ config MEDIA_TUNER
> >> >     select MEDIA_TUNER_MC44S803 if !MEDIA_TUNER_CUSTOMISE
> >> >
> >> >  config MEDIA_TUNER_CUSTOMISE
> >> > -   bool "Customize analog and hybrid tuner modules to build"
> >> > +   bool "Select analog and hybrid tuner modules to build"
> >> >     depends on MEDIA_TUNER
> >> >     default y if EXPERT
> >> >     help
> >> > @@ -52,7 +52,6 @@ config MEDIA_TUNER_SIMPLE
> >> >     tristate "Simple tuner support"
> >> >     depends on VIDEO_MEDIA && I2C
> >> >     select MEDIA_TUNER_TDA9887
> >> > -   default m if MEDIA_TUNER_CUSTOMISE
> >> >     help
> >> >       Say Y here to include support for various simple tuners.
> >> >
> >> > @@ -61,28 +60,24 @@ config MEDIA_TUNER_TDA8290
> >> >     depends on VIDEO_MEDIA && I2C
> >> >     select MEDIA_TUNER_TDA827X
> >> >     select MEDIA_TUNER_TDA18271
> >> > -   default m if MEDIA_TUNER_CUSTOMISE
> >> >     help
> >> >       Say Y here to include support for Philips TDA8290+8275(a) tuner.
> >> >
> >> >  config MEDIA_TUNER_TDA827X
> >> >     tristate "Philips TDA827X silicon tuner"
> >> >     depends on VIDEO_MEDIA && I2C
> >> > -   default m if MEDIA_TUNER_CUSTOMISE
> >> >     help
> >> >       A DVB-T silicon tuner module. Say Y when you want to support this tuner.
> >> >
> >> >  config MEDIA_TUNER_TDA18271
> >> >     tristate "NXP TDA18271 silicon tuner"
> >> >     depends on VIDEO_MEDIA && I2C
> >> > -   default m if MEDIA_TUNER_CUSTOMISE
> >> >     help
> >> >       A silicon tuner module. Say Y when you want to support this tuner.
> >> >
> >> >  config MEDIA_TUNER_TDA9887
> >> >     tristate "TDA 9885/6/7 analog IF demodulator"
> >> >     depends on VIDEO_MEDIA && I2C
> >> > -   default m if MEDIA_TUNER_CUSTOMISE
> >> >     help
> >> >       Say Y here to include support for Philips TDA9885/6/7
> >> >       analog IF demodulator.
> >> > @@ -91,63 +86,54 @@ config MEDIA_TUNER_TEA5761
> >> >     tristate "TEA 5761 radio tuner (EXPERIMENTAL)"
> >> >     depends on VIDEO_MEDIA && I2C
> >> >     depends on EXPERIMENTAL
> >> > -   default m if MEDIA_TUNER_CUSTOMISE
> >> >     help
> >> >       Say Y here to include support for the Philips TEA5761 radio tuner.
> >> >
> >> >  config MEDIA_TUNER_TEA5767
> >> >     tristate "TEA 5767 radio tuner"
> >> >     depends on VIDEO_MEDIA && I2C
> >> > -   default m if MEDIA_TUNER_CUSTOMISE
> >> >     help
> >> >       Say Y here to include support for the Philips TEA5767 radio tuner.
> >> >
> >> >  config MEDIA_TUNER_MT20XX
> >> >     tristate "Microtune 2032 / 2050 tuners"
> >> >     depends on VIDEO_MEDIA && I2C
> >> > -   default m if MEDIA_TUNER_CUSTOMISE
> >> >     help
> >> >       Say Y here to include support for the MT2032 / MT2050 tuner.
> >> >
> >> >  config MEDIA_TUNER_MT2060
> >> >     tristate "Microtune MT2060 silicon IF tuner"
> >> >     depends on VIDEO_MEDIA && I2C
> >> > -   default m if MEDIA_TUNER_CUSTOMISE
> >> >     help
> >> >       A driver for the silicon IF tuner MT2060 from Microtune.
> >> >
> >> >  config MEDIA_TUNER_MT2266
> >> >     tristate "Microtune MT2266 silicon tuner"
> >> >     depends on VIDEO_MEDIA && I2C
> >> > -   default m if MEDIA_TUNER_CUSTOMISE
> >> >     help
> >> >       A driver for the silicon baseband tuner MT2266 from Microtune.
> >> >
> >> >  config MEDIA_TUNER_MT2131
> >> >     tristate "Microtune MT2131 silicon tuner"
> >> >     depends on VIDEO_MEDIA && I2C
> >> > -   default m if MEDIA_TUNER_CUSTOMISE
> >> >     help
> >> >       A driver for the silicon baseband tuner MT2131 from Microtune.
> >> >
> >> >  config MEDIA_TUNER_QT1010
> >> >     tristate "Quantek QT1010 silicon tuner"
> >> >     depends on VIDEO_MEDIA && I2C
> >> > -   default m if MEDIA_TUNER_CUSTOMISE
> >> >     help
> >> >       A driver for the silicon tuner QT1010 from Quantek.
> >> >
> >> >  config MEDIA_TUNER_XC2028
> >> >     tristate "XCeive xc2028/xc3028 tuners"
> >> >     depends on VIDEO_MEDIA && I2C
> >> > -   default m if MEDIA_TUNER_CUSTOMISE
> >> >     help
> >> >       Say Y here to include support for the xc2028/xc3028 tuners.
> >> >
> >> >  config MEDIA_TUNER_XC5000
> >> >     tristate "Xceive XC5000 silicon tuner"
> >> >     depends on VIDEO_MEDIA && I2C
> >> > -   default m if MEDIA_TUNER_CUSTOMISE
> >> >     help
> >> >       A driver for the silicon tuner XC5000 from Xceive.
> >> >       This device is only used inside a SiP called together with a
> >> > @@ -156,7 +142,6 @@ config MEDIA_TUNER_XC5000
> >> >  config MEDIA_TUNER_XC4000
> >> >     tristate "Xceive XC4000 silicon tuner"
> >> >     depends on VIDEO_MEDIA && I2C
> >> > -   default m if MEDIA_TUNER_CUSTOMISE
> >> >     help
> >> >       A driver for the silicon tuner XC4000 from Xceive.
> >> >       This device is only used inside a SiP called together with a
> >> > @@ -165,42 +150,36 @@ config MEDIA_TUNER_XC4000
> >> >  config MEDIA_TUNER_MXL5005S
> >> >     tristate "MaxLinear MSL5005S silicon tuner"
> >> >     depends on VIDEO_MEDIA && I2C
> >> > -   default m if MEDIA_TUNER_CUSTOMISE
> >> >     help
> >> >       A driver for the silicon tuner MXL5005S from MaxLinear.
> >> >
> >> >  config MEDIA_TUNER_MXL5007T
> >> >     tristate "MaxLinear MxL5007T silicon tuner"
> >> >     depends on VIDEO_MEDIA && I2C
> >> > -   default m if MEDIA_TUNER_CUSTOMISE
> >> >     help
> >> >       A driver for the silicon tuner MxL5007T from MaxLinear.
> >> >
> >> >  config MEDIA_TUNER_MC44S803
> >> >     tristate "Freescale MC44S803 Low Power CMOS Broadband tuners"
> >> >     depends on VIDEO_MEDIA && I2C
> >> > -   default m if MEDIA_TUNER_CUSTOMISE
> >> >     help
> >> >       Say Y here to support the Freescale MC44S803 based tuners
> >> >
> >> >  config MEDIA_TUNER_MAX2165
> >> >     tristate "Maxim MAX2165 silicon tuner"
> >> >     depends on VIDEO_MEDIA && I2C
> >> > -   default m if MEDIA_TUNER_CUSTOMISE
> >> >     help
> >> >       A driver for the silicon tuner MAX2165 from Maxim.
> >> >
> >> >  config MEDIA_TUNER_TDA18218
> >> >     tristate "NXP TDA18218 silicon tuner"
> >> >     depends on VIDEO_MEDIA && I2C
> >> > -   default m if MEDIA_TUNER_CUSTOMISE
> >> >     help
> >> >       NXP TDA18218 silicon tuner driver.
> >> >
> >> >  config MEDIA_TUNER_TDA18212
> >> >     tristate "NXP TDA18212 silicon tuner"
> >> >     depends on VIDEO_MEDIA && I2C
> >> > -   default m if MEDIA_TUNER_CUSTOMISE
> >> >     help
> >> >       NXP TDA18212 silicon tuner driver.
> >> >
> >> > diff --git a/drivers/media/radio/Kconfig b/drivers/media/radio/Kconfig
> >> > index 52798a1..0195335 100644
> >> > --- a/drivers/media/radio/Kconfig
> >> > +++ b/drivers/media/radio/Kconfig
> >> > @@ -5,7 +5,6 @@
> >> >  menuconfig RADIO_ADAPTERS
> >> >     bool "Radio Adapters"
> >> >     depends on VIDEO_V4L2
> >> > -   default y
> >> >     ---help---
> >> >       Say Y here to enable selecting AM/FM radio adapters.
> >> >
> >> > diff --git a/drivers/media/rc/Kconfig b/drivers/media/rc/Kconfig
> >> > index 899f783..2a4f829 100644
> >> > --- a/drivers/media/rc/Kconfig
> >> > +++ b/drivers/media/rc/Kconfig
> >> > @@ -1,7 +1,6 @@
> >> >  menuconfig RC_CORE
> >> >     tristate "Remote Controller adapters"
> >> >     depends on INPUT
> >> > -   default INPUT
> >> >     ---help---
> >> >       Enable support for Remote Controllers on Linux. This is
> >> >       needed in order to support several video capture adapters.
> >> > @@ -11,12 +10,9 @@ menuconfig RC_CORE
> >> >       if you don't need IR, as otherwise, you may not be able to
> >> >       compile the driver for your adapter.
> >> >
> >> > -if RC_CORE
> >> > -
> >> >  config LIRC
> >> >     tristate
> >> > -   default y
> >> > -
> >> > +   depends on RC_CORE
> >> >     ---help---
> >> >        Enable this option to build the Linux Infrared Remote
> >> >        Control (LIRC) core device interface driver. The LIRC
> >> > @@ -30,7 +26,6 @@ config IR_NEC_DECODER
> >> >     tristate "Enable IR raw decoder for the NEC protocol"
> >> >     depends on RC_CORE
> >> >     select BITREVERSE
> >> > -   default y
> >> >
> >> >     ---help---
> >> >        Enable this option if you have IR with NEC protocol, and
> >> > @@ -40,7 +35,6 @@ config IR_RC5_DECODER
> >> >     tristate "Enable IR raw decoder for the RC-5 protocol"
> >> >     depends on RC_CORE
> >> >     select BITREVERSE
> >> > -   default y
> >> >
> >> >     ---help---
> >> >        Enable this option if you have IR with RC-5 protocol, and
> >> > @@ -50,7 +44,6 @@ config IR_RC6_DECODER
> >> >     tristate "Enable IR raw decoder for the RC6 protocol"
> >> >     depends on RC_CORE
> >> >     select BITREVERSE
> >> > -   default y
> >> >
> >> >     ---help---
> >> >        Enable this option if you have an infrared remote control which
> >> > @@ -60,7 +53,6 @@ config IR_JVC_DECODER
> >> >     tristate "Enable IR raw decoder for the JVC protocol"
> >> >     depends on RC_CORE
> >> >     select BITREVERSE
> >> > -   default y
> >> >
> >> >     ---help---
> >> >        Enable this option if you have an infrared remote control which
> >> > @@ -69,7 +61,6 @@ config IR_JVC_DECODER
> >> >  config IR_SONY_DECODER
> >> >     tristate "Enable IR raw decoder for the Sony protocol"
> >> >     depends on RC_CORE
> >> > -   default y
> >> >
> >> >     ---help---
> >> >        Enable this option if you have an infrared remote control which
> >> > @@ -79,7 +70,6 @@ config IR_RC5_SZ_DECODER
> >> >     tristate "Enable IR raw decoder for the RC-5 (streamzap) protocol"
> >> >     depends on RC_CORE
> >> >     select BITREVERSE
> >> > -   default y
> >> >
> >> >     ---help---
> >> >        Enable this option if you have IR with RC-5 (streamzap) protocol,
> >> > @@ -91,7 +81,6 @@ config IR_MCE_KBD_DECODER
> >> >     tristate "Enable IR raw decoder for the MCE keyboard/mouse protocol"
> >> >     depends on RC_CORE
> >> >     select BITREVERSE
> >> > -   default y
> >> >
> >> >     ---help---
> >> >        Enable this option if you have a Microsoft Remote Keyboard for
> >> > @@ -102,7 +91,6 @@ config IR_LIRC_CODEC
> >> >     tristate "Enable IR to LIRC bridge"
> >> >     depends on RC_CORE
> >> >     depends on LIRC
> >> > -   default y
> >> >
> >> >     ---help---
> >> >        Enable this option to pass raw IR to and from userspace via
> >> > @@ -236,5 +224,3 @@ config RC_LOOPBACK
> >> >
> >> >        To compile this driver as a module, choose M here: the module will
> >> >        be called rc_loopback.
> >> > -
> >> > -endif #RC_CORE
> >> > diff --git a/drivers/media/rc/keymaps/Kconfig b/drivers/media/rc/keymaps/Kconfig
> >> > index 8e615fd..dbaacf1 100644
> >> > --- a/drivers/media/rc/keymaps/Kconfig
> >> > +++ b/drivers/media/rc/keymaps/Kconfig
> >> > @@ -1,7 +1,6 @@
> >> >  config RC_MAP
> >> >     tristate "Compile Remote Controller keymap modules"
> >> >     depends on RC_CORE
> >> > -   default y
> >> >
> >> >     ---help---
> >> >        This option enables the compilation of lots of Remote
> >> > diff --git a/drivers/media/video/Kconfig b/drivers/media/video/Kconfig
> >> > index f574dc0..d26443d 100644
> >> > --- a/drivers/media/video/Kconfig
> >> > +++ b/drivers/media/video/Kconfig
> >> > @@ -73,7 +73,6 @@ config VIDEOBUF2_DMA_SG
> >> >  menuconfig VIDEO_CAPTURE_DRIVERS
> >> >     bool "Video capture adapters"
> >> >     depends on VIDEO_V4L2
> >> > -   default y
> >> >     ---help---
> >> >       Say Y here to enable selecting the video adapters for
> >> >       webcams, analog TV, and hybrid analog/digital TV.
> >> > @@ -113,8 +112,8 @@ config VIDEO_HELPER_CHIPS_AUTO
> >> >
> >> >  config VIDEO_IR_I2C
> >> >     tristate "I2C module for IR" if !VIDEO_HELPER_CHIPS_AUTO
> >> > -   depends on I2C && RC_CORE
> >> > -   default y
> >> > +   depends on I2C
> >> > +   select RC_CORE
> >> >     ---help---
> >> >       Most boards have an IR chip directly connected via GPIO. However,
> >> >       some video boards have the IR connected via I2C bus.
> >> > @@ -556,7 +555,6 @@ config VIDEO_VIU
> >> >     tristate "Freescale VIU Video Driver"
> >> >     depends on VIDEO_V4L2 && PPC_MPC512x
> >> >     select VIDEOBUF_DMA_CONTIG
> >> > -   default y
> >> >     ---help---
> >> >       Support for Freescale VIU video driver. This device captures
> >> >       video data, or overlays video on DIU frame buffer.
> >> > @@ -986,7 +984,6 @@ source "drivers/media/video/s5p-tv/Kconfig"
> >> >  menuconfig V4L_USB_DRIVERS
> >> >     bool "V4L USB devices"
> >> >     depends on USB
> >> > -   default y
> >> >
> >> >  if V4L_USB_DRIVERS && USB
> >> >
> >> >
> >>
> >
> > ---
> > Guennadi Liakhovetski, Ph.D.
> > Freelance Open-Source Software Developer
> > http://www.open-technology.de/
> > --
> > To unsubscribe from this list: send the line "unsubscribe linux-media" in
> > the body of a message to majordomo@vger.kernel.org
> > More majordomo info at  http://vger.kernel.org/majordomo-info.html
> >
> 

---
Guennadi Liakhovetski, Ph.D.
Freelance Open-Source Software Developer
http://www.open-technology.de/
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Michael Ira Krufky Aug. 30, 2011, 10:05 p.m. UTC | #9
On Tue, Aug 30, 2011 at 5:47 PM, Guennadi Liakhovetski
<g.liakhovetski@gmx.de> wrote:
> On Tue, 30 Aug 2011, Michael Krufky wrote:
>
>> On Tue, Aug 30, 2011 at 4:12 PM, Guennadi Liakhovetski
>> <g.liakhovetski@gmx.de> wrote:
>> > On Tue, 30 Aug 2011, Hans Verkuil wrote:
>> >
>> >> On Tuesday, August 30, 2011 19:22:00 Guennadi Liakhovetski wrote:
>> >> > None of the media drivers are compulsory, let users select which drivers
>> >> > they want to build, instead of having to unselect them one by one.
>> >>
>> >> I disagree with this: while this is fine for SoCs, for a generic kernel I
>> >> think it is better to build it all. Even expert users can have a hard time
>> >> figuring out what chip is in a particular device.
>> >
>> > Then could someone, please, explain to me, why I don't find this
>> > "convenience" in any other kernel driver class? Wireless, ALSA, USB, I2C -
>> > you name them. Is there something special about media, that I'm missing,
>> > or are all others just user-unfriendly? Why are distro-kernels,
>> > allmodconfig, allyesconfig not enough for media and we think it's
>> > necessary to build everything "just in case?"
>>
>>
>> This isn't a matter of "building all drivers by default" -- it is a
>> matter of building component dependency drivers that are needed by the
>> bridge drivers, and allowing users to not build drivers that they
>> don't need.
>
> I would understand, if in the beginning all was empty (all drivers
> disabled), then the user goes to his or her card entry, enables it. And
> since that card has a 100 of variations, and we don't know exactly which
> of them the user has, we enable all components, possibly present on this
> card. This would make sense. Howevre, this is not what we currently have.
>
>> The customization options are there to allow you to
>> disable the "helper chips" / "tuners" etc from all being built if that
>> is your choice.  If you disable the customization options, then
>> Kconfig automatically selects the dependencies of the bridge drivers
>> that you've selected and does NOT build those that are irrelevant to
>> you.
>
> Hm, that's not what I see. I just tried the following: made a default
> x86_64 .config, it had media disabled. Then I enabled media and alreay a
> bunch of IR remotes has been enabled. Then I enabled V4L, and all tuners
> got enabled. Switching on "customize" allowed me to kill them selectively.
> So, I don't see what you described above: how those tuners only get to
> build, if I enable respective bridges. Or have I misunderstood you?

You understood me correctly -- your experience described above reveals
to us that the dependency system somehow got broken and now we're
building too much by default.

Maybe we should make the VIDEO_TUNER symbol as well as VIDEO_IR etc
visible options so that those only looking to build webcams can turn
them off all at once.

I'd like to hear Mauro's comments on this.

-Mike

>> At first, users were forced to build everything without being
>> able to disable these modules.  We added this mechanism to allow such
>> modules to be disabled from a build, but we enable them by default
>> because anything else would become a user-support nightmare, as I
>> stated earlier.  If you refer to the mailing list archives from about
>> four or five years ago, you'll may find that this was discussed at
>> length on the video4linux and linux-dvb mailing lists.  In the end I
>> believe this is the solution that satisfied everybody the best.
>>
>> -Mike Krufky
>> >
>> > Thanks
>> > Guennadi
>> >
>> >>
>> >> Regards,
>> >>
>> >>       Hans
>> >>
>> >> > Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
>> >> > ---
>> >> >  drivers/media/common/tuners/Kconfig |   23 +----------------------
>> >> >  drivers/media/radio/Kconfig         |    1 -
>> >> >  drivers/media/rc/Kconfig            |   16 +---------------
>> >> >  drivers/media/rc/keymaps/Kconfig    |    1 -
>> >> >  drivers/media/video/Kconfig         |    7 ++-----
>> >> >  5 files changed, 4 insertions(+), 44 deletions(-)
>> >> >
>> >> > diff --git a/drivers/media/common/tuners/Kconfig b/drivers/media/common/tuners/Kconfig
>> >> > index 996302a..1e53057 100644
>> >> > --- a/drivers/media/common/tuners/Kconfig
>> >> > +++ b/drivers/media/common/tuners/Kconfig
>> >> > @@ -33,7 +33,7 @@ config MEDIA_TUNER
>> >> >     select MEDIA_TUNER_MC44S803 if !MEDIA_TUNER_CUSTOMISE
>> >> >
>> >> >  config MEDIA_TUNER_CUSTOMISE
>> >> > -   bool "Customize analog and hybrid tuner modules to build"
>> >> > +   bool "Select analog and hybrid tuner modules to build"
>> >> >     depends on MEDIA_TUNER
>> >> >     default y if EXPERT
>> >> >     help
>> >> > @@ -52,7 +52,6 @@ config MEDIA_TUNER_SIMPLE
>> >> >     tristate "Simple tuner support"
>> >> >     depends on VIDEO_MEDIA && I2C
>> >> >     select MEDIA_TUNER_TDA9887
>> >> > -   default m if MEDIA_TUNER_CUSTOMISE
>> >> >     help
>> >> >       Say Y here to include support for various simple tuners.
>> >> >
>> >> > @@ -61,28 +60,24 @@ config MEDIA_TUNER_TDA8290
>> >> >     depends on VIDEO_MEDIA && I2C
>> >> >     select MEDIA_TUNER_TDA827X
>> >> >     select MEDIA_TUNER_TDA18271
>> >> > -   default m if MEDIA_TUNER_CUSTOMISE
>> >> >     help
>> >> >       Say Y here to include support for Philips TDA8290+8275(a) tuner.
>> >> >
>> >> >  config MEDIA_TUNER_TDA827X
>> >> >     tristate "Philips TDA827X silicon tuner"
>> >> >     depends on VIDEO_MEDIA && I2C
>> >> > -   default m if MEDIA_TUNER_CUSTOMISE
>> >> >     help
>> >> >       A DVB-T silicon tuner module. Say Y when you want to support this tuner.
>> >> >
>> >> >  config MEDIA_TUNER_TDA18271
>> >> >     tristate "NXP TDA18271 silicon tuner"
>> >> >     depends on VIDEO_MEDIA && I2C
>> >> > -   default m if MEDIA_TUNER_CUSTOMISE
>> >> >     help
>> >> >       A silicon tuner module. Say Y when you want to support this tuner.
>> >> >
>> >> >  config MEDIA_TUNER_TDA9887
>> >> >     tristate "TDA 9885/6/7 analog IF demodulator"
>> >> >     depends on VIDEO_MEDIA && I2C
>> >> > -   default m if MEDIA_TUNER_CUSTOMISE
>> >> >     help
>> >> >       Say Y here to include support for Philips TDA9885/6/7
>> >> >       analog IF demodulator.
>> >> > @@ -91,63 +86,54 @@ config MEDIA_TUNER_TEA5761
>> >> >     tristate "TEA 5761 radio tuner (EXPERIMENTAL)"
>> >> >     depends on VIDEO_MEDIA && I2C
>> >> >     depends on EXPERIMENTAL
>> >> > -   default m if MEDIA_TUNER_CUSTOMISE
>> >> >     help
>> >> >       Say Y here to include support for the Philips TEA5761 radio tuner.
>> >> >
>> >> >  config MEDIA_TUNER_TEA5767
>> >> >     tristate "TEA 5767 radio tuner"
>> >> >     depends on VIDEO_MEDIA && I2C
>> >> > -   default m if MEDIA_TUNER_CUSTOMISE
>> >> >     help
>> >> >       Say Y here to include support for the Philips TEA5767 radio tuner.
>> >> >
>> >> >  config MEDIA_TUNER_MT20XX
>> >> >     tristate "Microtune 2032 / 2050 tuners"
>> >> >     depends on VIDEO_MEDIA && I2C
>> >> > -   default m if MEDIA_TUNER_CUSTOMISE
>> >> >     help
>> >> >       Say Y here to include support for the MT2032 / MT2050 tuner.
>> >> >
>> >> >  config MEDIA_TUNER_MT2060
>> >> >     tristate "Microtune MT2060 silicon IF tuner"
>> >> >     depends on VIDEO_MEDIA && I2C
>> >> > -   default m if MEDIA_TUNER_CUSTOMISE
>> >> >     help
>> >> >       A driver for the silicon IF tuner MT2060 from Microtune.
>> >> >
>> >> >  config MEDIA_TUNER_MT2266
>> >> >     tristate "Microtune MT2266 silicon tuner"
>> >> >     depends on VIDEO_MEDIA && I2C
>> >> > -   default m if MEDIA_TUNER_CUSTOMISE
>> >> >     help
>> >> >       A driver for the silicon baseband tuner MT2266 from Microtune.
>> >> >
>> >> >  config MEDIA_TUNER_MT2131
>> >> >     tristate "Microtune MT2131 silicon tuner"
>> >> >     depends on VIDEO_MEDIA && I2C
>> >> > -   default m if MEDIA_TUNER_CUSTOMISE
>> >> >     help
>> >> >       A driver for the silicon baseband tuner MT2131 from Microtune.
>> >> >
>> >> >  config MEDIA_TUNER_QT1010
>> >> >     tristate "Quantek QT1010 silicon tuner"
>> >> >     depends on VIDEO_MEDIA && I2C
>> >> > -   default m if MEDIA_TUNER_CUSTOMISE
>> >> >     help
>> >> >       A driver for the silicon tuner QT1010 from Quantek.
>> >> >
>> >> >  config MEDIA_TUNER_XC2028
>> >> >     tristate "XCeive xc2028/xc3028 tuners"
>> >> >     depends on VIDEO_MEDIA && I2C
>> >> > -   default m if MEDIA_TUNER_CUSTOMISE
>> >> >     help
>> >> >       Say Y here to include support for the xc2028/xc3028 tuners.
>> >> >
>> >> >  config MEDIA_TUNER_XC5000
>> >> >     tristate "Xceive XC5000 silicon tuner"
>> >> >     depends on VIDEO_MEDIA && I2C
>> >> > -   default m if MEDIA_TUNER_CUSTOMISE
>> >> >     help
>> >> >       A driver for the silicon tuner XC5000 from Xceive.
>> >> >       This device is only used inside a SiP called together with a
>> >> > @@ -156,7 +142,6 @@ config MEDIA_TUNER_XC5000
>> >> >  config MEDIA_TUNER_XC4000
>> >> >     tristate "Xceive XC4000 silicon tuner"
>> >> >     depends on VIDEO_MEDIA && I2C
>> >> > -   default m if MEDIA_TUNER_CUSTOMISE
>> >> >     help
>> >> >       A driver for the silicon tuner XC4000 from Xceive.
>> >> >       This device is only used inside a SiP called together with a
>> >> > @@ -165,42 +150,36 @@ config MEDIA_TUNER_XC4000
>> >> >  config MEDIA_TUNER_MXL5005S
>> >> >     tristate "MaxLinear MSL5005S silicon tuner"
>> >> >     depends on VIDEO_MEDIA && I2C
>> >> > -   default m if MEDIA_TUNER_CUSTOMISE
>> >> >     help
>> >> >       A driver for the silicon tuner MXL5005S from MaxLinear.
>> >> >
>> >> >  config MEDIA_TUNER_MXL5007T
>> >> >     tristate "MaxLinear MxL5007T silicon tuner"
>> >> >     depends on VIDEO_MEDIA && I2C
>> >> > -   default m if MEDIA_TUNER_CUSTOMISE
>> >> >     help
>> >> >       A driver for the silicon tuner MxL5007T from MaxLinear.
>> >> >
>> >> >  config MEDIA_TUNER_MC44S803
>> >> >     tristate "Freescale MC44S803 Low Power CMOS Broadband tuners"
>> >> >     depends on VIDEO_MEDIA && I2C
>> >> > -   default m if MEDIA_TUNER_CUSTOMISE
>> >> >     help
>> >> >       Say Y here to support the Freescale MC44S803 based tuners
>> >> >
>> >> >  config MEDIA_TUNER_MAX2165
>> >> >     tristate "Maxim MAX2165 silicon tuner"
>> >> >     depends on VIDEO_MEDIA && I2C
>> >> > -   default m if MEDIA_TUNER_CUSTOMISE
>> >> >     help
>> >> >       A driver for the silicon tuner MAX2165 from Maxim.
>> >> >
>> >> >  config MEDIA_TUNER_TDA18218
>> >> >     tristate "NXP TDA18218 silicon tuner"
>> >> >     depends on VIDEO_MEDIA && I2C
>> >> > -   default m if MEDIA_TUNER_CUSTOMISE
>> >> >     help
>> >> >       NXP TDA18218 silicon tuner driver.
>> >> >
>> >> >  config MEDIA_TUNER_TDA18212
>> >> >     tristate "NXP TDA18212 silicon tuner"
>> >> >     depends on VIDEO_MEDIA && I2C
>> >> > -   default m if MEDIA_TUNER_CUSTOMISE
>> >> >     help
>> >> >       NXP TDA18212 silicon tuner driver.
>> >> >
>> >> > diff --git a/drivers/media/radio/Kconfig b/drivers/media/radio/Kconfig
>> >> > index 52798a1..0195335 100644
>> >> > --- a/drivers/media/radio/Kconfig
>> >> > +++ b/drivers/media/radio/Kconfig
>> >> > @@ -5,7 +5,6 @@
>> >> >  menuconfig RADIO_ADAPTERS
>> >> >     bool "Radio Adapters"
>> >> >     depends on VIDEO_V4L2
>> >> > -   default y
>> >> >     ---help---
>> >> >       Say Y here to enable selecting AM/FM radio adapters.
>> >> >
>> >> > diff --git a/drivers/media/rc/Kconfig b/drivers/media/rc/Kconfig
>> >> > index 899f783..2a4f829 100644
>> >> > --- a/drivers/media/rc/Kconfig
>> >> > +++ b/drivers/media/rc/Kconfig
>> >> > @@ -1,7 +1,6 @@
>> >> >  menuconfig RC_CORE
>> >> >     tristate "Remote Controller adapters"
>> >> >     depends on INPUT
>> >> > -   default INPUT
>> >> >     ---help---
>> >> >       Enable support for Remote Controllers on Linux. This is
>> >> >       needed in order to support several video capture adapters.
>> >> > @@ -11,12 +10,9 @@ menuconfig RC_CORE
>> >> >       if you don't need IR, as otherwise, you may not be able to
>> >> >       compile the driver for your adapter.
>> >> >
>> >> > -if RC_CORE
>> >> > -
>> >> >  config LIRC
>> >> >     tristate
>> >> > -   default y
>> >> > -
>> >> > +   depends on RC_CORE
>> >> >     ---help---
>> >> >        Enable this option to build the Linux Infrared Remote
>> >> >        Control (LIRC) core device interface driver. The LIRC
>> >> > @@ -30,7 +26,6 @@ config IR_NEC_DECODER
>> >> >     tristate "Enable IR raw decoder for the NEC protocol"
>> >> >     depends on RC_CORE
>> >> >     select BITREVERSE
>> >> > -   default y
>> >> >
>> >> >     ---help---
>> >> >        Enable this option if you have IR with NEC protocol, and
>> >> > @@ -40,7 +35,6 @@ config IR_RC5_DECODER
>> >> >     tristate "Enable IR raw decoder for the RC-5 protocol"
>> >> >     depends on RC_CORE
>> >> >     select BITREVERSE
>> >> > -   default y
>> >> >
>> >> >     ---help---
>> >> >        Enable this option if you have IR with RC-5 protocol, and
>> >> > @@ -50,7 +44,6 @@ config IR_RC6_DECODER
>> >> >     tristate "Enable IR raw decoder for the RC6 protocol"
>> >> >     depends on RC_CORE
>> >> >     select BITREVERSE
>> >> > -   default y
>> >> >
>> >> >     ---help---
>> >> >        Enable this option if you have an infrared remote control which
>> >> > @@ -60,7 +53,6 @@ config IR_JVC_DECODER
>> >> >     tristate "Enable IR raw decoder for the JVC protocol"
>> >> >     depends on RC_CORE
>> >> >     select BITREVERSE
>> >> > -   default y
>> >> >
>> >> >     ---help---
>> >> >        Enable this option if you have an infrared remote control which
>> >> > @@ -69,7 +61,6 @@ config IR_JVC_DECODER
>> >> >  config IR_SONY_DECODER
>> >> >     tristate "Enable IR raw decoder for the Sony protocol"
>> >> >     depends on RC_CORE
>> >> > -   default y
>> >> >
>> >> >     ---help---
>> >> >        Enable this option if you have an infrared remote control which
>> >> > @@ -79,7 +70,6 @@ config IR_RC5_SZ_DECODER
>> >> >     tristate "Enable IR raw decoder for the RC-5 (streamzap) protocol"
>> >> >     depends on RC_CORE
>> >> >     select BITREVERSE
>> >> > -   default y
>> >> >
>> >> >     ---help---
>> >> >        Enable this option if you have IR with RC-5 (streamzap) protocol,
>> >> > @@ -91,7 +81,6 @@ config IR_MCE_KBD_DECODER
>> >> >     tristate "Enable IR raw decoder for the MCE keyboard/mouse protocol"
>> >> >     depends on RC_CORE
>> >> >     select BITREVERSE
>> >> > -   default y
>> >> >
>> >> >     ---help---
>> >> >        Enable this option if you have a Microsoft Remote Keyboard for
>> >> > @@ -102,7 +91,6 @@ config IR_LIRC_CODEC
>> >> >     tristate "Enable IR to LIRC bridge"
>> >> >     depends on RC_CORE
>> >> >     depends on LIRC
>> >> > -   default y
>> >> >
>> >> >     ---help---
>> >> >        Enable this option to pass raw IR to and from userspace via
>> >> > @@ -236,5 +224,3 @@ config RC_LOOPBACK
>> >> >
>> >> >        To compile this driver as a module, choose M here: the module will
>> >> >        be called rc_loopback.
>> >> > -
>> >> > -endif #RC_CORE
>> >> > diff --git a/drivers/media/rc/keymaps/Kconfig b/drivers/media/rc/keymaps/Kconfig
>> >> > index 8e615fd..dbaacf1 100644
>> >> > --- a/drivers/media/rc/keymaps/Kconfig
>> >> > +++ b/drivers/media/rc/keymaps/Kconfig
>> >> > @@ -1,7 +1,6 @@
>> >> >  config RC_MAP
>> >> >     tristate "Compile Remote Controller keymap modules"
>> >> >     depends on RC_CORE
>> >> > -   default y
>> >> >
>> >> >     ---help---
>> >> >        This option enables the compilation of lots of Remote
>> >> > diff --git a/drivers/media/video/Kconfig b/drivers/media/video/Kconfig
>> >> > index f574dc0..d26443d 100644
>> >> > --- a/drivers/media/video/Kconfig
>> >> > +++ b/drivers/media/video/Kconfig
>> >> > @@ -73,7 +73,6 @@ config VIDEOBUF2_DMA_SG
>> >> >  menuconfig VIDEO_CAPTURE_DRIVERS
>> >> >     bool "Video capture adapters"
>> >> >     depends on VIDEO_V4L2
>> >> > -   default y
>> >> >     ---help---
>> >> >       Say Y here to enable selecting the video adapters for
>> >> >       webcams, analog TV, and hybrid analog/digital TV.
>> >> > @@ -113,8 +112,8 @@ config VIDEO_HELPER_CHIPS_AUTO
>> >> >
>> >> >  config VIDEO_IR_I2C
>> >> >     tristate "I2C module for IR" if !VIDEO_HELPER_CHIPS_AUTO
>> >> > -   depends on I2C && RC_CORE
>> >> > -   default y
>> >> > +   depends on I2C
>> >> > +   select RC_CORE
>> >> >     ---help---
>> >> >       Most boards have an IR chip directly connected via GPIO. However,
>> >> >       some video boards have the IR connected via I2C bus.
>> >> > @@ -556,7 +555,6 @@ config VIDEO_VIU
>> >> >     tristate "Freescale VIU Video Driver"
>> >> >     depends on VIDEO_V4L2 && PPC_MPC512x
>> >> >     select VIDEOBUF_DMA_CONTIG
>> >> > -   default y
>> >> >     ---help---
>> >> >       Support for Freescale VIU video driver. This device captures
>> >> >       video data, or overlays video on DIU frame buffer.
>> >> > @@ -986,7 +984,6 @@ source "drivers/media/video/s5p-tv/Kconfig"
>> >> >  menuconfig V4L_USB_DRIVERS
>> >> >     bool "V4L USB devices"
>> >> >     depends on USB
>> >> > -   default y
>> >> >
>> >> >  if V4L_USB_DRIVERS && USB
>> >> >
>> >> >
>> >>
>> >
>> > ---
>> > Guennadi Liakhovetski, Ph.D.
>> > Freelance Open-Source Software Developer
>> > http://www.open-technology.de/
>> > --
>> > To unsubscribe from this list: send the line "unsubscribe linux-media" in
>> > the body of a message to majordomo@vger.kernel.org
>> > More majordomo info at  http://vger.kernel.org/majordomo-info.html
>> >
>>
>
> ---
> Guennadi Liakhovetski, Ph.D.
> Freelance Open-Source Software Developer
> http://www.open-technology.de/
>
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Malcolm Priestley Aug. 31, 2011, 5:35 a.m. UTC | #10
On Tue, 2011-08-30 at 21:39 +0200, Hans Verkuil wrote:
> On Tuesday, August 30, 2011 19:22:00 Guennadi Liakhovetski wrote:
> > None of the media drivers are compulsory, let users select which drivers
> > they want to build, instead of having to unselect them one by one.
> 
> I disagree with this: while this is fine for SoCs, for a generic kernel I
> think it is better to build it all. Even expert users can have a hard time
> figuring out what chip is in a particular device.
Yes, also if a driver is broken, a considerable amount of time could
have passed before it is known.

tvboxspy



--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Hans Verkuil Aug. 31, 2011, 8:21 a.m. UTC | #11
On Tuesday, August 30, 2011 23:31:06 Guennadi Liakhovetski wrote:
> On Tue, 30 Aug 2011, Hans Verkuil wrote:
> 
> > On Tuesday, August 30, 2011 22:12:09 Guennadi Liakhovetski wrote:
> > > On Tue, 30 Aug 2011, Hans Verkuil wrote:
> > > 
> > > > On Tuesday, August 30, 2011 19:22:00 Guennadi Liakhovetski wrote:
> > > > > None of the media drivers are compulsory, let users select which 
drivers
> > > > > they want to build, instead of having to unselect them one by one.
> > > > 
> > > > I disagree with this: while this is fine for SoCs, for a generic 
kernel I
> > > > think it is better to build it all. Even expert users can have a hard 
time
> > > > figuring out what chip is in a particular device.
> > > 
> > > Then could someone, please, explain to me, why I don't find this 
> > > "convenience" in any other kernel driver class? Wireless, ALSA, USB, I2C 
- 
> > > you name them. Is there something special about media, that I'm missing, 
> > > or are all others just user-unfriendly? Why are distro-kernels, 
> > > allmodconfig, allyesconfig not enough for media and we think it's 
> > > necessary to build everything "just in case?"
> > 
> > That's actually a good question. I certainly think that the more obscure
> > drivers can be disabled by default. But I also think that you want to keep
> > a certain subset of commonly used drivers enabled. I'm thinking bttv, uvc,
> > perhaps gspca.
> 
> Good, this is a good beginning! It was actually the purpose of my patch - 
> to make us actually consider which drivers we need enabled per default, 
> and which we don't, instead of just enabling all.
> 
> > As far as I can see, alsa enables for example HD Audio, which almost all
> > modern hw supports. We should do something similar for v4l.
> 
> Yes, agree.
> 
> > And we should really reorder some of the entries in the menu: one of the
> > first drivers you see are parallel port webcams and other very obscure
> > devices.
> 
> Ok.
> 
> So, how should we proceed? What I certainly would like to disable 
> completely or to 99% are remote controls and tuners. The rest are actually 
> disabled by default, which is great. Or at least I would like to have a 
> single switch "disable all," ideally active by default. One of the 
> possibilities would be to take the patch as is and _then_ begin to think, 
> which drivers we want enabled by default. I just think, that the correct 
> approach is to think, which drivers we need enabled by default - as 
> exceptions, instead of - which drivers we can afford to disable.

I would propose to start by reorganizing the menu. E.g. make a submenu for
old legacy bus drivers (parallel port, ISA), for platform drivers, and for
'rare' drivers (need a better name for that :-) ). For example the Hexium
PCI drivers are very rare, and few people have them.

Once that is done we can look at disabling those legacy/platform/rare drivers.

Regards,

	Hans

> 
> Thanks
> Guennadi
> ---
> Guennadi Liakhovetski, Ph.D.
> Freelance Open-Source Software Developer
> http://www.open-technology.de/
> --
> To unsubscribe from this list: send the line "unsubscribe linux-media" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Guennadi Liakhovetski Aug. 31, 2011, 8:26 a.m. UTC | #12
On Wed, 31 Aug 2011, Hans Verkuil wrote:

> On Tuesday, August 30, 2011 23:31:06 Guennadi Liakhovetski wrote:
> > On Tue, 30 Aug 2011, Hans Verkuil wrote:
> > 
> > > On Tuesday, August 30, 2011 22:12:09 Guennadi Liakhovetski wrote:
> > > > On Tue, 30 Aug 2011, Hans Verkuil wrote:
> > > > 
> > > > > On Tuesday, August 30, 2011 19:22:00 Guennadi Liakhovetski wrote:
> > > > > > None of the media drivers are compulsory, let users select which 
> drivers
> > > > > > they want to build, instead of having to unselect them one by one.
> > > > > 
> > > > > I disagree with this: while this is fine for SoCs, for a generic 
> kernel I
> > > > > think it is better to build it all. Even expert users can have a hard 
> time
> > > > > figuring out what chip is in a particular device.
> > > > 
> > > > Then could someone, please, explain to me, why I don't find this 
> > > > "convenience" in any other kernel driver class? Wireless, ALSA, USB, I2C 
> - 
> > > > you name them. Is there something special about media, that I'm missing, 
> > > > or are all others just user-unfriendly? Why are distro-kernels, 
> > > > allmodconfig, allyesconfig not enough for media and we think it's 
> > > > necessary to build everything "just in case?"
> > > 
> > > That's actually a good question. I certainly think that the more obscure
> > > drivers can be disabled by default. But I also think that you want to keep
> > > a certain subset of commonly used drivers enabled. I'm thinking bttv, uvc,
> > > perhaps gspca.
> > 
> > Good, this is a good beginning! It was actually the purpose of my patch - 
> > to make us actually consider which drivers we need enabled per default, 
> > and which we don't, instead of just enabling all.
> > 
> > > As far as I can see, alsa enables for example HD Audio, which almost all
> > > modern hw supports. We should do something similar for v4l.
> > 
> > Yes, agree.
> > 
> > > And we should really reorder some of the entries in the menu: one of the
> > > first drivers you see are parallel port webcams and other very obscure
> > > devices.
> > 
> > Ok.
> > 
> > So, how should we proceed? What I certainly would like to disable 
> > completely or to 99% are remote controls and tuners. The rest are actually 
> > disabled by default, which is great. Or at least I would like to have a 
> > single switch "disable all," ideally active by default. One of the 
> > possibilities would be to take the patch as is and _then_ begin to think, 
> > which drivers we want enabled by default. I just think, that the correct 
> > approach is to think, which drivers we need enabled by default - as 
> > exceptions, instead of - which drivers we can afford to disable.
> 
> I would propose to start by reorganizing the menu. E.g. make a submenu for
> old legacy bus drivers (parallel port, ISA), for platform drivers, and for
> 'rare' drivers (need a better name for that :-) ). For example the Hexium
> PCI drivers are very rare, and few people have them.

Sure, this can be done, not sure whether I'm a suitable person for this 
task - I don't have a very good overview of the present market 
situation;-)

> Once that is done we can look at disabling those legacy/platform/rare drivers.

I'm not sure any of those are actually enabled. What concerns me most are 
tuner and remote controller drivers. Do they also belong to your "rare" 
category? Do you agree, that they have to be disabled by default?

Thanks
Guennadi
---
Guennadi Liakhovetski, Ph.D.
Freelance Open-Source Software Developer
http://www.open-technology.de/
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Hans Verkuil Aug. 31, 2011, 8:53 a.m. UTC | #13
On Wednesday, August 31, 2011 10:26:08 Guennadi Liakhovetski wrote:
> On Wed, 31 Aug 2011, Hans Verkuil wrote:
> 
> > On Tuesday, August 30, 2011 23:31:06 Guennadi Liakhovetski wrote:
> > > On Tue, 30 Aug 2011, Hans Verkuil wrote:
> > > 
> > > > On Tuesday, August 30, 2011 22:12:09 Guennadi Liakhovetski wrote:
> > > > > On Tue, 30 Aug 2011, Hans Verkuil wrote:
> > > > > 
> > > > > > On Tuesday, August 30, 2011 19:22:00 Guennadi Liakhovetski wrote:
> > > > > > > None of the media drivers are compulsory, let users select which 
> > drivers
> > > > > > > they want to build, instead of having to unselect them one by 
one.
> > > > > > 
> > > > > > I disagree with this: while this is fine for SoCs, for a generic 
> > kernel I
> > > > > > think it is better to build it all. Even expert users can have a 
hard 
> > time
> > > > > > figuring out what chip is in a particular device.
> > > > > 
> > > > > Then could someone, please, explain to me, why I don't find this 
> > > > > "convenience" in any other kernel driver class? Wireless, ALSA, USB, 
I2C 
> > - 
> > > > > you name them. Is there something special about media, that I'm 
missing, 
> > > > > or are all others just user-unfriendly? Why are distro-kernels, 
> > > > > allmodconfig, allyesconfig not enough for media and we think it's 
> > > > > necessary to build everything "just in case?"
> > > > 
> > > > That's actually a good question. I certainly think that the more 
obscure
> > > > drivers can be disabled by default. But I also think that you want to 
keep
> > > > a certain subset of commonly used drivers enabled. I'm thinking bttv, 
uvc,
> > > > perhaps gspca.
> > > 
> > > Good, this is a good beginning! It was actually the purpose of my patch 
- 
> > > to make us actually consider which drivers we need enabled per default, 
> > > and which we don't, instead of just enabling all.
> > > 
> > > > As far as I can see, alsa enables for example HD Audio, which almost 
all
> > > > modern hw supports. We should do something similar for v4l.
> > > 
> > > Yes, agree.
> > > 
> > > > And we should really reorder some of the entries in the menu: one of 
the
> > > > first drivers you see are parallel port webcams and other very obscure
> > > > devices.
> > > 
> > > Ok.
> > > 
> > > So, how should we proceed? What I certainly would like to disable 
> > > completely or to 99% are remote controls and tuners. The rest are 
actually 
> > > disabled by default, which is great. Or at least I would like to have a 
> > > single switch "disable all," ideally active by default. One of the 
> > > possibilities would be to take the patch as is and _then_ begin to 
think, 
> > > which drivers we want enabled by default. I just think, that the correct 
> > > approach is to think, which drivers we need enabled by default - as 
> > > exceptions, instead of - which drivers we can afford to disable.
> > 
> > I would propose to start by reorganizing the menu. E.g. make a submenu for
> > old legacy bus drivers (parallel port, ISA), for platform drivers, and for
> > 'rare' drivers (need a better name for that :-) ). For example the Hexium
> > PCI drivers are very rare, and few people have them.
> 
> Sure, this can be done, not sure whether I'm a suitable person for this 
> task - I don't have a very good overview of the present market 
> situation;-)
> 
> > Once that is done we can look at disabling those legacy/platform/rare 
drivers.
> 
> I'm not sure any of those are actually enabled. What concerns me most are 
> tuner and remote controller drivers. Do they also belong to your "rare" 
> category? Do you agree, that they have to be disabled by default?

I can't comment on the remote controller drivers as I haven't been involved
with that.

With regards to the tuners: perhaps it is sufficient to default MEDIA_ATTACH
to 'y'? That should prevent building those tuners that are not needed.

I wouldn't change anything else here.

Regards,

	Hans
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Guennadi Liakhovetski Aug. 31, 2011, 9:06 a.m. UTC | #14
On Wed, 31 Aug 2011, Hans Verkuil wrote:

> On Wednesday, August 31, 2011 10:26:08 Guennadi Liakhovetski wrote:
> > On Wed, 31 Aug 2011, Hans Verkuil wrote:
> > 
> > > On Tuesday, August 30, 2011 23:31:06 Guennadi Liakhovetski wrote:
> > > > On Tue, 30 Aug 2011, Hans Verkuil wrote:
> > > > 
> > > > > On Tuesday, August 30, 2011 22:12:09 Guennadi Liakhovetski wrote:
> > > > > > On Tue, 30 Aug 2011, Hans Verkuil wrote:
> > > > > > 
> > > > > > > On Tuesday, August 30, 2011 19:22:00 Guennadi Liakhovetski wrote:
> > > > > > > > None of the media drivers are compulsory, let users select which 
> > > drivers
> > > > > > > > they want to build, instead of having to unselect them one by 
> one.
> > > > > > > 
> > > > > > > I disagree with this: while this is fine for SoCs, for a generic 
> > > kernel I
> > > > > > > think it is better to build it all. Even expert users can have a 
> hard 
> > > time
> > > > > > > figuring out what chip is in a particular device.
> > > > > > 
> > > > > > Then could someone, please, explain to me, why I don't find this 
> > > > > > "convenience" in any other kernel driver class? Wireless, ALSA, USB, 
> I2C 
> > > - 
> > > > > > you name them. Is there something special about media, that I'm 
> missing, 
> > > > > > or are all others just user-unfriendly? Why are distro-kernels, 
> > > > > > allmodconfig, allyesconfig not enough for media and we think it's 
> > > > > > necessary to build everything "just in case?"
> > > > > 
> > > > > That's actually a good question. I certainly think that the more 
> obscure
> > > > > drivers can be disabled by default. But I also think that you want to 
> keep
> > > > > a certain subset of commonly used drivers enabled. I'm thinking bttv, 
> uvc,
> > > > > perhaps gspca.
> > > > 
> > > > Good, this is a good beginning! It was actually the purpose of my patch 
> - 
> > > > to make us actually consider which drivers we need enabled per default, 
> > > > and which we don't, instead of just enabling all.
> > > > 
> > > > > As far as I can see, alsa enables for example HD Audio, which almost 
> all
> > > > > modern hw supports. We should do something similar for v4l.
> > > > 
> > > > Yes, agree.
> > > > 
> > > > > And we should really reorder some of the entries in the menu: one of 
> the
> > > > > first drivers you see are parallel port webcams and other very obscure
> > > > > devices.
> > > > 
> > > > Ok.
> > > > 
> > > > So, how should we proceed? What I certainly would like to disable 
> > > > completely or to 99% are remote controls and tuners. The rest are 
> actually 
> > > > disabled by default, which is great. Or at least I would like to have a 
> > > > single switch "disable all," ideally active by default. One of the 
> > > > possibilities would be to take the patch as is and _then_ begin to 
> think, 
> > > > which drivers we want enabled by default. I just think, that the correct 
> > > > approach is to think, which drivers we need enabled by default - as 
> > > > exceptions, instead of - which drivers we can afford to disable.
> > > 
> > > I would propose to start by reorganizing the menu. E.g. make a submenu for
> > > old legacy bus drivers (parallel port, ISA), for platform drivers, and for
> > > 'rare' drivers (need a better name for that :-) ). For example the Hexium
> > > PCI drivers are very rare, and few people have them.
> > 
> > Sure, this can be done, not sure whether I'm a suitable person for this 
> > task - I don't have a very good overview of the present market 
> > situation;-)
> > 
> > > Once that is done we can look at disabling those legacy/platform/rare 
> drivers.
> > 
> > I'm not sure any of those are actually enabled. What concerns me most are 
> > tuner and remote controller drivers. Do they also belong to your "rare" 
> > category? Do you agree, that they have to be disabled by default?
> 
> I can't comment on the remote controller drivers as I haven't been involved
> with that.

Mauro?

> With regards to the tuners: perhaps it is sufficient to default MEDIA_ATTACH
> to 'y'? That should prevent building those tuners that are not needed.

Sorry, I don't see how this should work. I mean tuners under 
drivers/media/common/tuners/.

> I wouldn't change anything else here.

Thanks
Guennadi
---
Guennadi Liakhovetski, Ph.D.
Freelance Open-Source Software Developer
http://www.open-technology.de/
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Mauro Carvalho Chehab Aug. 31, 2011, 12:06 p.m. UTC | #15
Em 31-08-2011 06:06, Guennadi Liakhovetski escreveu:
>>>> I would propose to start by reorganizing the menu. E.g. make a submenu for
>>>> old legacy bus drivers (parallel port, ISA), for platform drivers, and for
>>>> 'rare' drivers (need a better name for that :-) ). For example the Hexium
>>>> PCI drivers are very rare, and few people have them.
>>>
>>> Sure, this can be done, not sure whether I'm a suitable person for this 
>>> task - I don't have a very good overview of the present market 
>>> situation;-)

It is hard to say what's "rare". While we know a few examples, nobody has a
worldwide situation about what's rare.

Of course, parallel port and ISA are things that makes sense to put into a separate
sub-menu, as those devices are not common at all.

>>>> Once that is done we can look at disabling those legacy/platform/rare 
>> drivers.
>>>
>>> I'm not sure any of those are actually enabled. What concerns me most are 
>>> tuner and remote controller drivers. Do they also belong to your "rare" 
>>> category? Do you agree, that they have to be disabled by default?
>>
>> I can't comment on the remote controller drivers as I haven't been involved
>> with that.
> 
> Mauro?

If RC is disabled, most PC cards don't work (bttv, cx88, ivtv, dvb-usb, ...).
Ok, this is due to a lack of proper module support on those drivers, but changing
it requires some work on each driver that depends on RC.

Also, if RC is selected, the RC decoder protocols need to be enabled by default, 
as otherwise several devices will stop working, as, on modern devices, there's
no hardware anymore to decode the IR pulses. The RC protocol Kconfig options are 
there, in fact, to allow disabling some RC decoding protocol when people are 100% 
sure that such software decoder won't be needed on some particular environment.

>> With regards to the tuners: perhaps it is sufficient to default MEDIA_ATTACH
>> to 'y'? That should prevent building those tuners that are not needed.
> 
> Sorry, I don't see how this should work. I mean tuners under 
> drivers/media/common/tuners/.
> 
>> I wouldn't change anything else here.

Tuners are required for all TV and DVB cards. Maybe we can put an explicit Kconfig
item for TV devices, and change the config stuff to something like:

config MEDIA_NEED_TUNER
	tristate

menuconfig MEDIA_TV
	tristate "TV and grabber cards"
	select MEDIA_NEED_TUNER
...
menuconfig MEDIA_WEBCAMS
	tristate "Webcameras"
...

config DVB_CORE
	tristate "DVB for Linux"
	depends on NET && INET
	select CRC32
	select MEDIA_NEED_TUNER


config MEDIA_TUNER_TDA827X
	tristate "Philips TDA827X silicon tuner"
	depends on VIDEO_MEDIA && I2C
	default MEDIA_NEED_TUNER if MEDIA_TUNER_CUSTOMIZE
	help
	  A DVB-T silicon tuner module. Say Y when you want to support this tuner.

There's one problem with the above strategy: on a few drivers, the same
driver is used for both webcams and TV. I know that em28xx has this problem,
as the same driver also supports the non-UVC em27xx-based webcams.
I think that the same is true also for usbvision.

If we put those devices under the "TV and grabber cards", people that have just a
em28xx-based webcam won't find them inside the MEDIA_WEBCAMS menus.

Of course, we can workaround it, by creating a "fake" item inside the webcams
menu, like:

menuconfig MEDIA_WEBCAMS
	tristate "Webcameras"

config MEDIA_EM27xx
	tristate "em27xx-based webcams"


and put some glue magic between MEDIA_EM27xx and em28xx:

config VIDEO_EM28XX
	depends on MEDIA_EM27xx if MEDIA_EM27xx


> 
> Thanks
> Guennadi
> ---
> Guennadi Liakhovetski, Ph.D.
> Freelance Open-Source Software Developer
> http://www.open-technology.de/

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Hans Verkuil Aug. 31, 2011, 12:41 p.m. UTC | #16
On Wednesday, August 31, 2011 14:06:34 Mauro Carvalho Chehab wrote:
> Em 31-08-2011 06:06, Guennadi Liakhovetski escreveu:
> >>>> I would propose to start by reorganizing the menu. E.g. make a submenu 
for
> >>>> old legacy bus drivers (parallel port, ISA), for platform drivers, and 
for
> >>>> 'rare' drivers (need a better name for that :-) ). For example the 
Hexium
> >>>> PCI drivers are very rare, and few people have them.
> >>>
> >>> Sure, this can be done, not sure whether I'm a suitable person for this 
> >>> task - I don't have a very good overview of the present market 
> >>> situation;-)
> 
> It is hard to say what's "rare". While we know a few examples, nobody has a
> worldwide situation about what's rare.

I actually have a pretty good overview of that when it comes to video capture.

Going through the menu it is IMHO reasonably to classify the following drivers 
as rare:

w9966 (still haven't been able to find hardware to test this)
cpia2 (after a long hunt I finally tracked down a cpia2-based webcam)
mxb
hexium (orion and gemini drivers)

As an aside: the cpia2 menu entry should really move to the 'V4L USB devices' 
section.

I think making a menu with 'legacy drivers' containing the parallel port 
webcams (bw-qcam, c-qcam, w9966), the cpia2 driver, the ISA pms driver and the 
'rare' mxb and hexium drivers would go a long way to cleaning up the v4l menu.

And by reordering the rest of the menu so 'popular' drivers like saa7134 come 
before zoran and the motion eye drivers etc. would also make it easier to 
navigate the menu.

The USB devices should be moved up to the top.

I also think a 'Sensors' submenu will be useful. Right now most sensors are 
under SoC camera, but once the soc-camera dependency is removed we can move 
them all under their own submenu.

Regards,

	Hans
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Mauro Carvalho Chehab Aug. 31, 2011, 1:41 p.m. UTC | #17
Em 31-08-2011 09:41, Hans Verkuil escreveu:
> On Wednesday, August 31, 2011 14:06:34 Mauro Carvalho Chehab wrote:
>> Em 31-08-2011 06:06, Guennadi Liakhovetski escreveu:
>>>>>> I would propose to start by reorganizing the menu. E.g. make a submenu 
> for
>>>>>> old legacy bus drivers (parallel port, ISA), for platform drivers, and 
> for
>>>>>> 'rare' drivers (need a better name for that :-) ). For example the 
> Hexium
>>>>>> PCI drivers are very rare, and few people have them.
>>>>>
>>>>> Sure, this can be done, not sure whether I'm a suitable person for this 
>>>>> task - I don't have a very good overview of the present market 
>>>>> situation;-)
>>
>> It is hard to say what's "rare". While we know a few examples, nobody has a
>> worldwide situation about what's rare.
> 
> I actually have a pretty good overview of that when it comes to video capture.
> 
> Going through the menu it is IMHO reasonably to classify the following drivers 
> as rare:
> 
> w9966 (still haven't been able to find hardware to test this)
> cpia2 (after a long hunt I finally tracked down a cpia2-based webcam)
> mxb
> hexium (orion and gemini drivers)

Not many. Also, I'm sure that some DVB devices are also "rare". 

I think that the main question is: are you _sure_ that all the remaining devices
are "not rare"? If we're creating an item for those devices, we should be sure 
that we'll put there everything that falls into that category, otherwise it will
be missy.

Btw, there are also some cases where a device is found only on some specific
market, like the ISDB-S cards (only found in Japan, AFAIK). Those devices will
be "rare" outside Japan, as people would have a device there only if they have
an ISDB-S generator, or if they're on some place where the Japan Satellites
can be seen. The same applies to some drivers focused at the other Asian standards.
I doubt that, when one of such devices become "rare" (e. g. after years after
the end of such device sales) that we'll be able to detect it.

> As an aside: the cpia2 menu entry should really move to the 'V4L USB devices' 
> section.

Agreed.

> I think making a menu with 'legacy drivers' containing the parallel port 
> webcams (bw-qcam, c-qcam, w9966), the cpia2 driver, the ISA pms driver and the 
> 'rare' mxb and hexium drivers would go a long way to cleaning up the v4l menu.

a "parallel port" menu would make sense. Let's put it in the end. The same applies
to ISA drivers.

> And by reordering the rest of the menu so 'popular' drivers like saa7134 come 
> before zoran and the motion eye drivers etc. would also make it easier to 
> navigate the menu.

Not sure about that. Maybe using an alphabetical order would be better.

> The USB devices should be moved up to the top.

Agreed.

> I also think a 'Sensors' submenu will be useful. Right now most sensors are 
> under SoC camera, but once the soc-camera dependency is removed we can move 
> them all under their own submenu.

We're putting all I2C drivers under the menu "Encoders/decoders and other helper chips",
including the very few sensors drivers that don't belong to soc-camera.

They're organized there by function. I don't mind reordering it or breaking it into
sub-menus, provided that we will to the same thing for everything that falls into the
same category.


> 
> Regards,
> 
> 	Hans

Cheers,
Mauro
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Guennadi Liakhovetski Aug. 31, 2011, 1:50 p.m. UTC | #18
On Wed, 31 Aug 2011, Mauro Carvalho Chehab wrote:

> Em 31-08-2011 09:41, Hans Verkuil escreveu:

[snip]

> > And by reordering the rest of the menu so 'popular' drivers like saa7134 come 
> > before zoran and the motion eye drivers etc. would also make it easier to 
> > navigate the menu.
> 
> Not sure about that. Maybe using an alphabetical order would be better.

Agree, alphabetic is easier to navigate.

Thanks
Guennadi
---
Guennadi Liakhovetski, Ph.D.
Freelance Open-Source Software Developer
http://www.open-technology.de/
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/media/common/tuners/Kconfig b/drivers/media/common/tuners/Kconfig
index 996302a..1e53057 100644
--- a/drivers/media/common/tuners/Kconfig
+++ b/drivers/media/common/tuners/Kconfig
@@ -33,7 +33,7 @@  config MEDIA_TUNER
 	select MEDIA_TUNER_MC44S803 if !MEDIA_TUNER_CUSTOMISE
 
 config MEDIA_TUNER_CUSTOMISE
-	bool "Customize analog and hybrid tuner modules to build"
+	bool "Select analog and hybrid tuner modules to build"
 	depends on MEDIA_TUNER
 	default y if EXPERT
 	help
@@ -52,7 +52,6 @@  config MEDIA_TUNER_SIMPLE
 	tristate "Simple tuner support"
 	depends on VIDEO_MEDIA && I2C
 	select MEDIA_TUNER_TDA9887
-	default m if MEDIA_TUNER_CUSTOMISE
 	help
 	  Say Y here to include support for various simple tuners.
 
@@ -61,28 +60,24 @@  config MEDIA_TUNER_TDA8290
 	depends on VIDEO_MEDIA && I2C
 	select MEDIA_TUNER_TDA827X
 	select MEDIA_TUNER_TDA18271
-	default m if MEDIA_TUNER_CUSTOMISE
 	help
 	  Say Y here to include support for Philips TDA8290+8275(a) tuner.
 
 config MEDIA_TUNER_TDA827X
 	tristate "Philips TDA827X silicon tuner"
 	depends on VIDEO_MEDIA && I2C
-	default m if MEDIA_TUNER_CUSTOMISE
 	help
 	  A DVB-T silicon tuner module. Say Y when you want to support this tuner.
 
 config MEDIA_TUNER_TDA18271
 	tristate "NXP TDA18271 silicon tuner"
 	depends on VIDEO_MEDIA && I2C
-	default m if MEDIA_TUNER_CUSTOMISE
 	help
 	  A silicon tuner module. Say Y when you want to support this tuner.
 
 config MEDIA_TUNER_TDA9887
 	tristate "TDA 9885/6/7 analog IF demodulator"
 	depends on VIDEO_MEDIA && I2C
-	default m if MEDIA_TUNER_CUSTOMISE
 	help
 	  Say Y here to include support for Philips TDA9885/6/7
 	  analog IF demodulator.
@@ -91,63 +86,54 @@  config MEDIA_TUNER_TEA5761
 	tristate "TEA 5761 radio tuner (EXPERIMENTAL)"
 	depends on VIDEO_MEDIA && I2C
 	depends on EXPERIMENTAL
-	default m if MEDIA_TUNER_CUSTOMISE
 	help
 	  Say Y here to include support for the Philips TEA5761 radio tuner.
 
 config MEDIA_TUNER_TEA5767
 	tristate "TEA 5767 radio tuner"
 	depends on VIDEO_MEDIA && I2C
-	default m if MEDIA_TUNER_CUSTOMISE
 	help
 	  Say Y here to include support for the Philips TEA5767 radio tuner.
 
 config MEDIA_TUNER_MT20XX
 	tristate "Microtune 2032 / 2050 tuners"
 	depends on VIDEO_MEDIA && I2C
-	default m if MEDIA_TUNER_CUSTOMISE
 	help
 	  Say Y here to include support for the MT2032 / MT2050 tuner.
 
 config MEDIA_TUNER_MT2060
 	tristate "Microtune MT2060 silicon IF tuner"
 	depends on VIDEO_MEDIA && I2C
-	default m if MEDIA_TUNER_CUSTOMISE
 	help
 	  A driver for the silicon IF tuner MT2060 from Microtune.
 
 config MEDIA_TUNER_MT2266
 	tristate "Microtune MT2266 silicon tuner"
 	depends on VIDEO_MEDIA && I2C
-	default m if MEDIA_TUNER_CUSTOMISE
 	help
 	  A driver for the silicon baseband tuner MT2266 from Microtune.
 
 config MEDIA_TUNER_MT2131
 	tristate "Microtune MT2131 silicon tuner"
 	depends on VIDEO_MEDIA && I2C
-	default m if MEDIA_TUNER_CUSTOMISE
 	help
 	  A driver for the silicon baseband tuner MT2131 from Microtune.
 
 config MEDIA_TUNER_QT1010
 	tristate "Quantek QT1010 silicon tuner"
 	depends on VIDEO_MEDIA && I2C
-	default m if MEDIA_TUNER_CUSTOMISE
 	help
 	  A driver for the silicon tuner QT1010 from Quantek.
 
 config MEDIA_TUNER_XC2028
 	tristate "XCeive xc2028/xc3028 tuners"
 	depends on VIDEO_MEDIA && I2C
-	default m if MEDIA_TUNER_CUSTOMISE
 	help
 	  Say Y here to include support for the xc2028/xc3028 tuners.
 
 config MEDIA_TUNER_XC5000
 	tristate "Xceive XC5000 silicon tuner"
 	depends on VIDEO_MEDIA && I2C
-	default m if MEDIA_TUNER_CUSTOMISE
 	help
 	  A driver for the silicon tuner XC5000 from Xceive.
 	  This device is only used inside a SiP called together with a
@@ -156,7 +142,6 @@  config MEDIA_TUNER_XC5000
 config MEDIA_TUNER_XC4000
 	tristate "Xceive XC4000 silicon tuner"
 	depends on VIDEO_MEDIA && I2C
-	default m if MEDIA_TUNER_CUSTOMISE
 	help
 	  A driver for the silicon tuner XC4000 from Xceive.
 	  This device is only used inside a SiP called together with a
@@ -165,42 +150,36 @@  config MEDIA_TUNER_XC4000
 config MEDIA_TUNER_MXL5005S
 	tristate "MaxLinear MSL5005S silicon tuner"
 	depends on VIDEO_MEDIA && I2C
-	default m if MEDIA_TUNER_CUSTOMISE
 	help
 	  A driver for the silicon tuner MXL5005S from MaxLinear.
 
 config MEDIA_TUNER_MXL5007T
 	tristate "MaxLinear MxL5007T silicon tuner"
 	depends on VIDEO_MEDIA && I2C
-	default m if MEDIA_TUNER_CUSTOMISE
 	help
 	  A driver for the silicon tuner MxL5007T from MaxLinear.
 
 config MEDIA_TUNER_MC44S803
 	tristate "Freescale MC44S803 Low Power CMOS Broadband tuners"
 	depends on VIDEO_MEDIA && I2C
-	default m if MEDIA_TUNER_CUSTOMISE
 	help
 	  Say Y here to support the Freescale MC44S803 based tuners
 
 config MEDIA_TUNER_MAX2165
 	tristate "Maxim MAX2165 silicon tuner"
 	depends on VIDEO_MEDIA && I2C
-	default m if MEDIA_TUNER_CUSTOMISE
 	help
 	  A driver for the silicon tuner MAX2165 from Maxim.
 
 config MEDIA_TUNER_TDA18218
 	tristate "NXP TDA18218 silicon tuner"
 	depends on VIDEO_MEDIA && I2C
-	default m if MEDIA_TUNER_CUSTOMISE
 	help
 	  NXP TDA18218 silicon tuner driver.
 
 config MEDIA_TUNER_TDA18212
 	tristate "NXP TDA18212 silicon tuner"
 	depends on VIDEO_MEDIA && I2C
-	default m if MEDIA_TUNER_CUSTOMISE
 	help
 	  NXP TDA18212 silicon tuner driver.
 
diff --git a/drivers/media/radio/Kconfig b/drivers/media/radio/Kconfig
index 52798a1..0195335 100644
--- a/drivers/media/radio/Kconfig
+++ b/drivers/media/radio/Kconfig
@@ -5,7 +5,6 @@ 
 menuconfig RADIO_ADAPTERS
 	bool "Radio Adapters"
 	depends on VIDEO_V4L2
-	default y
 	---help---
 	  Say Y here to enable selecting AM/FM radio adapters.
 
diff --git a/drivers/media/rc/Kconfig b/drivers/media/rc/Kconfig
index 899f783..2a4f829 100644
--- a/drivers/media/rc/Kconfig
+++ b/drivers/media/rc/Kconfig
@@ -1,7 +1,6 @@ 
 menuconfig RC_CORE
 	tristate "Remote Controller adapters"
 	depends on INPUT
-	default INPUT
 	---help---
 	  Enable support for Remote Controllers on Linux. This is
 	  needed in order to support several video capture adapters.
@@ -11,12 +10,9 @@  menuconfig RC_CORE
 	  if you don't need IR, as otherwise, you may not be able to
 	  compile the driver for your adapter.
 
-if RC_CORE
-
 config LIRC
 	tristate
-	default y
-
+	depends on RC_CORE
 	---help---
 	   Enable this option to build the Linux Infrared Remote
 	   Control (LIRC) core device interface driver. The LIRC
@@ -30,7 +26,6 @@  config IR_NEC_DECODER
 	tristate "Enable IR raw decoder for the NEC protocol"
 	depends on RC_CORE
 	select BITREVERSE
-	default y
 
 	---help---
 	   Enable this option if you have IR with NEC protocol, and
@@ -40,7 +35,6 @@  config IR_RC5_DECODER
 	tristate "Enable IR raw decoder for the RC-5 protocol"
 	depends on RC_CORE
 	select BITREVERSE
-	default y
 
 	---help---
 	   Enable this option if you have IR with RC-5 protocol, and
@@ -50,7 +44,6 @@  config IR_RC6_DECODER
 	tristate "Enable IR raw decoder for the RC6 protocol"
 	depends on RC_CORE
 	select BITREVERSE
-	default y
 
 	---help---
 	   Enable this option if you have an infrared remote control which
@@ -60,7 +53,6 @@  config IR_JVC_DECODER
 	tristate "Enable IR raw decoder for the JVC protocol"
 	depends on RC_CORE
 	select BITREVERSE
-	default y
 
 	---help---
 	   Enable this option if you have an infrared remote control which
@@ -69,7 +61,6 @@  config IR_JVC_DECODER
 config IR_SONY_DECODER
 	tristate "Enable IR raw decoder for the Sony protocol"
 	depends on RC_CORE
-	default y
 
 	---help---
 	   Enable this option if you have an infrared remote control which
@@ -79,7 +70,6 @@  config IR_RC5_SZ_DECODER
 	tristate "Enable IR raw decoder for the RC-5 (streamzap) protocol"
 	depends on RC_CORE
 	select BITREVERSE
-	default y
 
 	---help---
 	   Enable this option if you have IR with RC-5 (streamzap) protocol,
@@ -91,7 +81,6 @@  config IR_MCE_KBD_DECODER
 	tristate "Enable IR raw decoder for the MCE keyboard/mouse protocol"
 	depends on RC_CORE
 	select BITREVERSE
-	default y
 
 	---help---
 	   Enable this option if you have a Microsoft Remote Keyboard for
@@ -102,7 +91,6 @@  config IR_LIRC_CODEC
 	tristate "Enable IR to LIRC bridge"
 	depends on RC_CORE
 	depends on LIRC
-	default y
 
 	---help---
 	   Enable this option to pass raw IR to and from userspace via
@@ -236,5 +224,3 @@  config RC_LOOPBACK
 
 	   To compile this driver as a module, choose M here: the module will
 	   be called rc_loopback.
-
-endif #RC_CORE
diff --git a/drivers/media/rc/keymaps/Kconfig b/drivers/media/rc/keymaps/Kconfig
index 8e615fd..dbaacf1 100644
--- a/drivers/media/rc/keymaps/Kconfig
+++ b/drivers/media/rc/keymaps/Kconfig
@@ -1,7 +1,6 @@ 
 config RC_MAP
 	tristate "Compile Remote Controller keymap modules"
 	depends on RC_CORE
-	default y
 
 	---help---
 	   This option enables the compilation of lots of Remote
diff --git a/drivers/media/video/Kconfig b/drivers/media/video/Kconfig
index f574dc0..d26443d 100644
--- a/drivers/media/video/Kconfig
+++ b/drivers/media/video/Kconfig
@@ -73,7 +73,6 @@  config VIDEOBUF2_DMA_SG
 menuconfig VIDEO_CAPTURE_DRIVERS
 	bool "Video capture adapters"
 	depends on VIDEO_V4L2
-	default y
 	---help---
 	  Say Y here to enable selecting the video adapters for
 	  webcams, analog TV, and hybrid analog/digital TV.
@@ -113,8 +112,8 @@  config VIDEO_HELPER_CHIPS_AUTO
 
 config VIDEO_IR_I2C
 	tristate "I2C module for IR" if !VIDEO_HELPER_CHIPS_AUTO
-	depends on I2C && RC_CORE
-	default y
+	depends on I2C
+	select RC_CORE
 	---help---
 	  Most boards have an IR chip directly connected via GPIO. However,
 	  some video boards have the IR connected via I2C bus.
@@ -556,7 +555,6 @@  config VIDEO_VIU
 	tristate "Freescale VIU Video Driver"
 	depends on VIDEO_V4L2 && PPC_MPC512x
 	select VIDEOBUF_DMA_CONTIG
-	default y
 	---help---
 	  Support for Freescale VIU video driver. This device captures
 	  video data, or overlays video on DIU frame buffer.
@@ -986,7 +984,6 @@  source "drivers/media/video/s5p-tv/Kconfig"
 menuconfig V4L_USB_DRIVERS
 	bool "V4L USB devices"
 	depends on USB
-	default y
 
 if V4L_USB_DRIVERS && USB