[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:
		
					parent
					
						
							
								a87a4d3428
							
						
					
				
			
			
				commit
				
					
						9b174527e7
					
				
			
		
					 116 changed files with 125 additions and 116 deletions
				
			
		| 
						 | 
				
			
			@ -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);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
Some files were not shown because too many files have changed in this diff Show more
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue