[media] Add and use IS_REACHABLE macro

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: 7b34be71db ("[media] use IS_ENABLED() macro")
See-also: c5dec9fb24 ("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>
This commit is contained in:
Arnd Bergmann 2015-02-18 14:12:42 -03:00 коммит произвёл Mauro Carvalho Chehab
Родитель a87a4d3428
Коммит 9b174527e7
116 изменённых файлов: 125 добавлений и 116 удалений

Просмотреть файл

@ -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

Просмотреть файл

@ -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

Просмотреть файл

@ -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

Просмотреть файл

@ -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

Просмотреть файл

@ -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

Просмотреть файл

@ -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

Просмотреть файл

@ -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);

Просмотреть файл

@ -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

Просмотреть файл

@ -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);

Просмотреть файл

@ -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);

Просмотреть файл

@ -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);

Просмотреть файл

@ -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 *);

Просмотреть файл

@ -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,

Просмотреть файл

@ -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);

Просмотреть файл

@ -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);

Просмотреть файл

@ -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

Просмотреть файл

@ -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);

Просмотреть файл

@ -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);

Просмотреть файл

@ -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)

Просмотреть файл

@ -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)

Просмотреть файл

@ -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);

Просмотреть файл

@ -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,

Просмотреть файл

@ -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

Просмотреть файл

@ -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

Просмотреть файл

@ -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,

Просмотреть файл

@ -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);

Просмотреть файл

@ -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

Просмотреть файл

@ -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

Просмотреть файл

@ -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
*/

Просмотреть файл

@ -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);

Просмотреть файл

@ -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,

Просмотреть файл

@ -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)

Просмотреть файл

@ -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

Просмотреть файл

@ -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

Просмотреть файл

@ -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);

Просмотреть файл

@ -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);

Просмотреть файл

@ -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

Просмотреть файл

@ -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

Просмотреть файл

@ -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

Просмотреть файл

@ -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,

Просмотреть файл

@ -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,

Просмотреть файл

@ -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

Просмотреть файл

@ -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

Просмотреть файл

@ -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);

Просмотреть файл

@ -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 *);

Просмотреть файл

@ -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

Просмотреть файл

@ -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

Просмотреть файл

@ -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

Просмотреть файл

@ -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

Просмотреть файл

@ -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

Просмотреть файл

@ -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

Просмотреть файл

@ -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

Просмотреть файл

@ -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

Просмотреть файл

@ -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);

Просмотреть файл

@ -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

Просмотреть файл

@ -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 *);

Просмотреть файл

@ -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

Просмотреть файл

@ -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

Просмотреть файл

@ -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

Просмотреть файл

@ -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);

Просмотреть файл

@ -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

Просмотреть файл

@ -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,

Просмотреть файл

@ -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

Просмотреть файл

@ -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

Просмотреть файл

@ -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

Просмотреть файл

@ -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);

Просмотреть файл

@ -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

Просмотреть файл

@ -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,

Просмотреть файл

@ -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);

Просмотреть файл

@ -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,

Просмотреть файл

@ -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);

Просмотреть файл

@ -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);

Просмотреть файл

@ -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);

Просмотреть файл

@ -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

Просмотреть файл

@ -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

Просмотреть файл

@ -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

Просмотреть файл

@ -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,

Просмотреть файл

@ -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

Просмотреть файл

@ -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,

Просмотреть файл

@ -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);

Просмотреть файл

@ -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,

Просмотреть файл

@ -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)

Просмотреть файл

@ -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

Просмотреть файл

@ -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

Просмотреть файл

@ -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

Просмотреть файл

@ -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);

Просмотреть файл

@ -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

Просмотреть файл

@ -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);

Просмотреть файл

@ -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);

Просмотреть файл

@ -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);

Просмотреть файл

@ -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,

Просмотреть файл

@ -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

Просмотреть файл

@ -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);

Просмотреть файл

@ -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

Просмотреть файл

@ -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)

Просмотреть файл

@ -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);

Просмотреть файл

@ -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);

Просмотреть файл

@ -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,

Просмотреть файл

@ -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)

Просмотреть файл

@ -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);

Некоторые файлы не были показаны из-за слишком большого количества измененных файлов Показать больше