Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/v4l-dvb

* 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/v4l-dvb:
V4L/DVB (4751): Fix DBV_FE_CUSTOMISE for card drivers compiled into kernel
V4L/DVB (4784): [saa7146_i2c] short_delay mode fixed for fast machines
V4L/DVB (4770): Fix mode switch of Compro Videomate T300
V4L/DVB (4787): Budget-ci: Inversion setting fixed for Technotrend 1500 T
V4L/DVB (4786): Pvrusb2: use NULL instead of 0
V4L/DVB (4785): Budget-ci: Change DEBIADDR_IR to a safer default
V4L/DVB (4752): DVB: Add DVB_FE_CUSTOMISE support for MT2060

+66 -48
+4 -6
drivers/media/common/saa7146_i2c.c
··· 217 217 } 218 218 /* wait until we get a transfer done or error */ 219 219 timeout = jiffies + HZ/100 + 1; /* 10ms */ 220 + /* first read usually delivers bogus results... */ 221 + saa7146_i2c_status(dev); 220 222 while(1) { 221 - /** 222 - * first read usually delivers bogus results... 223 - */ 224 - saa7146_i2c_status(dev); 225 223 status = saa7146_i2c_status(dev); 226 224 if ((status & 0x3) != 1) 227 225 break; ··· 230 232 DEB_I2C(("saa7146_i2c_writeout: timed out waiting for end of xfer\n")); 231 233 return -EIO; 232 234 } 233 - if ((++trial < 20) && short_delay) 235 + if (++trial < 50 && short_delay) 234 236 udelay(10); 235 237 else 236 - msleep(1); 238 + msleep(1); 237 239 } 238 240 } 239 241
+6 -6
drivers/media/dvb/dvb-usb/Kconfig
··· 26 26 tristate "AVerMedia AverTV DVB-T USB 2.0 (A800)" 27 27 depends on DVB_USB 28 28 select DVB_DIB3000MC 29 - select DVB_TUNER_MT2060 29 + select DVB_TUNER_MT2060 if !DVB_FE_CUSTOMISE 30 30 help 31 31 Say Y here to support the AVerMedia AverTV DVB-T USB 2.0 (A800) receiver. 32 32 ··· 34 34 tristate "DiBcom USB DVB-T devices (based on the DiB3000M-B) (see help for device list)" 35 35 depends on DVB_USB 36 36 select DVB_DIB3000MB 37 - select DVB_TUNER_MT2060 37 + select DVB_TUNER_MT2060 if !DVB_FE_CUSTOMISE 38 38 help 39 39 Support for USB 1.1 and 2.0 DVB-T receivers based on reference designs made by 40 40 DiBcom (<http://www.dibcom.fr>) equipped with a DiB3000M-B demodulator. ··· 55 55 tristate "DiBcom USB DVB-T devices (based on the DiB3000M-C/P) (see help for device list)" 56 56 depends on DVB_USB 57 57 select DVB_DIB3000MC 58 - select DVB_TUNER_MT2060 58 + select DVB_TUNER_MT2060 if !DVB_FE_CUSTOMISE 59 59 help 60 60 Support for USB2.0 DVB-T receivers based on reference designs made by 61 61 DiBcom (<http://www.dibcom.fr>) equipped with a DiB3000M-C/P demodulator. ··· 70 70 tristate "DiBcom DiB0700 USB DVB devices (see help for supported devices)" 71 71 depends on DVB_USB 72 72 select DVB_DIB3000MC 73 - select DVB_TUNER_MT2060 73 + select DVB_TUNER_MT2060 if !DVB_FE_CUSTOMISE 74 74 help 75 75 Support for USB2.0/1.1 DVB receivers based on the DiB0700 USB bridge. The 76 76 USB bridge is also present in devices having the DiB7700 DVB-T-USB ··· 87 87 tristate "HanfTek UMT-010 DVB-T USB2.0 support" 88 88 depends on DVB_USB 89 89 select DVB_DIB3000MC 90 - select DVB_TUNER_MT2060 90 + select DVB_TUNER_MT2060 if !DVB_FE_CUSTOMISE 91 91 help 92 92 Say Y here to support the HanfTek UMT-010 USB2.0 stick-sized DVB-T receiver. 93 93 ··· 153 153 tristate "Hauppauge WinTV-NOVA-T usb2 DVB-T USB2.0 support" 154 154 depends on DVB_USB 155 155 select DVB_DIB3000MC 156 - select DVB_TUNER_MT2060 156 + select DVB_TUNER_MT2060 if !DVB_FE_CUSTOMISE 157 157 help 158 158 Say Y here to support the Hauppauge WinTV-NOVA-T usb2 DVB-T USB2.0 receiver. 159 159
+2
drivers/media/dvb/frontends/Kconfig
··· 276 276 277 277 config DVB_TUNER_MT2060 278 278 tristate "Microtune MT2060 silicon IF tuner" 279 + depends on I2C 280 + default m if DVB_FE_CUSTOMISE 279 281 help 280 282 A driver for the silicon IF tuner MT2060 from Microtune. 281 283
+1 -1
drivers/media/dvb/frontends/bcm3510.h
··· 34 34 int (*request_firmware)(struct dvb_frontend* fe, const struct firmware **fw, char* name); 35 35 }; 36 36 37 - #if defined(CONFIG_DVB_BCM3510) || defined(CONFIG_DVB_BCM3510_MODULE) 37 + #if defined(CONFIG_DVB_BCM3510) || (defined(CONFIG_DVB_BCM3510_MODULE) && defined(MODULE)) 38 38 extern struct dvb_frontend* bcm3510_attach(const struct bcm3510_config* config, 39 39 struct i2c_adapter* i2c); 40 40 #else
+1 -1
drivers/media/dvb/frontends/cx22700.h
··· 31 31 u8 demod_address; 32 32 }; 33 33 34 - #if defined(CONFIG_DVB_CX22700) || defined(CONFIG_DVB_CX22700_MODULE) 34 + #if defined(CONFIG_DVB_CX22700) || (defined(CONFIG_DVB_CX22700_MODULE) && defined(MODULE)) 35 35 extern struct dvb_frontend* cx22700_attach(const struct cx22700_config* config, 36 36 struct i2c_adapter* i2c); 37 37 #else
+1 -1
drivers/media/dvb/frontends/cx22702.h
··· 41 41 u8 output_mode; 42 42 }; 43 43 44 - #if defined(CONFIG_DVB_CX22702) || defined(CONFIG_DVB_CX22702_MODULE) 44 + #if defined(CONFIG_DVB_CX22702) || (defined(CONFIG_DVB_CX22702_MODULE) && defined(MODULE)) 45 45 extern struct dvb_frontend* cx22702_attach(const struct cx22702_config* config, 46 46 struct i2c_adapter* i2c); 47 47 #else
+1 -1
drivers/media/dvb/frontends/cx24110.h
··· 41 41 return r; 42 42 } 43 43 44 - #if defined(CONFIG_DVB_CX24110) || defined(CONFIG_DVB_CX24110_MODULE) 44 + #if defined(CONFIG_DVB_CX24110) || (defined(CONFIG_DVB_CX24110_MODULE) && defined(MODULE)) 45 45 extern struct dvb_frontend* cx24110_attach(const struct cx24110_config* config, 46 46 struct i2c_adapter* i2c); 47 47 #else
+1 -1
drivers/media/dvb/frontends/cx24123.h
··· 35 35 int lnb_polarity; 36 36 }; 37 37 38 - #if defined(CONFIG_DVB_CX24123) || defined(CONFIG_DVB_CX24123_MODULE) 38 + #if defined(CONFIG_DVB_CX24123) || (defined(CONFIG_DVB_CX24123_MODULE) && defined(MODULE)) 39 39 extern struct dvb_frontend* cx24123_attach(const struct cx24123_config* config, 40 40 struct i2c_adapter* i2c); 41 41 #else
+1 -1
drivers/media/dvb/frontends/dib3000.h
··· 41 41 int (*tuner_pass_ctrl)(struct dvb_frontend *fe, int onoff, u8 pll_ctrl); 42 42 }; 43 43 44 - #if defined(CONFIG_DVB_DIB3000MB) || defined(CONFIG_DVB_DIB3000MB_MODULE) 44 + #if defined(CONFIG_DVB_DIB3000MB) || (defined(CONFIG_DVB_DIB3000MB_MODULE) && defined(MODULE)) 45 45 extern struct dvb_frontend* dib3000mb_attach(const struct dib3000_config* config, 46 46 struct i2c_adapter* i2c, struct dib_fe_xfer_ops *xfer_ops); 47 47 #else
+1 -1
drivers/media/dvb/frontends/dib3000mc.h
··· 39 39 #define DEFAULT_DIB3000MC_I2C_ADDRESS 16 40 40 #define DEFAULT_DIB3000P_I2C_ADDRESS 24 41 41 42 - #if defined(CONFIG_DVB_DIB3000MC) || defined(CONFIG_DVB_DIB3000MC_MODULE) 42 + #if defined(CONFIG_DVB_DIB3000MC) || (defined(CONFIG_DVB_DIB3000MC_MODULE) && defined(MODULE)) 43 43 extern struct dvb_frontend * dib3000mc_attach(struct i2c_adapter *i2c_adap, u8 i2c_addr, struct dib3000mc_config *cfg); 44 44 #else 45 45 static inline struct dvb_frontend * dib3000mc_attach(struct i2c_adapter *i2c_adap, u8 i2c_addr, struct dib3000mc_config *cfg)
+1 -1
drivers/media/dvb/frontends/isl6421.h
··· 39 39 #define ISL6421_ISEL1 0x20 40 40 #define ISL6421_DCL 0x40 41 41 42 - #if defined(CONFIG_DVB_ISL6421) || defined(CONFIG_DVB_ISL6421_MODULE) 42 + #if defined(CONFIG_DVB_ISL6421) || (defined(CONFIG_DVB_ISL6421_MODULE) && defined(MODULE)) 43 43 /* override_set and override_clear control which system register bits (above) to always set & clear */ 44 44 extern struct dvb_frontend *isl6421_attach(struct dvb_frontend *fe, struct i2c_adapter *i2c, u8 i2c_addr, 45 45 u8 override_set, u8 override_clear);
+1 -1
drivers/media/dvb/frontends/l64781.h
··· 31 31 u8 demod_address; 32 32 }; 33 33 34 - #if defined(CONFIG_DVB_L64781) || defined(CONFIG_DVB_L64781_MODULE) 34 + #if defined(CONFIG_DVB_L64781) || (defined(CONFIG_DVB_L64781_MODULE) && defined(MODULE)) 35 35 extern struct dvb_frontend* l64781_attach(const struct l64781_config* config, 36 36 struct i2c_adapter* i2c); 37 37 #else
+1 -1
drivers/media/dvb/frontends/lgdt330x.h
··· 52 52 int clock_polarity_flip; 53 53 }; 54 54 55 - #if defined(CONFIG_DVB_LGDT330X) || defined(CONFIG_DVB_LGDT330X_MODULE) 55 + #if defined(CONFIG_DVB_LGDT330X) || (defined(CONFIG_DVB_LGDT330X_MODULE) && defined(MODULE)) 56 56 extern struct dvb_frontend* lgdt330x_attach(const struct lgdt330x_config* config, 57 57 struct i2c_adapter* i2c); 58 58 #else
+1 -1
drivers/media/dvb/frontends/lnbp21.h
··· 39 39 40 40 #include <linux/dvb/frontend.h> 41 41 42 - #if defined(CONFIG_DVB_LNBP21) || defined(CONFIG_DVB_LNBP21_MODULE) 42 + #if defined(CONFIG_DVB_LNBP21) || (defined(CONFIG_DVB_LNBP21_MODULE) && defined(MODULE)) 43 43 /* override_set and override_clear control which system register bits (above) to always set & clear */ 44 44 extern struct dvb_frontend *lnbp21_attach(struct dvb_frontend *fe, struct i2c_adapter *i2c, u8 override_set, u8 override_clear); 45 45 #else
+8
drivers/media/dvb/frontends/mt2060.h
··· 30 30 u8 clock_out; /* 0 = off, 1 = CLK/4, 2 = CLK/2, 3 = CLK/1 */ 31 31 }; 32 32 33 + #if defined(CONFIG_DVB_TUNER_MT2060) || (defined(CONFIG_DVB_TUNER_MT2060_MODULE) && defined(MODULE)) 33 34 extern struct dvb_frontend * mt2060_attach(struct dvb_frontend *fe, struct i2c_adapter *i2c, struct mt2060_config *cfg, u16 if1); 35 + #else 36 + static inline struct dvb_frontend * mt2060_attach(struct dvb_frontend *fe, struct i2c_adapter *i2c, struct mt2060_config *cfg, u16 if1) 37 + { 38 + printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __FUNCTION__); 39 + return NULL; 40 + } 41 + #endif // CONFIG_DVB_TUNER_MT2060 34 42 35 43 #endif
+1 -1
drivers/media/dvb/frontends/mt312.h
··· 34 34 u8 demod_address; 35 35 }; 36 36 37 - #if defined(CONFIG_DVB_MT312) || defined(CONFIG_DVB_MT312_MODULE) 37 + #if defined(CONFIG_DVB_MT312) || (defined(CONFIG_DVB_MT312_MODULE) && defined(MODULE)) 38 38 struct dvb_frontend* vp310_mt312_attach(const struct mt312_config* config, 39 39 struct i2c_adapter* i2c); 40 40 #else
+1 -1
drivers/media/dvb/frontends/mt352.h
··· 51 51 int (*demod_init)(struct dvb_frontend* fe); 52 52 }; 53 53 54 - #if defined(CONFIG_DVB_MT352) || defined(CONFIG_DVB_MT352_MODULE) 54 + #if defined(CONFIG_DVB_MT352) || (defined(CONFIG_DVB_MT352_MODULE) && defined(MODULE)) 55 55 extern struct dvb_frontend* mt352_attach(const struct mt352_config* config, 56 56 struct i2c_adapter* i2c); 57 57 #else
+1 -1
drivers/media/dvb/frontends/nxt200x.h
··· 45 45 int (*set_ts_params)(struct dvb_frontend* fe, int is_punctured); 46 46 }; 47 47 48 - #if defined(CONFIG_DVB_NXT200X) || defined(CONFIG_DVB_NXT200X_MODULE) 48 + #if defined(CONFIG_DVB_NXT200X) || (defined(CONFIG_DVB_NXT200X_MODULE) && defined(MODULE)) 49 49 extern struct dvb_frontend* nxt200x_attach(const struct nxt200x_config* config, 50 50 struct i2c_adapter* i2c); 51 51 #else
+1 -1
drivers/media/dvb/frontends/nxt6000.h
··· 33 33 u8 clock_inversion:1; 34 34 }; 35 35 36 - #if defined(CONFIG_DVB_NXT6000) || defined(CONFIG_DVB_NXT6000_MODULE) 36 + #if defined(CONFIG_DVB_NXT6000) || (defined(CONFIG_DVB_NXT6000_MODULE) && defined(MODULE)) 37 37 extern struct dvb_frontend* nxt6000_attach(const struct nxt6000_config* config, 38 38 struct i2c_adapter* i2c); 39 39 #else
+1 -1
drivers/media/dvb/frontends/or51132.h
··· 34 34 int (*set_ts_params)(struct dvb_frontend* fe, int is_punctured); 35 35 }; 36 36 37 - #if defined(CONFIG_DVB_OR51132) || defined(CONFIG_DVB_OR51132_MODULE) 37 + #if defined(CONFIG_DVB_OR51132) || (defined(CONFIG_DVB_OR51132_MODULE) && defined(MODULE)) 38 38 extern struct dvb_frontend* or51132_attach(const struct or51132_config* config, 39 39 struct i2c_adapter* i2c); 40 40 #else
+1 -1
drivers/media/dvb/frontends/or51211.h
··· 37 37 void (*sleep)(struct dvb_frontend * fe); 38 38 }; 39 39 40 - #if defined(CONFIG_DVB_OR51211) || defined(CONFIG_DVB_OR51211_MODULE) 40 + #if defined(CONFIG_DVB_OR51211) || (defined(CONFIG_DVB_OR51211_MODULE) && defined(MODULE)) 41 41 extern struct dvb_frontend* or51211_attach(const struct or51211_config* config, 42 42 struct i2c_adapter* i2c); 43 43 #else
+1 -1
drivers/media/dvb/frontends/s5h1420.h
··· 34 34 u8 invert:1; 35 35 }; 36 36 37 - #if defined(CONFIG_DVB_S5H1420) || defined(CONFIG_DVB_S5H1420_MODULE) 37 + #if defined(CONFIG_DVB_S5H1420) || (defined(CONFIG_DVB_S5H1420_MODULE) && defined(MODULE)) 38 38 extern struct dvb_frontend* s5h1420_attach(const struct s5h1420_config* config, 39 39 struct i2c_adapter* i2c); 40 40 #else
+1 -1
drivers/media/dvb/frontends/sp8870.h
··· 35 35 int (*request_firmware)(struct dvb_frontend* fe, const struct firmware **fw, char* name); 36 36 }; 37 37 38 - #if defined(CONFIG_DVB_SP8870) || defined(CONFIG_DVB_SP8870_MODULE) 38 + #if defined(CONFIG_DVB_SP8870) || (defined(CONFIG_DVB_SP8870_MODULE) && defined(MODULE)) 39 39 extern struct dvb_frontend* sp8870_attach(const struct sp8870_config* config, 40 40 struct i2c_adapter* i2c); 41 41 #else
+1 -1
drivers/media/dvb/frontends/sp887x.h
··· 17 17 int (*request_firmware)(struct dvb_frontend* fe, const struct firmware **fw, char* name); 18 18 }; 19 19 20 - #if defined(CONFIG_DVB_SP887X) || defined(CONFIG_DVB_SP887X_MODULE) 20 + #if defined(CONFIG_DVB_SP887X) || (defined(CONFIG_DVB_SP887X_MODULE) && defined(MODULE)) 21 21 extern struct dvb_frontend* sp887x_attach(const struct sp887x_config* config, 22 22 struct i2c_adapter* i2c); 23 23 #else
+1 -1
drivers/media/dvb/frontends/stv0297.h
··· 42 42 u8 stop_during_read:1; 43 43 }; 44 44 45 - #if defined(CONFIG_DVB_STV0297) || defined(CONFIG_DVB_STV0297_MODULE) 45 + #if defined(CONFIG_DVB_STV0297) || (defined(CONFIG_DVB_STV0297_MODULE) && defined(MODULE)) 46 46 extern struct dvb_frontend* stv0297_attach(const struct stv0297_config* config, 47 47 struct i2c_adapter* i2c); 48 48 #else
+1 -1
drivers/media/dvb/frontends/stv0299.h
··· 89 89 int (*set_symbol_rate)(struct dvb_frontend* fe, u32 srate, u32 ratio); 90 90 }; 91 91 92 - #if defined(CONFIG_DVB_STV0299) || defined(CONFIG_DVB_STV0299_MODULE) 92 + #if defined(CONFIG_DVB_STV0299) || (defined(CONFIG_DVB_STV0299_MODULE) && defined(MODULE)) 93 93 extern struct dvb_frontend* stv0299_attach(const struct stv0299_config* config, 94 94 struct i2c_adapter* i2c); 95 95 #else
+1 -1
drivers/media/dvb/frontends/tda10021.h
··· 32 32 u8 demod_address; 33 33 }; 34 34 35 - #if defined(CONFIG_DVB_TDA10021) || defined(CONFIG_DVB_TDA10021_MODULE) 35 + #if defined(CONFIG_DVB_TDA10021) || (defined(CONFIG_DVB_TDA10021_MODULE) && defined(MODULE)) 36 36 extern struct dvb_frontend* tda10021_attach(const struct tda10021_config* config, 37 37 struct i2c_adapter* i2c, u8 pwm); 38 38 #else
+1 -1
drivers/media/dvb/frontends/tda1004x.h
··· 71 71 int (*request_firmware)(struct dvb_frontend* fe, const struct firmware **fw, char* name); 72 72 }; 73 73 74 - #if defined(CONFIG_DVB_TDA1004X) || defined(CONFIG_DVB_TDA1004X_MODULE) 74 + #if defined(CONFIG_DVB_TDA1004X) || (defined(CONFIG_DVB_TDA1004X_MODULE) && defined(MODULE)) 75 75 extern struct dvb_frontend* tda10045_attach(const struct tda1004x_config* config, 76 76 struct i2c_adapter* i2c); 77 77
+1 -1
drivers/media/dvb/frontends/tda10086.h
··· 35 35 u8 invert; 36 36 }; 37 37 38 - #if defined(CONFIG_DVB_TDA10086) || defined(CONFIG_DVB_TDA10086_MODULE) 38 + #if defined(CONFIG_DVB_TDA10086) || (defined(CONFIG_DVB_TDA10086_MODULE) && defined(MODULE)) 39 39 extern struct dvb_frontend* tda10086_attach(const struct tda10086_config* config, 40 40 struct i2c_adapter* i2c); 41 41 #else
+1 -1
drivers/media/dvb/frontends/tda8083.h
··· 35 35 u8 demod_address; 36 36 }; 37 37 38 - #if defined(CONFIG_DVB_TDA8083) || defined(CONFIG_DVB_TDA8083_MODULE) 38 + #if defined(CONFIG_DVB_TDA8083) || (defined(CONFIG_DVB_TDA8083_MODULE) && defined(MODULE)) 39 39 extern struct dvb_frontend* tda8083_attach(const struct tda8083_config* config, 40 40 struct i2c_adapter* i2c); 41 41 #else
+1 -1
drivers/media/dvb/frontends/tda826x.h
··· 35 35 * @param has_loopthrough Set to 1 if the card has a loopthrough RF connector. 36 36 * @return FE pointer on success, NULL on failure. 37 37 */ 38 - #if defined(CONFIG_DVB_TDA826X) || defined(CONFIG_DVB_TDA826X_MODULE) 38 + #if defined(CONFIG_DVB_TDA826X) || (defined(CONFIG_DVB_TDA826X_MODULE) && defined(MODULE)) 39 39 extern struct dvb_frontend* tda826x_attach(struct dvb_frontend *fe, int addr, 40 40 struct i2c_adapter *i2c, 41 41 int has_loopthrough);
+1 -1
drivers/media/dvb/frontends/tua6100.h
··· 34 34 #include <linux/i2c.h> 35 35 #include "dvb_frontend.h" 36 36 37 - #if defined(CONFIG_DVB_TUA6100) || defined(CONFIG_DVB_TUA6100_MODULE) 37 + #if defined(CONFIG_DVB_TUA6100) || (defined(CONFIG_DVB_TUA6100_MODULE) && defined(MODULE)) 38 38 extern struct dvb_frontend *tua6100_attach(struct dvb_frontend *fe, int addr, struct i2c_adapter *i2c); 39 39 #else 40 40 static inline struct dvb_frontend* tua6100_attach(struct dvb_frontend *fe, int addr, struct i2c_adapter *i2c)
+1 -1
drivers/media/dvb/frontends/ves1820.h
··· 41 41 u8 selagc:1; 42 42 }; 43 43 44 - #if defined(CONFIG_DVB_VES1820) || defined(CONFIG_DVB_VES1820_MODULE) 44 + #if defined(CONFIG_DVB_VES1820) || (defined(CONFIG_DVB_VES1820_MODULE) && defined(MODULE)) 45 45 extern struct dvb_frontend* ves1820_attach(const struct ves1820_config* config, 46 46 struct i2c_adapter* i2c, u8 pwm); 47 47 #else
+1 -1
drivers/media/dvb/frontends/ves1x93.h
··· 40 40 u8 invert_pwm:1; 41 41 }; 42 42 43 - #if defined(CONFIG_DVB_VES1X93) || defined(CONFIG_DVB_VES1X93_MODULE) 43 + #if defined(CONFIG_DVB_VES1X93) || (defined(CONFIG_DVB_VES1X93_MODULE) && defined(MODULE)) 44 44 extern struct dvb_frontend* ves1x93_attach(const struct ves1x93_config* config, 45 45 struct i2c_adapter* i2c); 46 46 #else
+1 -1
drivers/media/dvb/frontends/zl10353.h
··· 36 36 int parallel_ts; 37 37 }; 38 38 39 - #if defined(CONFIG_DVB_ZL10353) || defined(CONFIG_DVB_ZL10353_MODULE) 39 + #if defined(CONFIG_DVB_ZL10353) || (defined(CONFIG_DVB_ZL10353_MODULE) && defined(MODULE)) 40 40 extern struct dvb_frontend* zl10353_attach(const struct zl10353_config *config, 41 41 struct i2c_adapter *i2c); 42 42 #else
+9 -1
drivers/media/dvb/ttpci/budget-ci.c
··· 46 46 #include "bsbe1.h" 47 47 #include "bsru6.h" 48 48 49 - #define DEBIADDR_IR 0x1234 49 + /* 50 + * Regarding DEBIADDR_IR: 51 + * Some CI modules hang if random addresses are read. 52 + * Using address 0x4000 for the IR read means that we 53 + * use the same address as for CI version, which should 54 + * be a safe default. 55 + */ 56 + #define DEBIADDR_IR 0x4000 50 57 #define DEBIADDR_CICONTROL 0x0000 51 58 #define DEBIADDR_CIVERSION 0x4000 52 59 #define DEBIADDR_IO 0x1000 ··· 1035 1028 1036 1029 case 0x1012: // TT DVB-T CI budget (tda10046/Philips tdm1316l(tda6651tt)) 1037 1030 budget_ci->tuner_pll_address = 0x60; 1031 + philips_tdm1316l_config.invert = 1; 1038 1032 budget_ci->budget.dvb_frontend = 1039 1033 dvb_attach(tda10046_attach, &philips_tdm1316l_config, &budget_ci->budget.i2c_adap); 1040 1034 if (budget_ci->budget.dvb_frontend) {
+1 -1
drivers/media/video/pvrusb2/pvrusb2-cx2584x-v4l.c
··· 221 221 static void decoder_reset(struct pvr2_v4l_cx2584x *ctxt) 222 222 { 223 223 int ret; 224 - ret = pvr2_i2c_client_cmd(ctxt->client,VIDIOC_INT_RESET,0); 224 + ret = pvr2_i2c_client_cmd(ctxt->client,VIDIOC_INT_RESET,NULL); 225 225 pvr2_trace(PVR2_TRACE_CHIPS,"i2c cx25840 decoder_reset (ret=%d)",ret); 226 226 } 227 227
+3 -3
drivers/media/video/pvrusb2/pvrusb2-v4l2.c
··· 711 711 dip->devbase.minor,pvr2_config_get_name(dip->config)); 712 712 713 713 /* Paranoia */ 714 - dip->v4lp = 0; 715 - dip->stream = 0; 714 + dip->v4lp = NULL; 715 + dip->stream = NULL; 716 716 717 717 /* Actual deallocation happens later when all internal references 718 718 are gone. */ ··· 1076 1076 vp->vdev = kmalloc(sizeof(*vp->vdev),GFP_KERNEL); 1077 1077 if (!vp->vdev) { 1078 1078 kfree(vp); 1079 - return 0; 1079 + return NULL; 1080 1080 } 1081 1081 memset(vp->vdev,0,sizeof(*vp->vdev)); 1082 1082 pvr2_channel_init(&vp->channel,mnp);
+2
drivers/media/video/saa7134/saa7134-dvb.c
··· 1147 1147 &philips_europa_config, 1148 1148 &dev->i2c_adap); 1149 1149 if (dev->dvb.frontend) { 1150 + dev->original_demod_sleep = dev->dvb.frontend->ops.sleep; 1151 + dev->dvb.frontend->ops.sleep = philips_europa_demod_sleep; 1150 1152 dev->dvb.frontend->ops.tuner_ops.init = philips_europa_tuner_init; 1151 1153 dev->dvb.frontend->ops.tuner_ops.sleep = philips_europa_tuner_sleep; 1152 1154 dev->dvb.frontend->ops.tuner_ops.set_params = philips_td1316_tuner_set_params;