V4L/DVB (5361): Dvb-pll: Fix Kconfig files and allow dvb-pll to be optional
Trent Piepho [Fri, 27 Apr 2007 15:31:28 +0000 (12:31 -0300)]
A number of drivers selected DVB_PLL when they did not need it, and some
that did need it did not select it.

The DVB_PLL option is given a name and help text, so that it will show up
in the config menu.  DVB_PLL support can be turned on if an out-of-tree
driver needs it.

The standard dvb fe customization support is added to dvb-pll.h.  Since
all modules which select DVB_PLL do so unconditionally, it is not
possible to turn dvb-pll off when an enabled module selects it, unlike
most of the other frontend/tuner drivers.  This is because the users of
dvb-pll have static references to dvb-pll symbols other than the attach
function.  If these references are removed, then dvb-pll will be
disablable as the other frontend/tuner drivers are.

Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>

drivers/media/dvb/dvb-usb/Kconfig
drivers/media/dvb/frontends/Kconfig
drivers/media/dvb/frontends/dvb-pll.h
drivers/media/dvb/pluto2/Kconfig
drivers/media/dvb/ttpci/Kconfig
drivers/media/dvb/ttusb-budget/Kconfig

index 80f67a5..cb727b8 100644 (file)
@@ -33,6 +33,7 @@ config DVB_USB_A800
 config DVB_USB_DIBUSB_MB
        tristate "DiBcom USB DVB-T devices (based on the DiB3000M-B) (see help for device list)"
        depends on DVB_USB
+       select DVB_PLL
        select DVB_DIB3000MB
        select DVB_TUNER_MT2060 if !DVB_FE_CUSTOMISE
        help
@@ -88,6 +89,7 @@ config DVB_USB_DIB0700
 config DVB_USB_UMT_010
        tristate "HanfTek UMT-010 DVB-T USB2.0 support"
        depends on DVB_USB
+       select DVB_PLL
        select DVB_DIB3000MC
        select DVB_TUNER_MT2060 if !DVB_FE_CUSTOMISE
        help
@@ -96,6 +98,7 @@ config DVB_USB_UMT_010
 config DVB_USB_CXUSB
        tristate "Conexant USB2.0 hybrid reference design support"
        depends on DVB_USB
+       select DVB_PLL
        select DVB_CX22702 if !DVB_FE_CUSTOMISE
        select DVB_LGDT330X if !DVB_FE_CUSTOMISE
        select DVB_TUNER_LGH06XF if !DVB_FE_CUSTOMISE
@@ -140,6 +143,7 @@ config DVB_USB_AU6610
 config DVB_USB_DIGITV
        tristate "Nebula Electronics uDigiTV DVB-T USB2.0 support"
        depends on DVB_USB
+       select DVB_PLL
        select DVB_NXT6000 if !DVB_FE_CUSTOMISE
        select DVB_MT352 if !DVB_FE_CUSTOMISE
        help
index a205e0b..b255cbe 100644 (file)
@@ -280,8 +280,12 @@ comment "Tuners/PLL support"
        depends on DVB_CORE
 
 config DVB_PLL
-       tristate
+       tristate "Generic I2C PLL based tuners"
        depends on DVB_CORE && I2C
+       default m if DVB_FE_CUSTOMISE
+       help
+         This module driver a number of tuners based on PLL chips with a
+         common I2C interface. Say Y when you want to support these tuners.
 
 config DVB_TDA826X
        tristate "Philips TDA826X silicon tuner"
index 681186a..a5bd928 100644 (file)
@@ -59,9 +59,20 @@ extern int dvb_pll_configure(struct dvb_pll_desc *desc, u8 *buf,
  * @param desc dvb_pll_desc to use.
  * @return Frontend pointer on success, NULL on failure
  */
+#if defined(CONFIG_DVB_PLL) || (defined(CONFIG_DVB_PLL_MODULE) && defined(MODULE))
 extern struct dvb_frontend *dvb_pll_attach(struct dvb_frontend *fe,
                                           int pll_addr,
                                           struct i2c_adapter *i2c,
                                           struct dvb_pll_desc *desc);
+#else
+static inline struct dvb_frontend *dvb_pll_attach(struct dvb_frontend *fe,
+                                          int pll_addr,
+                                          struct i2c_adapter *i2c,
+                                          struct dvb_pll_desc *desc)
+{
+       printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __FUNCTION__);
+       return NULL;
+}
+#endif
 
 #endif
index 9b84b1b..7d8e6e8 100644 (file)
@@ -2,7 +2,6 @@ config DVB_PLUTO2
        tristate "Pluto2 cards"
        depends on DVB_CORE && PCI && I2C
        select I2C_ALGOBIT
-       select DVB_PLL
        select DVB_TDA1004X
        help
          Support for PCI cards based on the Pluto2 FPGA like the Satelco
index eec7ccf..3cd319f 100644 (file)
@@ -3,7 +3,6 @@ config DVB_AV7110
        depends on DVB_CORE && PCI && I2C && VIDEO_V4L1
        select FW_LOADER if !DVB_AV7110_FIRMWARE
        select VIDEO_SAA7146_VV
-       select DVB_PLL
        select DVB_VES1820 if !DVB_FE_CUSTOMISE
        select DVB_VES1X93 if !DVB_FE_CUSTOMISE
        select DVB_STV0299 if !DVB_FE_CUSTOMISE
@@ -62,7 +61,6 @@ config DVB_BUDGET
        tristate "Budget cards"
        depends on DVB_CORE && PCI && I2C && VIDEO_V4L1
        select VIDEO_SAA7146
-       select DVB_PLL
        select DVB_STV0299 if !DVB_FE_CUSTOMISE
        select DVB_VES1X93 if !DVB_FE_CUSTOMISE
        select DVB_VES1820 if !DVB_FE_CUSTOMISE
@@ -87,7 +85,6 @@ config DVB_BUDGET_CI
        tristate "Budget cards with onboard CI connector"
        depends on DVB_CORE && PCI && I2C && VIDEO_V4L1
        select VIDEO_SAA7146
-       select DVB_PLL
        select DVB_STV0297 if !DVB_FE_CUSTOMISE
        select DVB_STV0299 if !DVB_FE_CUSTOMISE
        select DVB_TDA1004X if !DVB_FE_CUSTOMISE
@@ -130,7 +127,6 @@ config DVB_BUDGET_PATCH
        tristate "AV7110 cards with Budget Patch"
        depends on DVB_CORE && DVB_BUDGET && VIDEO_V4L1
        select DVB_AV7110
-       select DVB_PLL
        select DVB_STV0299 if !DVB_FE_CUSTOMISE
        select DVB_VES1X93 if !DVB_FE_CUSTOMISE
        select DVB_TDA8083 if !DVB_FE_CUSTOMISE
index e78ea92..f546bcc 100644 (file)
@@ -1,7 +1,6 @@
 config DVB_TTUSB_BUDGET
        tristate "Technotrend/Hauppauge Nova-USB devices"
        depends on DVB_CORE && USB && I2C
-       select DVB_PLL
        select DVB_CX22700 if !DVB_FE_CUSTOMISE
        select DVB_TDA1004X if !DVB_FE_CUSTOMISE
        select DVB_VES1820 if !DVB_FE_CUSTOMISE