[media] Add and use IS_REACHABLE macro
authorArnd Bergmann <arnd@arndb.de>
Wed, 18 Feb 2015 17:12:42 +0000 (14:12 -0300)
committerMauro Carvalho Chehab <mchehab@osg.samsung.com>
Wed, 8 Apr 2015 18:02:07 +0000 (15:02 -0300)
In the media drivers, the v4l2 core knows about all submodules
and calls into them from a common function. However this cannot
work if the modules that get called are loadable and the
core is built-in. In that case we get

drivers/built-in.o: In function `set_type':
drivers/media/v4l2-core/tuner-core.c:301: undefined reference to `tea5767_attach'
drivers/media/v4l2-core/tuner-core.c:307: undefined reference to `tea5761_attach'
drivers/media/v4l2-core/tuner-core.c:349: undefined reference to `tda9887_attach'
drivers/media/v4l2-core/tuner-core.c:405: undefined reference to `xc4000_attach'

This was working previously, until the IS_ENABLED() macro was used
to replace the construct like

 #if defined(CONFIG_DVB_CX24110) || (defined(CONFIG_DVB_CX24110_MODULE) && defined(MODULE))

with the difference that the new code no longer checks whether it is being
built as a loadable module itself.

To fix this, this new patch adds an 'IS_REACHABLE' macro, which evaluates
true in exactly the condition that was used previously. The downside
of this is that this trades an obvious link error for a more subtle
runtime failure, but it is clear that the change that introduced the
link error was unintentional and it seems better to revert it for
now. Also, a similar change was originally created by Trent Piepho
and then reverted by teh change to the IS_ENABLED macro.

Ideally Kconfig would be used to avoid the case of a broken dependency,
or the code restructured in a way to turn around the dependency, but either
way would require much larger changes here.

Fixes: 7b34be71db53 ("[media] use IS_ENABLED() macro")
See-also: c5dec9fb248e ("V4L/DVB (4751): Fix DBV_FE_CUSTOMISE for card drivers compiled into kernel")

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
116 files changed:
drivers/media/dvb-frontends/a8293.h
drivers/media/dvb-frontends/af9013.h
drivers/media/dvb-frontends/atbm8830.h
drivers/media/dvb-frontends/au8522.h
drivers/media/dvb-frontends/bcm3510.h
drivers/media/dvb-frontends/cx22700.h
drivers/media/dvb-frontends/cx22702.h
drivers/media/dvb-frontends/cx24110.h
drivers/media/dvb-frontends/cx24113.h
drivers/media/dvb-frontends/cx24116.h
drivers/media/dvb-frontends/cx24117.h
drivers/media/dvb-frontends/cx24123.h
drivers/media/dvb-frontends/cxd2820r.h
drivers/media/dvb-frontends/dib0070.h
drivers/media/dvb-frontends/dib0090.h
drivers/media/dvb-frontends/dib3000.h
drivers/media/dvb-frontends/dib3000mc.h
drivers/media/dvb-frontends/dib7000m.h
drivers/media/dvb-frontends/dib7000p.h
drivers/media/dvb-frontends/dib8000.h
drivers/media/dvb-frontends/dib9000.h
drivers/media/dvb-frontends/drxd.h
drivers/media/dvb-frontends/drxk.h
drivers/media/dvb-frontends/ds3000.h
drivers/media/dvb-frontends/dvb-pll.h
drivers/media/dvb-frontends/dvb_dummy_fe.h
drivers/media/dvb-frontends/ec100.h
drivers/media/dvb-frontends/hd29l2.h
drivers/media/dvb-frontends/isl6405.h
drivers/media/dvb-frontends/isl6421.h
drivers/media/dvb-frontends/isl6423.h
drivers/media/dvb-frontends/itd1000.h
drivers/media/dvb-frontends/ix2505v.h
drivers/media/dvb-frontends/l64781.h
drivers/media/dvb-frontends/lg2160.h
drivers/media/dvb-frontends/lgdt3305.h
drivers/media/dvb-frontends/lgdt330x.h
drivers/media/dvb-frontends/lgs8gl5.h
drivers/media/dvb-frontends/lgs8gxx.h
drivers/media/dvb-frontends/lnbh24.h
drivers/media/dvb-frontends/lnbp21.h
drivers/media/dvb-frontends/lnbp22.h
drivers/media/dvb-frontends/m88rs2000.h
drivers/media/dvb-frontends/mb86a16.h
drivers/media/dvb-frontends/mb86a20s.h
drivers/media/dvb-frontends/mt312.h
drivers/media/dvb-frontends/mt352.h
drivers/media/dvb-frontends/nxt200x.h
drivers/media/dvb-frontends/nxt6000.h
drivers/media/dvb-frontends/or51132.h
drivers/media/dvb-frontends/or51211.h
drivers/media/dvb-frontends/s5h1409.h
drivers/media/dvb-frontends/s5h1411.h
drivers/media/dvb-frontends/s5h1420.h
drivers/media/dvb-frontends/s5h1432.h
drivers/media/dvb-frontends/s921.h
drivers/media/dvb-frontends/si21xx.h
drivers/media/dvb-frontends/sp8870.h
drivers/media/dvb-frontends/sp887x.h
drivers/media/dvb-frontends/stb0899_drv.h
drivers/media/dvb-frontends/stb6000.h
drivers/media/dvb-frontends/stb6100.h
drivers/media/dvb-frontends/stv0288.h
drivers/media/dvb-frontends/stv0297.h
drivers/media/dvb-frontends/stv0299.h
drivers/media/dvb-frontends/stv0367.h
drivers/media/dvb-frontends/stv0900.h
drivers/media/dvb-frontends/stv090x.h
drivers/media/dvb-frontends/stv6110.h
drivers/media/dvb-frontends/stv6110x.h
drivers/media/dvb-frontends/tda1002x.h
drivers/media/dvb-frontends/tda10048.h
drivers/media/dvb-frontends/tda1004x.h
drivers/media/dvb-frontends/tda10071.h
drivers/media/dvb-frontends/tda10086.h
drivers/media/dvb-frontends/tda18271c2dd.h
drivers/media/dvb-frontends/tda665x.h
drivers/media/dvb-frontends/tda8083.h
drivers/media/dvb-frontends/tda8261.h
drivers/media/dvb-frontends/tda826x.h
drivers/media/dvb-frontends/ts2020.h
drivers/media/dvb-frontends/tua6100.h
drivers/media/dvb-frontends/ves1820.h
drivers/media/dvb-frontends/ves1x93.h
drivers/media/dvb-frontends/zl10036.h
drivers/media/dvb-frontends/zl10039.h
drivers/media/dvb-frontends/zl10353.h
drivers/media/pci/cx23885/altera-ci.h
drivers/media/tuners/fc0011.h
drivers/media/tuners/fc0012.h
drivers/media/tuners/fc0013.h
drivers/media/tuners/fc2580.h
drivers/media/tuners/max2165.h
drivers/media/tuners/mc44s803.h
drivers/media/tuners/mt2060.h
drivers/media/tuners/mt2063.h
drivers/media/tuners/mt20xx.h
drivers/media/tuners/mt2131.h
drivers/media/tuners/mt2266.h
drivers/media/tuners/mxl5005s.h
drivers/media/tuners/mxl5007t.h
drivers/media/tuners/qt1010.h
drivers/media/tuners/r820t.h
drivers/media/tuners/tda18218.h
drivers/media/tuners/tda18271.h
drivers/media/tuners/tda827x.h
drivers/media/tuners/tda8290.h
drivers/media/tuners/tda9887.h
drivers/media/tuners/tea5761.h
drivers/media/tuners/tea5767.h
drivers/media/tuners/tua9001.h
drivers/media/tuners/tuner-simple.h
drivers/media/tuners/tuner-xc2028.h
drivers/media/tuners/xc4000.h
drivers/media/tuners/xc5000.h
include/linux/kconfig.h

index b6ef6427cfa5ebaf422cc8a72d66f05f2581bbf8..5f0411939ffc632496750e27be745b63178dd6ef 100644 (file)
@@ -27,7 +27,7 @@ struct a8293_config {
        u8 i2c_addr;
 };
 
-#if IS_ENABLED(CONFIG_DVB_A8293)
+#if IS_REACHABLE(CONFIG_DVB_A8293)
 extern struct dvb_frontend *a8293_attach(struct dvb_frontend *fe,
        struct i2c_adapter *i2c, const struct a8293_config *cfg);
 #else
index 09273b2cd310d6fcd8cf74c5df9fc8e38a377a5f..1dcc936e1661829789e17a2fea4b65a9e6aa0d7b 100644 (file)
@@ -103,7 +103,7 @@ struct af9013_config {
        u8 gpio[4];
 };
 
-#if IS_ENABLED(CONFIG_DVB_AF9013)
+#if IS_REACHABLE(CONFIG_DVB_AF9013)
 extern struct dvb_frontend *af9013_attach(const struct af9013_config *config,
        struct i2c_adapter *i2c);
 #else
index 8e0ac98f8d0832a357caf6788220be58d4a06ae2..5446d13fdfe88e6e06e3ae17afbd7208bd806d5f 100644 (file)
@@ -61,7 +61,7 @@ struct atbm8830_config {
        u8 agc_hold_loop;
 };
 
-#if IS_ENABLED(CONFIG_DVB_ATBM8830)
+#if IS_REACHABLE(CONFIG_DVB_ATBM8830)
 extern struct dvb_frontend *atbm8830_attach(const struct atbm8830_config *config,
                struct i2c_adapter *i2c);
 #else
index 6122519588551c457568b4f7054de6a85ba5e84e..dde61582c158399153c8d4ccb15d9575d068c21b 100644 (file)
@@ -61,7 +61,7 @@ struct au8522_config {
        enum au8522_if_freq qam_if;
 };
 
-#if IS_ENABLED(CONFIG_DVB_AU8522_DTV)
+#if IS_REACHABLE(CONFIG_DVB_AU8522_DTV)
 extern struct dvb_frontend *au8522_attach(const struct au8522_config *config,
                                          struct i2c_adapter *i2c);
 #else
index 5bd56b1623bfdbba8a8cb1b85ce9f0d2794871d5..ff66492fb9408f5324c749d64638df67929d1077 100644 (file)
@@ -34,7 +34,7 @@ struct bcm3510_config
        int (*request_firmware)(struct dvb_frontend* fe, const struct firmware **fw, char* name);
 };
 
-#if IS_ENABLED(CONFIG_DVB_BCM3510)
+#if IS_REACHABLE(CONFIG_DVB_BCM3510)
 extern struct dvb_frontend* bcm3510_attach(const struct bcm3510_config* config,
                                           struct i2c_adapter* i2c);
 #else
index 382a7b1f3618aca5770e15225ab7cbb95ee1a488..e0a764868e6f9d2f44af8bed2d7be039ac8d07ba 100644 (file)
@@ -31,7 +31,7 @@ struct cx22700_config
        u8 demod_address;
 };
 
-#if IS_ENABLED(CONFIG_DVB_CX22700)
+#if IS_REACHABLE(CONFIG_DVB_CX22700)
 extern struct dvb_frontend* cx22700_attach(const struct cx22700_config* config,
                                           struct i2c_adapter* i2c);
 #else
index 0b1a6c2f9d5fa6a316656626034dc60242e79628..68b69a7660d2a0bae09fa03b6588f1ef54ba1d81 100644 (file)
@@ -41,7 +41,7 @@ struct cx22702_config {
        u8 output_mode;
 };
 
-#if IS_ENABLED(CONFIG_DVB_CX22702)
+#if IS_REACHABLE(CONFIG_DVB_CX22702)
 extern struct dvb_frontend *cx22702_attach(
        const struct cx22702_config *config,
        struct i2c_adapter *i2c);
index 527aff1f27233557f88b7922e7f0f18edfc32f92..d5453ed20b281622039ae6d71b2771c3d9ae3638 100644 (file)
@@ -46,7 +46,7 @@ static inline int cx24110_pll_write(struct dvb_frontend *fe, u32 val)
        return 0;
 }
 
-#if IS_ENABLED(CONFIG_DVB_CX24110)
+#if IS_REACHABLE(CONFIG_DVB_CX24110)
 extern struct dvb_frontend* cx24110_attach(const struct cx24110_config* config,
                                           struct i2c_adapter* i2c);
 #else
index 782711ba1a325805f01fed11b379eb81e2231aa4..962919b9b6e62455829578629869d7d120db3179 100644 (file)
@@ -32,7 +32,7 @@ struct cx24113_config {
        u32 xtal_khz;
 };
 
-#if IS_ENABLED(CONFIG_DVB_TUNER_CX24113)
+#if IS_REACHABLE(CONFIG_DVB_TUNER_CX24113)
 extern struct dvb_frontend *cx24113_attach(struct dvb_frontend *,
        const struct cx24113_config *config, struct i2c_adapter *i2c);
 
index 2ec84fae3f9fa69bc1e728d61a9ce0b66e822913..f6dbabc1d62b7e56cc00696ded605ca1500cf2f7 100644 (file)
@@ -41,7 +41,7 @@ struct cx24116_config {
        u16 i2c_wr_max;
 };
 
-#if IS_ENABLED(CONFIG_DVB_CX24116)
+#if IS_REACHABLE(CONFIG_DVB_CX24116)
 extern struct dvb_frontend *cx24116_attach(
        const struct cx24116_config *config,
        struct i2c_adapter *i2c);
index 4e59e9574fa72258e91e9e5c3c49326f82d3924c..1648ab43216879f3482f7ebaa7302819b9a1c6d3 100644 (file)
@@ -30,7 +30,7 @@ struct cx24117_config {
        u8 demod_address;
 };
 
-#if IS_ENABLED(CONFIG_DVB_CX24117)
+#if IS_REACHABLE(CONFIG_DVB_CX24117)
 extern struct dvb_frontend *cx24117_attach(
        const struct cx24117_config *config,
        struct i2c_adapter *i2c);
index 102e70d17c43d8f30f1d03ec37b6851016e2ccfb..758aee5a072f727c8a149f5d0f9767459243b77b 100644 (file)
@@ -39,7 +39,7 @@ struct cx24123_config {
        void (*agc_callback) (struct dvb_frontend *);
 };
 
-#if IS_ENABLED(CONFIG_DVB_CX24123)
+#if IS_REACHABLE(CONFIG_DVB_CX24123)
 extern struct dvb_frontend *cx24123_attach(const struct cx24123_config *config,
                                           struct i2c_adapter *i2c);
 extern struct i2c_adapter *cx24123_get_tuner_i2c_adapter(struct dvb_frontend *);
index 6095dbcf785091ddc8009134b04e905483e19ec1..56d42760263d86143805fdf27af822f01ec2ba44 100644 (file)
@@ -72,7 +72,7 @@ struct cxd2820r_config {
 };
 
 
-#if IS_ENABLED(CONFIG_DVB_CXD2820R)
+#if IS_REACHABLE(CONFIG_DVB_CXD2820R)
 extern struct dvb_frontend *cxd2820r_attach(
        const struct cxd2820r_config *config,
        struct i2c_adapter *i2c,
index 0c6befcc9143ad9a48ecd26792c8f99c1cd7b048..6c0b6672b1d9e50a09b2c09106c507ce70ca3a68 100644 (file)
@@ -48,7 +48,7 @@ struct dib0070_config {
        u8 vga_filter;
 };
 
-#if IS_ENABLED(CONFIG_DVB_TUNER_DIB0070)
+#if IS_REACHABLE(CONFIG_DVB_TUNER_DIB0070)
 extern struct dvb_frontend *dib0070_attach(struct dvb_frontend *fe, struct i2c_adapter *i2c, struct dib0070_config *cfg);
 extern u16 dib0070_wbd_offset(struct dvb_frontend *);
 extern void dib0070_ctrl_agc_filter(struct dvb_frontend *, u8 open);
index 6a090954fa10c6da7d2c0f87f8dfdb3840e184d8..ad74bc823f08c469fd517dc9bb7f857be88bf589 100644 (file)
@@ -75,7 +75,7 @@ struct dib0090_config {
        u8 force_crystal_mode;
 };
 
-#if IS_ENABLED(CONFIG_DVB_TUNER_DIB0090)
+#if IS_REACHABLE(CONFIG_DVB_TUNER_DIB0090)
 extern struct dvb_frontend *dib0090_register(struct dvb_frontend *fe, struct i2c_adapter *i2c, const struct dib0090_config *config);
 extern struct dvb_frontend *dib0090_fw_register(struct dvb_frontend *fe, struct i2c_adapter *i2c, const struct dib0090_config *config);
 extern void dib0090_dcc_freq(struct dvb_frontend *fe, u8 fast);
index 9b6c3bbc983af2c6ce26cb9970db9ec6df6d8002..6ae9899b5b450bec39a56601134accd686dbd990 100644 (file)
@@ -41,7 +41,7 @@ struct dib_fe_xfer_ops
        int (*tuner_pass_ctrl)(struct dvb_frontend *fe, int onoff, u8 pll_ctrl);
 };
 
-#if IS_ENABLED(CONFIG_DVB_DIB3000MB)
+#if IS_REACHABLE(CONFIG_DVB_DIB3000MB)
 extern struct dvb_frontend* dib3000mb_attach(const struct dib3000_config* config,
                                             struct i2c_adapter* i2c, struct dib_fe_xfer_ops *xfer_ops);
 #else
index 129d1425516a175943708129938c214de7a7970c..74816f79361180c0191c4cdd69239121371543f5 100644 (file)
@@ -41,7 +41,7 @@ struct dib3000mc_config {
 #define DEFAULT_DIB3000MC_I2C_ADDRESS 16
 #define DEFAULT_DIB3000P_I2C_ADDRESS  24
 
-#if IS_ENABLED(CONFIG_DVB_DIB3000MC)
+#if IS_REACHABLE(CONFIG_DVB_DIB3000MC)
 extern struct dvb_frontend *dib3000mc_attach(struct i2c_adapter *i2c_adap,
                                             u8 i2c_addr,
                                             struct dib3000mc_config *cfg);
index b585413f9a29834c74ef0a9e6f63e7f1e6d7022b..6468c278cc4d371da8828bdf0924393bba0a4251 100644 (file)
@@ -40,7 +40,7 @@ struct dib7000m_config {
 
 #define DEFAULT_DIB7000M_I2C_ADDRESS 18
 
-#if IS_ENABLED(CONFIG_DVB_DIB7000M)
+#if IS_REACHABLE(CONFIG_DVB_DIB7000M)
 extern struct dvb_frontend *dib7000m_attach(struct i2c_adapter *i2c_adap,
                                            u8 i2c_addr,
                                            struct dib7000m_config *cfg);
index 1fea0e97265446fbd38b811b95d1601c840f9d82..baa278928cf3405ffb390818666423dc9bdd50d9 100644 (file)
@@ -66,7 +66,7 @@ struct dib7000p_ops {
        struct dvb_frontend *(*init)(struct i2c_adapter *i2c_adap, u8 i2c_addr, struct dib7000p_config *cfg);
 };
 
-#if IS_ENABLED(CONFIG_DVB_DIB7000P)
+#if IS_REACHABLE(CONFIG_DVB_DIB7000P)
 void *dib7000p_attach(struct dib7000p_ops *ops);
 #else
 static inline void *dib7000p_attach(struct dib7000p_ops *ops)
index 84cc10383dcd226efd764a834fc8ac083f64c853..780c37bdcb7295e6c97730e45a61970cb17b2ac8 100644 (file)
@@ -63,7 +63,7 @@ struct dib8000_ops {
        struct dvb_frontend *(*init)(struct i2c_adapter *i2c_adap, u8 i2c_addr, struct dib8000_config *cfg);
 };
 
-#if IS_ENABLED(CONFIG_DVB_DIB8000)
+#if IS_REACHABLE(CONFIG_DVB_DIB8000)
 void *dib8000_attach(struct dib8000_ops *ops);
 #else
 static inline int dib8000_attach(struct dib8000_ops *ops)
index f3639f045ff0decc32b3ebdeda1f35499da53b93..b10a70aa7c9fdfcfaed67b367bcd563c06af459d 100644 (file)
@@ -27,7 +27,7 @@ struct dib9000_config {
 
 #define DEFAULT_DIB9000_I2C_ADDRESS 18
 
-#if IS_ENABLED(CONFIG_DVB_DIB9000)
+#if IS_REACHABLE(CONFIG_DVB_DIB9000)
 extern struct dvb_frontend *dib9000_attach(struct i2c_adapter *i2c_adap, u8 i2c_addr, const struct dib9000_config *cfg);
 extern int dib9000_i2c_enumeration(struct i2c_adapter *host, int no_of_demods, u8 default_addr, u8 first_addr);
 extern struct i2c_adapter *dib9000_get_tuner_interface(struct dvb_frontend *fe);
index d998e4d5a7fc7756e13c726ff847a6266273c45b..a47c22d6667eb88ba41bdaa68bbbafe642ef696f 100644 (file)
@@ -52,7 +52,7 @@ struct drxd_config {
         s16(*osc_deviation) (void *priv, s16 dev, int flag);
 };
 
-#if IS_ENABLED(CONFIG_DVB_DRXD)
+#if IS_REACHABLE(CONFIG_DVB_DRXD)
 extern
 struct dvb_frontend *drxd_attach(const struct drxd_config *config,
                                 void *priv, struct i2c_adapter *i2c,
index f6cb3466032778882cfc30925866c4da86910490..8f0b9eec528f6ff0290dc462b8ed780b14991eaa 100644 (file)
@@ -51,7 +51,7 @@ struct drxk_config {
        int              qam_demod_parameter_count;
 };
 
-#if IS_ENABLED(CONFIG_DVB_DRXK)
+#if IS_REACHABLE(CONFIG_DVB_DRXK)
 extern struct dvb_frontend *drxk_attach(const struct drxk_config *config,
                                        struct i2c_adapter *i2c);
 #else
index f9c21fb7af13d9570ebbd8058a452a1aa4bdb97f..153169da90179dbadc0b71978834b38415b67543 100644 (file)
@@ -35,7 +35,7 @@ struct ds3000_config {
        void (*set_lock_led)(struct dvb_frontend *fe, int offon);
 };
 
-#if IS_ENABLED(CONFIG_DVB_DS3000)
+#if IS_REACHABLE(CONFIG_DVB_DS3000)
 extern struct dvb_frontend *ds3000_attach(const struct ds3000_config *config,
                                        struct i2c_adapter *i2c);
 #else
index f4b5a0601c3aa79dd443a2b0b191986f1ef05723..bf9602a88b6c5a0bbee8e38aa0db7d90bb0c6e8e 100644 (file)
@@ -38,7 +38,7 @@
  * @param pll_desc_id dvb_pll_desc to use.
  * @return Frontend pointer on success, NULL on failure
  */
-#if IS_ENABLED(CONFIG_DVB_PLL)
+#if IS_REACHABLE(CONFIG_DVB_PLL)
 extern struct dvb_frontend *dvb_pll_attach(struct dvb_frontend *fe,
                                           int pll_addr,
                                           struct i2c_adapter *i2c,
index 0cbf96105631383eadb553c0d930b59e31fe833d..15e4ceab869ab32d572ce96a387fd1e051b235e6 100644 (file)
@@ -26,7 +26,7 @@
 #include <linux/dvb/frontend.h>
 #include "dvb_frontend.h"
 
-#if IS_ENABLED(CONFIG_DVB_DUMMY_FE)
+#if IS_REACHABLE(CONFIG_DVB_DUMMY_FE)
 extern struct dvb_frontend* dvb_dummy_fe_ofdm_attach(void);
 extern struct dvb_frontend* dvb_dummy_fe_qpsk_attach(void);
 extern struct dvb_frontend* dvb_dummy_fe_qam_attach(void);
index 37558403068d189588d6ed76bc3694bced381261..9544bab5cd1d14d6c14100d2370131ce13f84652 100644 (file)
@@ -31,7 +31,7 @@ struct ec100_config {
 };
 
 
-#if IS_ENABLED(CONFIG_DVB_EC100)
+#if IS_REACHABLE(CONFIG_DVB_EC100)
 extern struct dvb_frontend *ec100_attach(const struct ec100_config *config,
        struct i2c_adapter *i2c);
 #else
index 05cd13028a91ab68c19bc74fb7915e3af772a2b1..48e9ab74c8831580f15446579c346763a66bddec 100644 (file)
@@ -51,7 +51,7 @@ struct hd29l2_config {
 };
 
 
-#if IS_ENABLED(CONFIG_DVB_HD29L2)
+#if IS_REACHABLE(CONFIG_DVB_HD29L2)
 extern struct dvb_frontend *hd29l2_attach(const struct hd29l2_config *config,
        struct i2c_adapter *i2c);
 #else
index 8abb70c26fd9428a0b6d4eed68426b8e7d237aad..3c148b830bd199f6e72b3bb2bee1554568689488 100644 (file)
@@ -55,7 +55,7 @@
 #define ISL6405_ENT2   0x20
 #define ISL6405_ISEL2  0x40
 
-#if IS_ENABLED(CONFIG_DVB_ISL6405)
+#if IS_REACHABLE(CONFIG_DVB_ISL6405)
 /* override_set and override_clear control which system register bits (above)
  * to always set & clear
  */
index 630e7f8a150e64f650cc4c492f8396e577810565..3273597833fda0c9d683ef3f0df65978363de9d2 100644 (file)
@@ -39,7 +39,7 @@
 #define ISL6421_ISEL1  0x20
 #define ISL6421_DCL    0x40
 
-#if IS_ENABLED(CONFIG_DVB_ISL6421)
+#if IS_REACHABLE(CONFIG_DVB_ISL6421)
 /* override_set and override_clear control which system register bits (above) to always set & clear */
 extern struct dvb_frontend *isl6421_attach(struct dvb_frontend *fe, struct i2c_adapter *i2c, u8 i2c_addr,
                          u8 override_set, u8 override_clear, bool override_tone);
index 80dfd9cc4f41e31b47fc4df73e378a875dc1b12f..a64df0ee256babb921e7ea3178707b794d6bf6e2 100644 (file)
@@ -42,7 +42,7 @@ struct isl6423_config {
        u8 mod_extern;
 };
 
-#if IS_ENABLED(CONFIG_DVB_ISL6423)
+#if IS_REACHABLE(CONFIG_DVB_ISL6423)
 
 
 extern struct dvb_frontend *isl6423_attach(struct dvb_frontend *fe,
index edae0902f4fd3e5f307da0e10d1005964d3ed30c..a691bb6f26de7d89f6b582b77120231a4efc1412 100644 (file)
@@ -29,7 +29,7 @@ struct itd1000_config {
        u8 i2c_address;
 };
 
-#if IS_ENABLED(CONFIG_DVB_TUNER_ITD1000)
+#if IS_REACHABLE(CONFIG_DVB_TUNER_ITD1000)
 extern struct dvb_frontend *itd1000_attach(struct dvb_frontend *fe, struct i2c_adapter *i2c, struct itd1000_config *cfg);
 #else
 static inline struct dvb_frontend *itd1000_attach(struct dvb_frontend *fe, struct i2c_adapter *i2c, struct itd1000_config *cfg)
index 1a735a75aa984cb05ff2c269d34090dd7e5057fa..af107a2dd3578aa61c9591e1778d3e516c028311 100644 (file)
@@ -49,7 +49,7 @@ struct ix2505v_config {
 
 };
 
-#if IS_ENABLED(CONFIG_DVB_IX2505V)
+#if IS_REACHABLE(CONFIG_DVB_IX2505V)
 extern struct dvb_frontend *ix2505v_attach(struct dvb_frontend *fe,
        const struct ix2505v_config *config, struct i2c_adapter *i2c);
 #else
index 6813b08a774d8ff472466b709776410fa47789c3..8697e2c2ba36415b7657ceef018ca736af7a885a 100644 (file)
@@ -31,7 +31,7 @@ struct l64781_config
        u8 demod_address;
 };
 
-#if IS_ENABLED(CONFIG_DVB_L64781)
+#if IS_REACHABLE(CONFIG_DVB_L64781)
 extern struct dvb_frontend* l64781_attach(const struct l64781_config* config,
                                          struct i2c_adapter* i2c);
 #else
index 194a07a78dc11a72f8f95de6c98ed7b07ceb618f..d20bd909de394b0585c6b77a4996e210d73728f4 100644 (file)
@@ -67,7 +67,7 @@ struct lg2160_config {
        enum lg_chip_type lg_chip;
 };
 
-#if IS_ENABLED(CONFIG_DVB_LG2160)
+#if IS_REACHABLE(CONFIG_DVB_LG2160)
 extern
 struct dvb_frontend *lg2160_attach(const struct lg2160_config *config,
                                     struct i2c_adapter *i2c_adap);
index 9c03e530e01b41e8c611d93f652e60a5db28392c..f91a1b49ce2f93d06bf7cfd75cd8563b1bcb3884 100644 (file)
@@ -80,7 +80,7 @@ struct lgdt3305_config {
        enum lgdt_demod_chip_type demod_chip;
 };
 
-#if IS_ENABLED(CONFIG_DVB_LGDT3305)
+#if IS_REACHABLE(CONFIG_DVB_LGDT3305)
 extern
 struct dvb_frontend *lgdt3305_attach(const struct lgdt3305_config *config,
                                     struct i2c_adapter *i2c_adap);
index 8bb332219fc496af77ec129e8fa4ff183ce8f5f4..c73eeb45e3305cf3ea043df4b119d8183549cc03 100644 (file)
@@ -52,7 +52,7 @@ struct lgdt330x_config
        int clock_polarity_flip;
 };
 
-#if IS_ENABLED(CONFIG_DVB_LGDT330X)
+#if IS_REACHABLE(CONFIG_DVB_LGDT330X)
 extern struct dvb_frontend* lgdt330x_attach(const struct lgdt330x_config* config,
                                            struct i2c_adapter* i2c);
 #else
index c2da5961472782982b095b5fb632af3b2b82cf62..a5b3faf121f0f0d7e3a46b29c80f5a7def2caa96 100644 (file)
@@ -31,7 +31,7 @@ struct lgs8gl5_config {
        u8 demod_address;
 };
 
-#if IS_ENABLED(CONFIG_DVB_LGS8GL5)
+#if IS_REACHABLE(CONFIG_DVB_LGS8GL5)
 extern struct dvb_frontend *lgs8gl5_attach(
        const struct lgs8gl5_config *config, struct i2c_adapter *i2c);
 #else
index dadb78bf61a9782bc6f322dd20b7985402e07826..368c9928ef7fd6cc23d54160683b7f795d52b939 100644 (file)
@@ -80,7 +80,7 @@ struct lgs8gxx_config {
        u8 tuner_address;
 };
 
-#if IS_ENABLED(CONFIG_DVB_LGS8GXX)
+#if IS_REACHABLE(CONFIG_DVB_LGS8GXX)
 extern struct dvb_frontend *lgs8gxx_attach(const struct lgs8gxx_config *config,
                                           struct i2c_adapter *i2c);
 #else
index b327a4f31d16638e1a3d73b65fd9a92ecfeb25ee..a088b8ec1e535e0578397200cd504a92d1149c4a 100644 (file)
@@ -37,7 +37,7 @@
 
 #include <linux/dvb/frontend.h>
 
-#if IS_ENABLED(CONFIG_DVB_LNBP21)
+#if IS_REACHABLE(CONFIG_DVB_LNBP21)
 /* override_set and override_clear control which
    system register bits (above) to always set & clear */
 extern struct dvb_frontend *lnbh24_attach(struct dvb_frontend *fe,
index dbcbcc2f20a30ec9421c3a4707e68c28befd5987..a9b530de62a60582a6574ab3325baac003d229ed 100644 (file)
@@ -57,7 +57,7 @@
 
 #include <linux/dvb/frontend.h>
 
-#if IS_ENABLED(CONFIG_DVB_LNBP21)
+#if IS_REACHABLE(CONFIG_DVB_LNBP21)
 /* override_set and override_clear control which
  system register bits (above) to always set & clear */
 extern struct dvb_frontend *lnbp21_attach(struct dvb_frontend *fe,
index 63861b311dd887826672fda54cda66cd5e9cea29..628148385182af8a8ab2eebeb3d6f726b0e6166a 100644 (file)
@@ -39,7 +39,7 @@
 
 #include <linux/dvb/frontend.h>
 
-#if IS_ENABLED(CONFIG_DVB_LNBP22)
+#if IS_REACHABLE(CONFIG_DVB_LNBP22)
 /*
  * override_set and override_clear control which system register bits (above)
  * to always set & clear
index 0a50ea90736bfa62c22d07fc386a6e0c9270b82e..de7430178e9e142c2c75be0e9606087f836ab0f9 100644 (file)
@@ -41,7 +41,7 @@ enum {
        CALL_IS_READ,
 };
 
-#if IS_ENABLED(CONFIG_DVB_M88RS2000)
+#if IS_REACHABLE(CONFIG_DVB_M88RS2000)
 extern struct dvb_frontend *m88rs2000_attach(
        const struct m88rs2000_config *config, struct i2c_adapter *i2c);
 #else
index 277ce061acf9e2b57b1945bf24bdd9c11777d465..e486dc0d8e6077f8eb2256cb9cbc442a6203b382 100644 (file)
@@ -33,7 +33,7 @@ struct mb86a16_config {
 
 
 
-#if IS_ENABLED(CONFIG_DVB_MB86A16)
+#if IS_REACHABLE(CONFIG_DVB_MB86A16)
 
 extern struct dvb_frontend *mb86a16_attach(const struct mb86a16_config *config,
                                           struct i2c_adapter *i2c_adap);
index cbeb941fba7c16c11d7b4c46f82f7be23492aa65..f749c8ac5f398c39b2ac09feff026294b8fdd7b5 100644 (file)
@@ -34,7 +34,7 @@ struct mb86a20s_config {
        bool    is_serial;
 };
 
-#if IS_ENABLED(CONFIG_DVB_MB86A20S)
+#if IS_REACHABLE(CONFIG_DVB_MB86A20S)
 extern struct dvb_frontend *mb86a20s_attach(const struct mb86a20s_config *config,
                                           struct i2c_adapter *i2c);
 extern struct i2c_adapter *mb86a20s_get_tuner_i2c_adapter(struct dvb_frontend *);
index 5706621ad79d9784cc905fd9c2758ff573ffb77d..386939a90555e438d015bbdd626e038f2e7047f5 100644 (file)
@@ -36,7 +36,7 @@ struct mt312_config {
        unsigned int voltage_inverted:1;
 };
 
-#if IS_ENABLED(CONFIG_DVB_MT312)
+#if IS_REACHABLE(CONFIG_DVB_MT312)
 struct dvb_frontend *mt312_attach(const struct mt312_config *config,
                                        struct i2c_adapter *i2c);
 #else
index 451d904e1500264339f7ab8d10172a39623fa28e..5873263bd1af16fdaf5c6b9fd9638cc870ba9b82 100644 (file)
@@ -51,7 +51,7 @@ struct mt352_config
        int (*demod_init)(struct dvb_frontend* fe);
 };
 
-#if IS_ENABLED(CONFIG_DVB_MT352)
+#if IS_REACHABLE(CONFIG_DVB_MT352)
 extern struct dvb_frontend* mt352_attach(const struct mt352_config* config,
                                         struct i2c_adapter* i2c);
 #else
index e38d01fb6c2b076441a18454b18446ddccfa11ad..825b928ef54235958e58020f9a4afc0cc4c6f613 100644 (file)
@@ -42,7 +42,7 @@ struct nxt200x_config
        int (*set_ts_params)(struct dvb_frontend* fe, int is_punctured);
 };
 
-#if IS_ENABLED(CONFIG_DVB_NXT200X)
+#if IS_REACHABLE(CONFIG_DVB_NXT200X)
 extern struct dvb_frontend* nxt200x_attach(const struct nxt200x_config* config,
                                           struct i2c_adapter* i2c);
 #else
index b5867c2ae681554759ff4976fd31e316a6e56cf2..a94cefcc6dfd830c3017c7a3d9b026edd9312ba3 100644 (file)
@@ -33,7 +33,7 @@ struct nxt6000_config
        u8 clock_inversion:1;
 };
 
-#if IS_ENABLED(CONFIG_DVB_NXT6000)
+#if IS_REACHABLE(CONFIG_DVB_NXT6000)
 extern struct dvb_frontend* nxt6000_attach(const struct nxt6000_config* config,
                                           struct i2c_adapter* i2c);
 #else
index cdb5be3c65d630ab9eee3d93b4969c37998ffea8..9acf8dc87413283be5a55a00f6dc1446d72bf73f 100644 (file)
@@ -34,7 +34,7 @@ struct or51132_config
        int (*set_ts_params)(struct dvb_frontend* fe, int is_punctured);
 };
 
-#if IS_ENABLED(CONFIG_DVB_OR51132)
+#if IS_REACHABLE(CONFIG_DVB_OR51132)
 extern struct dvb_frontend* or51132_attach(const struct or51132_config* config,
                                           struct i2c_adapter* i2c);
 #else
index 9a8ae936b62dee36d0074911b565f2c396041fba..cc6adab63249bbb9041a32ac2fd21d1fe21817a7 100644 (file)
@@ -37,7 +37,7 @@ struct or51211_config
        void (*sleep)(struct dvb_frontend * fe);
 };
 
-#if IS_ENABLED(CONFIG_DVB_OR51211)
+#if IS_REACHABLE(CONFIG_DVB_OR51211)
 extern struct dvb_frontend* or51211_attach(const struct or51211_config* config,
                                           struct i2c_adapter* i2c);
 #else
index 9e143f5c810798166abec1156a1b1297931b7e7e..f58b9ca5557ad7c7cf36a4e26ca33b1f8af81cfe 100644 (file)
@@ -67,7 +67,7 @@ struct s5h1409_config {
        u8 hvr1600_opt;
 };
 
-#if IS_ENABLED(CONFIG_DVB_S5H1409)
+#if IS_REACHABLE(CONFIG_DVB_S5H1409)
 extern struct dvb_frontend *s5h1409_attach(const struct s5h1409_config *config,
                                           struct i2c_adapter *i2c);
 #else
index 1d7deb6156743c39028822ed14a6f8bc84870c53..f3a87f7ec3601579386835c360322059670eac6f 100644 (file)
@@ -69,7 +69,7 @@ struct s5h1411_config {
        u8 status_mode;
 };
 
-#if IS_ENABLED(CONFIG_DVB_S5H1411)
+#if IS_REACHABLE(CONFIG_DVB_S5H1411)
 extern struct dvb_frontend *s5h1411_attach(const struct s5h1411_config *config,
                                           struct i2c_adapter *i2c);
 #else
index 210049b5cf307ccc8a47f72e5f948ee52277cdfe..142d93e7d02bf27f257bfcea7b5497caba6050b9 100644 (file)
@@ -40,7 +40,7 @@ struct s5h1420_config
        u8 serial_mpeg:1;
 };
 
-#if IS_ENABLED(CONFIG_DVB_S5H1420)
+#if IS_REACHABLE(CONFIG_DVB_S5H1420)
 extern struct dvb_frontend *s5h1420_attach(const struct s5h1420_config *config,
             struct i2c_adapter *i2c);
 extern struct i2c_adapter *s5h1420_get_tuner_i2c_adapter(struct dvb_frontend *fe);
index 70917dd2533a52659fdf7fd94969731d11d1f2d6..f490c5ee58015d0015a31ecf055f2053c079b41d 100644 (file)
@@ -75,7 +75,7 @@ struct s5h1432_config {
        u8 status_mode;
 };
 
-#if IS_ENABLED(CONFIG_DVB_S5H1432)
+#if IS_REACHABLE(CONFIG_DVB_S5H1432)
 extern struct dvb_frontend *s5h1432_attach(const struct s5h1432_config *config,
                                           struct i2c_adapter *i2c);
 #else
index 9b20c9e0eb88d7f18f6df0fda01f673ded6108f4..7d3999a4e9743b311cbd3377a310005dfc8170bb 100644 (file)
@@ -25,7 +25,7 @@ struct s921_config {
        u8 demod_address;
 };
 
-#if IS_ENABLED(CONFIG_DVB_S921)
+#if IS_REACHABLE(CONFIG_DVB_S921)
 extern struct dvb_frontend *s921_attach(const struct s921_config *config,
                                           struct i2c_adapter *i2c);
 extern struct i2c_adapter *s921_get_tuner_i2c_adapter(struct dvb_frontend *);
index 1509fed44a3aa8e31e76480c93942df7b98280db..ef5f351ca68ea17c74b12a9616782e18ea172543 100644 (file)
@@ -13,7 +13,7 @@ struct si21xx_config {
        int min_delay_ms;
 };
 
-#if IS_ENABLED(CONFIG_DVB_SI21XX)
+#if IS_REACHABLE(CONFIG_DVB_SI21XX)
 extern struct dvb_frontend *si21xx_attach(const struct si21xx_config *config,
                                                struct i2c_adapter *i2c);
 #else
index 065ec67d4e30d72a6be42a81f63b1689f673dba5..f507b9fd707bbe630f5edf0fc8bf69262aa41728 100644 (file)
@@ -35,7 +35,7 @@ struct sp8870_config
        int (*request_firmware)(struct dvb_frontend* fe, const struct firmware **fw, char* name);
 };
 
-#if IS_ENABLED(CONFIG_DVB_SP8870)
+#if IS_REACHABLE(CONFIG_DVB_SP8870)
 extern struct dvb_frontend* sp8870_attach(const struct sp8870_config* config,
                                          struct i2c_adapter* i2c);
 #else
index 2cdc4e8bc9cd6e2eae28be98c84038c673b8ba3a..412f011e6dfda83464c3fe7be9acf1a5df9ce203 100644 (file)
@@ -17,7 +17,7 @@ struct sp887x_config
        int (*request_firmware)(struct dvb_frontend* fe, const struct firmware **fw, char* name);
 };
 
-#if IS_ENABLED(CONFIG_DVB_SP887X)
+#if IS_REACHABLE(CONFIG_DVB_SP887X)
 extern struct dvb_frontend* sp887x_attach(const struct sp887x_config* config,
                                          struct i2c_adapter* i2c);
 #else
index 139264d19263539bf68eef8c4a919eb3756b7b19..0a72131a57dbf3dfae36b285271b1cd6da9bae21 100644 (file)
@@ -141,7 +141,7 @@ struct stb0899_config {
        int (*tuner_set_rfsiggain)(struct dvb_frontend *fe, u32 rf_gain);
 };
 
-#if IS_ENABLED(CONFIG_DVB_STB0899)
+#if IS_REACHABLE(CONFIG_DVB_STB0899)
 
 extern struct dvb_frontend *stb0899_attach(struct stb0899_config *config,
                                           struct i2c_adapter *i2c);
index a768189bfaad7d8950c350a1cebd1de826950caa..da581b652cb93866b82dd881709d3e36f7388c28 100644 (file)
@@ -35,7 +35,7 @@
  * @param i2c i2c adapter to use.
  * @return FE pointer on success, NULL on failure.
  */
-#if IS_ENABLED(CONFIG_DVB_STB6000)
+#if IS_REACHABLE(CONFIG_DVB_STB6000)
 extern struct dvb_frontend *stb6000_attach(struct dvb_frontend *fe, int addr,
                                           struct i2c_adapter *i2c);
 #else
index 3a1e40f3b8be2d9ee519f59e33996955dfcf3ac3..218c8188865d160577d820c73b21f87fa27c4876 100644 (file)
@@ -94,7 +94,7 @@ struct stb6100_state {
        u32 reference;
 };
 
-#if IS_ENABLED(CONFIG_DVB_STB6100)
+#if IS_REACHABLE(CONFIG_DVB_STB6100)
 
 extern struct dvb_frontend *stb6100_attach(struct dvb_frontend *fe,
                                           const struct stb6100_config *config,
index a0bd9310715417b49f28386c525c2d878ad42962..b58603c00c80a24b6853588d951b38c355ee5222 100644 (file)
@@ -43,7 +43,7 @@ struct stv0288_config {
        int (*set_ts_params)(struct dvb_frontend *fe, int is_punctured);
 };
 
-#if IS_ENABLED(CONFIG_DVB_STV0288)
+#if IS_REACHABLE(CONFIG_DVB_STV0288)
 extern struct dvb_frontend *stv0288_attach(const struct stv0288_config *config,
                                           struct i2c_adapter *i2c);
 #else
index c8ff3639ce000275ae57983a328291b79212f620..b30632a6733307872913361eb41ca542907689dc 100644 (file)
@@ -42,7 +42,7 @@ struct stv0297_config
        u8 stop_during_read:1;
 };
 
-#if IS_ENABLED(CONFIG_DVB_STV0297)
+#if IS_REACHABLE(CONFIG_DVB_STV0297)
 extern struct dvb_frontend* stv0297_attach(const struct stv0297_config* config,
                                           struct i2c_adapter* i2c);
 #else
index 06f70fc8327b39115c7286934dc445309a776189..0aca30a8ec257c3342b9c954ef9e91278abe7a1a 100644 (file)
@@ -95,7 +95,7 @@ struct stv0299_config
        int (*set_ts_params)(struct dvb_frontend *fe, int is_punctured);
 };
 
-#if IS_ENABLED(CONFIG_DVB_STV0299)
+#if IS_REACHABLE(CONFIG_DVB_STV0299)
 extern struct dvb_frontend *stv0299_attach(const struct stv0299_config *config,
                                           struct i2c_adapter *i2c);
 #else
index ea80b341f094cf8a3c4417f2d99615c9e5f60bfc..92b3e85fb818c0e22523265fe92dc08486e0eded 100644 (file)
@@ -39,7 +39,7 @@ struct stv0367_config {
        int clk_pol;
 };
 
-#if IS_ENABLED(CONFIG_DVB_STV0367)
+#if IS_REACHABLE(CONFIG_DVB_STV0367)
 extern struct
 dvb_frontend *stv0367ter_attach(const struct stv0367_config *config,
                                        struct i2c_adapter *i2c);
index e2a6dc69ecb46a59071b60a2355e6762e0f4408e..c90bf00ea9ce14c0d32c55a29cb23061bb7df6c6 100644 (file)
@@ -58,7 +58,7 @@ struct stv0900_config {
        void (*set_lock_led)(struct dvb_frontend *fe, int offon);
 };
 
-#if IS_ENABLED(CONFIG_DVB_STV0900)
+#if IS_REACHABLE(CONFIG_DVB_STV0900)
 extern struct dvb_frontend *stv0900_attach(const struct stv0900_config *config,
                                        struct i2c_adapter *i2c, int demod);
 #else
index 742eeda9900018ee3dde4b9f5b7aab831a6af158..012e55e5032e62ff5b394c4513636761b1d69d4f 100644 (file)
@@ -107,7 +107,7 @@ struct stv090x_config {
                        u8 xor_value);
 };
 
-#if IS_ENABLED(CONFIG_DVB_STV090x)
+#if IS_REACHABLE(CONFIG_DVB_STV090x)
 
 struct dvb_frontend *stv090x_attach(struct stv090x_config *config,
                                    struct i2c_adapter *i2c,
index 8fa07e6a6745712e65328aab285f8b8dafd88919..f3c8a5c6b77d1af7f664ac51b4c96522783a1690 100644 (file)
@@ -46,7 +46,7 @@ struct stv6110_config {
        u8 clk_div;     /* divisor value for the output clock */
 };
 
-#if IS_ENABLED(CONFIG_DVB_STV6110)
+#if IS_REACHABLE(CONFIG_DVB_STV6110)
 extern struct dvb_frontend *stv6110_attach(struct dvb_frontend *fe,
                                        const struct stv6110_config *config,
                                        struct i2c_adapter *i2c);
index bc4766db29c52403b4f21b8be422902faa3fc8de..9f7eb251aec32cb0a6d7bf821000a95690674332 100644 (file)
@@ -53,7 +53,7 @@ struct stv6110x_devctl {
 };
 
 
-#if IS_ENABLED(CONFIG_DVB_STV6110x)
+#if IS_REACHABLE(CONFIG_DVB_STV6110x)
 
 extern struct stv6110x_devctl *stv6110x_attach(struct dvb_frontend *fe,
                                               const struct stv6110x_config *config,
index e404b6e4480249e43ce6355abc222dc49191f69c..0d334613de1b94e9a11e1c007219fe2cfc657970 100644 (file)
@@ -57,7 +57,7 @@ struct tda10023_config {
        u16 deltaf;
 };
 
-#if IS_ENABLED(CONFIG_DVB_TDA10021)
+#if IS_REACHABLE(CONFIG_DVB_TDA10021)
 extern struct dvb_frontend* tda10021_attach(const struct tda1002x_config* config,
                                            struct i2c_adapter* i2c, u8 pwm);
 #else
@@ -69,7 +69,7 @@ static inline struct dvb_frontend* tda10021_attach(const struct tda1002x_config*
 }
 #endif // CONFIG_DVB_TDA10021
 
-#if IS_ENABLED(CONFIG_DVB_TDA10023)
+#if IS_REACHABLE(CONFIG_DVB_TDA10023)
 extern struct dvb_frontend *tda10023_attach(
        const struct tda10023_config *config,
        struct i2c_adapter *i2c, u8 pwm);
index 5e7bf4e47cb367ee6847b402bd6fd32da7bef0d2..bc77a7311de1610394c8c4c856873c6f3b7c66d9 100644 (file)
@@ -73,7 +73,7 @@ struct tda10048_config {
        u8 pll_n;
 };
 
-#if IS_ENABLED(CONFIG_DVB_TDA10048)
+#if IS_REACHABLE(CONFIG_DVB_TDA10048)
 extern struct dvb_frontend *tda10048_attach(
        const struct tda10048_config *config,
        struct i2c_adapter *i2c);
index dd283fbb61c061c4e1ae83f10b88ec9520ffadfd..efd7659dace919b594c572965f680665af4e3588 100644 (file)
@@ -117,7 +117,7 @@ struct tda1004x_state {
        enum tda1004x_demod demod_type;
 };
 
-#if IS_ENABLED(CONFIG_DVB_TDA1004X)
+#if IS_REACHABLE(CONFIG_DVB_TDA1004X)
 extern struct dvb_frontend* tda10045_attach(const struct tda1004x_config* config,
                                            struct i2c_adapter* i2c);
 
index 331b5a819383dbad3464ecb8bfaac9ac5a2dc89f..da89f42498466cca798f4236b741e9e6fb76386f 100644 (file)
@@ -72,7 +72,7 @@ struct tda10071_config {
 };
 
 
-#if IS_ENABLED(CONFIG_DVB_TDA10071)
+#if IS_REACHABLE(CONFIG_DVB_TDA10071)
 extern struct dvb_frontend *tda10071_attach(
        const struct tda10071_config *config, struct i2c_adapter *i2c);
 #else
index 458fe91c1b88b2843cf469bc8d314e14b0df0b7e..690e469995b62f8b860cc6b1f963b98337fe5211 100644 (file)
@@ -46,7 +46,7 @@ struct tda10086_config
        enum tda10086_xtal xtal_freq;
 };
 
-#if IS_ENABLED(CONFIG_DVB_TDA10086)
+#if IS_REACHABLE(CONFIG_DVB_TDA10086)
 extern struct dvb_frontend* tda10086_attach(const struct tda10086_config* config,
                                            struct i2c_adapter* i2c);
 #else
index dd84f7b69bece134f3b0c1ce4ff8e8deefd8c72c..7ebd8eaff4eb5d2610382e6f37ec53b8ff61bee8 100644 (file)
@@ -3,7 +3,7 @@
 
 #include <linux/kconfig.h>
 
-#if IS_ENABLED(CONFIG_DVB_TDA18271C2DD)
+#if IS_REACHABLE(CONFIG_DVB_TDA18271C2DD)
 struct dvb_frontend *tda18271c2dd_attach(struct dvb_frontend *fe,
                                         struct i2c_adapter *i2c, u8 adr);
 #else
index 03a0da6d5cf2181298866f13fe2462c2f9cd44e8..baf520baa42e6398f0a7214aa112d19fdbb32ddd 100644 (file)
@@ -31,7 +31,7 @@ struct tda665x_config {
        u32     ref_divider;
 };
 
-#if IS_ENABLED(CONFIG_DVB_TDA665x)
+#if IS_REACHABLE(CONFIG_DVB_TDA665x)
 
 extern struct dvb_frontend *tda665x_attach(struct dvb_frontend *fe,
                                           const struct tda665x_config *config,
index de6b1860dfdd226e3935d43f95beb302633125ac..46be06fa7e0d9126f0936c31f4c6aeae5573816f 100644 (file)
@@ -35,7 +35,7 @@ struct tda8083_config
        u8 demod_address;
 };
 
-#if IS_ENABLED(CONFIG_DVB_TDA8083)
+#if IS_REACHABLE(CONFIG_DVB_TDA8083)
 extern struct dvb_frontend* tda8083_attach(const struct tda8083_config* config,
                                           struct i2c_adapter* i2c);
 #else
index 55cf4ffcbfdfd64f55d471d70487fbda234e4609..9fa5b3076d5bd6e738cbd8c5c13d1e241054f43c 100644 (file)
@@ -34,7 +34,7 @@ struct tda8261_config {
        enum tda8261_step       step_size;
 };
 
-#if IS_ENABLED(CONFIG_DVB_TDA8261)
+#if IS_REACHABLE(CONFIG_DVB_TDA8261)
 
 extern struct dvb_frontend *tda8261_attach(struct dvb_frontend *fe,
                                           const struct tda8261_config *config,
index 5f0f20e7e4f81e91cb374859ae8cc00df085bcdc..81abe1aebe9fba8d6746a2a34bf8430b1a4332ad 100644 (file)
@@ -35,7 +35,7 @@
  * @param has_loopthrough Set to 1 if the card has a loopthrough RF connector.
  * @return FE pointer on success, NULL on failure.
  */
-#if IS_ENABLED(CONFIG_DVB_TDA826X)
+#if IS_REACHABLE(CONFIG_DVB_TDA826X)
 extern struct dvb_frontend* tda826x_attach(struct dvb_frontend *fe, int addr,
                                           struct i2c_adapter *i2c,
                                           int has_loopthrough);
index 8a08dccc217f22373f17c075be2ab89b154a4761..1714af94eca249418b82c0748540dd23c770740b 100644 (file)
@@ -54,7 +54,7 @@ struct ts2020_config {
        struct dvb_frontend *fe;
 };
 
-#if IS_ENABLED(CONFIG_DVB_TS2020)
+#if IS_REACHABLE(CONFIG_DVB_TS2020)
 
 extern struct dvb_frontend *ts2020_attach(
        struct dvb_frontend *fe,
index 83a9c30e67ca07aa3538c3d9cfe772a4c90d75ac..52919e04e25852b35f7e85d6c86425d02dbfe12d 100644 (file)
@@ -34,7 +34,7 @@
 #include <linux/i2c.h>
 #include "dvb_frontend.h"
 
-#if IS_ENABLED(CONFIG_DVB_TUA6100)
+#if IS_REACHABLE(CONFIG_DVB_TUA6100)
 extern struct dvb_frontend *tua6100_attach(struct dvb_frontend *fe, int addr, struct i2c_adapter *i2c);
 #else
 static inline struct dvb_frontend* tua6100_attach(struct dvb_frontend *fe, int addr, struct i2c_adapter *i2c)
index c073f353ac387e4fd4dce10e99a99784ed0c603e..ece46fdcd7141dbe032ea4efdc794838ba22d422 100644 (file)
@@ -41,7 +41,7 @@ struct ves1820_config
        u8 selagc:1;
 };
 
-#if IS_ENABLED(CONFIG_DVB_VES1820)
+#if IS_REACHABLE(CONFIG_DVB_VES1820)
 extern struct dvb_frontend* ves1820_attach(const struct ves1820_config* config,
                                           struct i2c_adapter* i2c, u8 pwm);
 #else
index 2307caea6aecfe6bd7a22b3b7f270c1e494dd10d..4510fe2f6676c0113faeacc4cdf2e0db6c256fe2 100644 (file)
@@ -40,7 +40,7 @@ struct ves1x93_config
        u8 invert_pwm:1;
 };
 
-#if IS_ENABLED(CONFIG_DVB_VES1X93)
+#if IS_REACHABLE(CONFIG_DVB_VES1X93)
 extern struct dvb_frontend* ves1x93_attach(const struct ves1x93_config* config,
                                           struct i2c_adapter* i2c);
 #else
index 5f1e8217eeb61c21388d3137f92e7bf3ea339cd8..670e76a654ee4f8a7556075d3539e96236a50d11 100644 (file)
@@ -38,7 +38,7 @@ struct zl10036_config {
        int rf_loop_enable;
 };
 
-#if IS_ENABLED(CONFIG_DVB_ZL10036)
+#if IS_REACHABLE(CONFIG_DVB_ZL10036)
 extern struct dvb_frontend *zl10036_attach(struct dvb_frontend *fe,
        const struct zl10036_config *config, struct i2c_adapter *i2c);
 #else
index 750b9bca9d02d117198b20852a9a93db395f97ff..070929444e7111453403844d87d0a9b0321c762e 100644 (file)
@@ -24,7 +24,7 @@
 
 #include <linux/kconfig.h>
 
-#if IS_ENABLED(CONFIG_DVB_ZL10039)
+#if IS_REACHABLE(CONFIG_DVB_ZL10039)
 struct dvb_frontend *zl10039_attach(struct dvb_frontend *fe,
                                        u8 i2c_addr,
                                        struct i2c_adapter *i2c);
index 50c1004aef366ef1f3080c8c9fadb267109fe074..37aa6e8f454a71977795fdb2e2f0b494052013fb 100644 (file)
@@ -47,7 +47,7 @@ struct zl10353_config
        u8 pll_0;        /* default: 0x15 */
 };
 
-#if IS_ENABLED(CONFIG_DVB_ZL10353)
+#if IS_REACHABLE(CONFIG_DVB_ZL10353)
 extern struct dvb_frontend* zl10353_attach(const struct zl10353_config *config,
                                           struct i2c_adapter *i2c);
 #else
index 5028f0cf83f43a87b7e93270c0d6fb8c277bb584..6c511723fd1ba5b291d28b67c33d20f7aaf82cee 100644 (file)
@@ -39,7 +39,7 @@ struct altera_ci_config {
        int (*fpga_rw) (void *dev, int ad_rg, int val, int rw);
 };
 
-#if IS_ENABLED(CONFIG_MEDIA_ALTERA_CI)
+#if IS_REACHABLE(CONFIG_MEDIA_ALTERA_CI)
 
 extern int altera_ci_init(struct altera_ci_config *config, int ci_nr);
 extern void altera_ci_release(void *dev, int ci_nr);
index 43ec893a6877e000b55e0e7e74bf0add0f20550f..81bb568d694338f7f967fef7b3c799b39a6122d2 100644 (file)
@@ -23,7 +23,7 @@ enum fc0011_fe_callback_commands {
        FC0011_FE_CALLBACK_RESET,
 };
 
-#if IS_ENABLED(CONFIG_MEDIA_TUNER_FC0011)
+#if IS_REACHABLE(CONFIG_MEDIA_TUNER_FC0011)
 struct dvb_frontend *fc0011_attach(struct dvb_frontend *fe,
                                   struct i2c_adapter *i2c,
                                   const struct fc0011_config *config);
index 1d08057e32752ee7f48cda2a8c1734666ac85476..9ad32859bab0679264577a813d497f91ce4781cd 100644 (file)
@@ -49,7 +49,7 @@ struct fc0012_config {
        bool clock_out;
 };
 
-#if IS_ENABLED(CONFIG_MEDIA_TUNER_FC0012)
+#if IS_REACHABLE(CONFIG_MEDIA_TUNER_FC0012)
 extern struct dvb_frontend *fc0012_attach(struct dvb_frontend *fe,
                                        struct i2c_adapter *i2c,
                                        const struct fc0012_config *cfg);
index d65d5b37f56e0e9e04712915d2f26381f359a24a..e130bd7a32302477d1f3a8bec41e9ff2b98aa8ad 100644 (file)
@@ -26,7 +26,7 @@
 #include "dvb_frontend.h"
 #include "fc001x-common.h"
 
-#if IS_ENABLED(CONFIG_MEDIA_TUNER_FC0013)
+#if IS_REACHABLE(CONFIG_MEDIA_TUNER_FC0013)
 extern struct dvb_frontend *fc0013_attach(struct dvb_frontend *fe,
                                        struct i2c_adapter *i2c,
                                        u8 i2c_address, int dual_master,
index 9c43c1cc82d9b18ac460981202226db4d0cf1910..b1ce6770f88e94646eb76f9ca2bff4a853445754 100644 (file)
@@ -37,7 +37,7 @@ struct fc2580_config {
        u32 clock;
 };
 
-#if IS_ENABLED(CONFIG_MEDIA_TUNER_FC2580)
+#if IS_REACHABLE(CONFIG_MEDIA_TUNER_FC2580)
 extern struct dvb_frontend *fc2580_attach(struct dvb_frontend *fe,
        struct i2c_adapter *i2c, const struct fc2580_config *cfg);
 #else
index 26e1dc64bb6777a2a400f8da62d906ced5c945ce..5054f01a78fbba435e587af3a404ae3f136bd81f 100644 (file)
@@ -32,7 +32,7 @@ struct max2165_config {
        u8 osc_clk; /* in MHz, selectable values: 4,16,18,20,22,24,26,28 */
 };
 
-#if IS_ENABLED(CONFIG_MEDIA_TUNER_MAX2165)
+#if IS_REACHABLE(CONFIG_MEDIA_TUNER_MAX2165)
 extern struct dvb_frontend *max2165_attach(struct dvb_frontend *fe,
        struct i2c_adapter *i2c,
        struct max2165_config *cfg);
index 9aae50aca2b7c502853a7a4ce5c1d610f4578b50..b3e614be657dbe32d8eef52d9278ca9e645f546c 100644 (file)
@@ -32,7 +32,7 @@ struct mc44s803_config {
        u8 dig_out;
 };
 
-#if IS_ENABLED(CONFIG_MEDIA_TUNER_MC44S803)
+#if IS_REACHABLE(CONFIG_MEDIA_TUNER_MC44S803)
 extern struct dvb_frontend *mc44s803_attach(struct dvb_frontend *fe,
         struct i2c_adapter *i2c, struct mc44s803_config *cfg);
 #else
index c64fc19cb27866a1af42cffba6bae94e7110270a..6efed359a24fd2cefadfffaf378294b4a112b535 100644 (file)
@@ -30,7 +30,7 @@ struct mt2060_config {
        u8 clock_out; /* 0 = off, 1 = CLK/4, 2 = CLK/2, 3 = CLK/1 */
 };
 
-#if IS_ENABLED(CONFIG_MEDIA_TUNER_MT2060)
+#if IS_REACHABLE(CONFIG_MEDIA_TUNER_MT2060)
 extern struct dvb_frontend * mt2060_attach(struct dvb_frontend *fe, struct i2c_adapter *i2c, struct mt2060_config *cfg, u16 if1);
 #else
 static inline struct dvb_frontend * mt2060_attach(struct dvb_frontend *fe, struct i2c_adapter *i2c, struct mt2060_config *cfg, u16 if1)
index e1acfc8e7ae3f20b6fa01d66554d629af9da6c9d..e55e0a6dd1be403d3859a54e45210b4d4f2e06c7 100644 (file)
@@ -8,7 +8,7 @@ struct mt2063_config {
        u32 refclock;
 };
 
-#if IS_ENABLED(CONFIG_MEDIA_TUNER_MT2063)
+#if IS_REACHABLE(CONFIG_MEDIA_TUNER_MT2063)
 struct dvb_frontend *mt2063_attach(struct dvb_frontend *fe,
                                   struct mt2063_config *config,
                                   struct i2c_adapter *i2c);
index f56241ccaa00b85946fbb7d17bb8928b30e44fba..9912362b415ea646ed43b8c32ed90bd4ae479d39 100644 (file)
@@ -20,7 +20,7 @@
 #include <linux/i2c.h>
 #include "dvb_frontend.h"
 
-#if IS_ENABLED(CONFIG_MEDIA_TUNER_MT20XX)
+#if IS_REACHABLE(CONFIG_MEDIA_TUNER_MT20XX)
 extern struct dvb_frontend *microtune_attach(struct dvb_frontend *fe,
                                             struct i2c_adapter* i2c_adap,
                                             u8 i2c_addr);
index 837c854b9c656cab9a574467fdb39b3dc2c963f1..8267a6ae5d848bc12bb1bbb7e2f1fc5ab7ffd561 100644 (file)
@@ -30,7 +30,7 @@ struct mt2131_config {
        u8 clock_out; /* 0 = off, 1 = CLK/4, 2 = CLK/2, 3 = CLK/1 */
 };
 
-#if IS_ENABLED(CONFIG_MEDIA_TUNER_MT2131)
+#if IS_REACHABLE(CONFIG_MEDIA_TUNER_MT2131)
 extern struct dvb_frontend* mt2131_attach(struct dvb_frontend *fe,
                                          struct i2c_adapter *i2c,
                                          struct mt2131_config *cfg,
index fad6dd657d77016e27425264d6edd2fe0e26da5d..69abefa18c37c38699c541206d297f09e3cbcb90 100644 (file)
@@ -24,7 +24,7 @@ struct mt2266_config {
        u8 i2c_address;
 };
 
-#if IS_ENABLED(CONFIG_MEDIA_TUNER_MT2266)
+#if IS_REACHABLE(CONFIG_MEDIA_TUNER_MT2266)
 extern struct dvb_frontend * mt2266_attach(struct dvb_frontend *fe, struct i2c_adapter *i2c, struct mt2266_config *cfg);
 #else
 static inline struct dvb_frontend * mt2266_attach(struct dvb_frontend *fe, struct i2c_adapter *i2c, struct mt2266_config *cfg)
index ae8db885ad87a1cfb22603910bc2bc04e360717f..5764b12c5c7c6f45619763f90b0381889e8f00c7 100644 (file)
@@ -118,7 +118,7 @@ struct mxl5005s_config {
        u8 AgcMasterByte;
 };
 
-#if IS_ENABLED(CONFIG_MEDIA_TUNER_MXL5005S)
+#if IS_REACHABLE(CONFIG_MEDIA_TUNER_MXL5005S)
 extern struct dvb_frontend *mxl5005s_attach(struct dvb_frontend *fe,
                                            struct i2c_adapter *i2c,
                                            struct mxl5005s_config *config);
index ae7037d681c5a0b050f3eb859491323df23871b0..e786d1f23ff1b7c0da087361903c576778fdd75c 100644 (file)
@@ -77,7 +77,7 @@ struct mxl5007t_config {
        unsigned int clk_out_enable:1;
 };
 
-#if IS_ENABLED(CONFIG_MEDIA_TUNER_MXL5007T)
+#if IS_REACHABLE(CONFIG_MEDIA_TUNER_MXL5007T)
 extern struct dvb_frontend *mxl5007t_attach(struct dvb_frontend *fe,
                                            struct i2c_adapter *i2c, u8 addr,
                                            struct mxl5007t_config *cfg);
index 8ab5d479749f4b6a82a8b75316c8247d1b643e51..e3198f23437c1af9d70b340415d567e970d24832 100644 (file)
@@ -36,7 +36,7 @@ struct qt1010_config {
  * @param cfg  tuner hw based configuration
  * @return fe  pointer on success, NULL on failure
  */
-#if IS_ENABLED(CONFIG_MEDIA_TUNER_QT1010)
+#if IS_REACHABLE(CONFIG_MEDIA_TUNER_QT1010)
 extern struct dvb_frontend *qt1010_attach(struct dvb_frontend *fe,
                                          struct i2c_adapter *i2c,
                                          struct qt1010_config *cfg);
index 48af3548027da19fa872fab0a0dff8a369a54ea5..b1e5661af1c7e03d7a0f9f1d850598eaa29b6e65 100644 (file)
@@ -42,7 +42,7 @@ struct r820t_config {
        bool use_predetect;
 };
 
-#if IS_ENABLED(CONFIG_MEDIA_TUNER_R820T)
+#if IS_REACHABLE(CONFIG_MEDIA_TUNER_R820T)
 struct dvb_frontend *r820t_attach(struct dvb_frontend *fe,
                                  struct i2c_adapter *i2c,
                                  const struct r820t_config *cfg);
index 366410e0cc9a2dc5fdedc8ea584a30710b7c4346..1eacb4f84e937d5adbc819b28b794c9aa3b40540 100644 (file)
@@ -30,7 +30,7 @@ struct tda18218_config {
        u8 loop_through:1;
 };
 
-#if IS_ENABLED(CONFIG_MEDIA_TUNER_TDA18218)
+#if IS_REACHABLE(CONFIG_MEDIA_TUNER_TDA18218)
 extern struct dvb_frontend *tda18218_attach(struct dvb_frontend *fe,
        struct i2c_adapter *i2c, struct tda18218_config *cfg);
 #else
index 4c418d63f540d539f049781be691d9388b7dcdea..0a846333ce57cd289c8bb7f62462c4c7949f7bed 100644 (file)
@@ -121,7 +121,7 @@ enum tda18271_mode {
        TDA18271_DIGITAL,
 };
 
-#if IS_ENABLED(CONFIG_MEDIA_TUNER_TDA18271)
+#if IS_REACHABLE(CONFIG_MEDIA_TUNER_TDA18271)
 extern struct dvb_frontend *tda18271_attach(struct dvb_frontend *fe, u8 addr,
                                            struct i2c_adapter *i2c,
                                            struct tda18271_config *cfg);
index b64292152baf535831e0ce77902308f13a6dedb7..abf2e2fe53507b6fcff3d3435e305df8b244a2e0 100644 (file)
@@ -51,7 +51,7 @@ struct tda827x_config
  * @param cfg optional callback function pointers.
  * @return FE pointer on success, NULL on failure.
  */
-#if IS_ENABLED(CONFIG_MEDIA_TUNER_TDA827X)
+#if IS_REACHABLE(CONFIG_MEDIA_TUNER_TDA827X)
 extern struct dvb_frontend* tda827x_attach(struct dvb_frontend *fe, int addr,
                                           struct i2c_adapter *i2c,
                                           struct tda827x_config *cfg);
index cf96e585785e37bae9ebe15f5feecb75c240eb22..901b8cac7105e27eaa0e28a5ec6d6a35a1794999 100644 (file)
@@ -38,7 +38,7 @@ struct tda829x_config {
        struct tda18271_std_map *tda18271_std_map;
 };
 
-#if IS_ENABLED(CONFIG_MEDIA_TUNER_TDA8290)
+#if IS_REACHABLE(CONFIG_MEDIA_TUNER_TDA8290)
 extern int tda829x_probe(struct i2c_adapter *i2c_adap, u8 i2c_addr);
 
 extern struct dvb_frontend *tda829x_attach(struct dvb_frontend *fe,
index 37a4a1123e0cfacae72b12456687d480ab65e343..95070eca02ca179432d93cfe725e0e97c597ef69 100644 (file)
@@ -21,7 +21,7 @@
 #include "dvb_frontend.h"
 
 /* ------------------------------------------------------------------------ */
-#if IS_ENABLED(CONFIG_MEDIA_TUNER_TDA9887)
+#if IS_REACHABLE(CONFIG_MEDIA_TUNER_TDA9887)
 extern struct dvb_frontend *tda9887_attach(struct dvb_frontend *fe,
                                           struct i2c_adapter *i2c_adap,
                                           u8 i2c_addr);
index 933228ffb5095c95c39088c193d95d3d83b24c94..2d624d9919e3a263806a4b8eb3425592e7a22074 100644 (file)
@@ -20,7 +20,7 @@
 #include <linux/i2c.h>
 #include "dvb_frontend.h"
 
-#if IS_ENABLED(CONFIG_MEDIA_TUNER_TEA5761)
+#if IS_REACHABLE(CONFIG_MEDIA_TUNER_TEA5761)
 extern int tea5761_autodetection(struct i2c_adapter* i2c_adap, u8 i2c_addr);
 
 extern struct dvb_frontend *tea5761_attach(struct dvb_frontend *fe,
index c391011993831a79dc9393d7ff6c8609e3518944..4f6f6c92db78b6d76938a153f78a0d297478be5e 100644 (file)
@@ -39,7 +39,7 @@ struct tea5767_ctrl {
        enum tea5767_xtal       xtal_freq;
 };
 
-#if IS_ENABLED(CONFIG_MEDIA_TUNER_TEA5767)
+#if IS_REACHABLE(CONFIG_MEDIA_TUNER_TEA5767)
 extern int tea5767_autodetection(struct i2c_adapter* i2c_adap, u8 i2c_addr);
 
 extern struct dvb_frontend *tea5767_attach(struct dvb_frontend *fe,
index 26358da1c10016fcd6ae33ec1e7692ad7b9a0290..2c3375c7aeb9eaf8677b7fd9d81f28cfeb33aaf5 100644 (file)
@@ -51,7 +51,7 @@ struct tua9001_config {
 #define TUA9001_CMD_RESETN  1
 #define TUA9001_CMD_RXEN    2
 
-#if IS_ENABLED(CONFIG_MEDIA_TUNER_TUA9001)
+#if IS_REACHABLE(CONFIG_MEDIA_TUNER_TUA9001)
 extern struct dvb_frontend *tua9001_attach(struct dvb_frontend *fe,
                struct i2c_adapter *i2c, struct tua9001_config *cfg);
 #else
index ffd12cfe650b8e89d5560abe17d8e07185bf1a6e..6399b45b0590b80835b95fe350411d1a509332b4 100644 (file)
@@ -20,7 +20,7 @@
 #include <linux/i2c.h>
 #include "dvb_frontend.h"
 
-#if IS_ENABLED(CONFIG_MEDIA_TUNER_SIMPLE)
+#if IS_REACHABLE(CONFIG_MEDIA_TUNER_SIMPLE)
 extern struct dvb_frontend *simple_tuner_attach(struct dvb_frontend *fe,
                                                struct i2c_adapter *i2c_adap,
                                                u8 i2c_addr,
index 181d087faec4a1795cf5ac7eabb8972a76400a7f..98e4effca8964e60b60b2fda82fcc8e8b45a7c40 100644 (file)
@@ -56,7 +56,7 @@ struct xc2028_config {
 #define XC2028_RESET_CLK       1
 #define XC2028_I2C_FLUSH       2
 
-#if IS_ENABLED(CONFIG_MEDIA_TUNER_XC2028)
+#if IS_REACHABLE(CONFIG_MEDIA_TUNER_XC2028)
 extern struct dvb_frontend *xc2028_attach(struct dvb_frontend *fe,
                                          struct xc2028_config *cfg);
 #else
index 97c23de5296c635aa7db9e656fa6639e9aeab2a0..40517860cf67ff85b261dc3470c2343da27b1835 100644 (file)
@@ -50,7 +50,7 @@ struct xc4000_config {
  * it's passed back to a bridge during tuner_callback().
  */
 
-#if IS_ENABLED(CONFIG_MEDIA_TUNER_XC4000)
+#if IS_REACHABLE(CONFIG_MEDIA_TUNER_XC4000)
 extern struct dvb_frontend *xc4000_attach(struct dvb_frontend *fe,
                                          struct i2c_adapter *i2c,
                                          struct xc4000_config *cfg);
index 6aa534f17a3079333c9ace2725a71553536b0858..00ba29e21fb96ffa2d0aae6874b99273e87b769b 100644 (file)
@@ -58,7 +58,7 @@ struct xc5000_config {
  * it's passed back to a bridge during tuner_callback().
  */
 
-#if IS_ENABLED(CONFIG_MEDIA_TUNER_XC5000)
+#if IS_REACHABLE(CONFIG_MEDIA_TUNER_XC5000)
 extern struct dvb_frontend *xc5000_attach(struct dvb_frontend *fe,
                                          struct i2c_adapter *i2c,
                                          const struct xc5000_config *cfg);
index be342b94c640849f18e669b73f6f418092dc860f..16cfb3448568b1ee4df05a377d4cd6b5605005a7 100644 (file)
  */
 #define IS_MODULE(option) config_enabled(option##_MODULE)
 
+/*
+ * IS_REACHABLE(CONFIG_FOO) evaluates to 1 if the currently compiled
+ * code can call a function defined in code compiled based on CONFIG_FOO.
+ * This is similar to IS_ENABLED(), but returns false when invoked from
+ * built-in code when CONFIG_FOO is set to 'm'.
+ */
+#define IS_REACHABLE(option) (config_enabled(option) || \
+                (config_enabled(option##_MODULE) && config_enabled(MODULE)))
+
 #endif /* __LINUX_KCONFIG_H */