aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/media/dvb/b2c2/flexcop-common.h2
-rw-r--r--drivers/media/dvb/b2c2/flexcop-fe-tuner.c4
-rw-r--r--drivers/media/dvb/bt8xx/dvb-bt8xx.c6
-rw-r--r--drivers/media/dvb/dvb-usb/vp702x-fe.c2
-rw-r--r--drivers/media/dvb/dvb-usb/vp7045-fe.c2
-rw-r--r--drivers/media/dvb/frontends/at76c651.c6
-rw-r--r--drivers/media/dvb/frontends/bcm3510.c4
-rw-r--r--drivers/media/dvb/frontends/cx22700.c10
-rw-r--r--drivers/media/dvb/frontends/cx22702.c2
-rw-r--r--drivers/media/dvb/frontends/cx22702.h2
-rw-r--r--drivers/media/dvb/frontends/cx24110.c312
-rw-r--r--drivers/media/dvb/frontends/l64781.c26
-rw-r--r--drivers/media/dvb/frontends/l64781.h2
-rw-r--r--drivers/media/dvb/frontends/lgdt330x.c8
-rw-r--r--drivers/media/dvb/frontends/mt312.c4
-rw-r--r--drivers/media/dvb/frontends/nxt2002.c6
-rw-r--r--drivers/media/dvb/frontends/nxt200x.c4
-rw-r--r--drivers/media/dvb/frontends/nxt6000.c10
-rw-r--r--drivers/media/dvb/frontends/or51132.c2
-rw-r--r--drivers/media/dvb/frontends/s5h1420.c6
-rw-r--r--drivers/media/dvb/frontends/s5h1420.h2
-rw-r--r--drivers/media/dvb/frontends/sp8870.c16
-rw-r--r--drivers/media/dvb/frontends/sp887x.c14
-rw-r--r--drivers/media/dvb/frontends/stv0299.c36
-rw-r--r--drivers/media/dvb/frontends/tda10021.c10
-rw-r--r--drivers/media/dvb/frontends/tda10021.h4
-rw-r--r--drivers/media/dvb/frontends/tda1004x.c2
-rw-r--r--drivers/media/dvb/frontends/tda8083.c20
-rw-r--r--drivers/media/dvb/ttpci/av7110.c26
-rw-r--r--drivers/media/dvb/ttpci/av7110_hw.c20
-rw-r--r--drivers/media/dvb/ttpci/av7110_v4l.c4
-rw-r--r--drivers/media/dvb/ttpci/budget-core.c2
-rw-r--r--drivers/media/dvb/ttpci/budget-patch.c326
-rw-r--r--drivers/media/dvb/ttpci/budget.c6
-rw-r--r--drivers/media/dvb/ttpci/budget.h2
-rw-r--r--drivers/media/dvb/ttpci/fdump.c2
-rw-r--r--drivers/media/dvb/ttpci/ttpci-eeprom.c40
-rw-r--r--drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c128
-rw-r--r--drivers/media/dvb/ttusb-dec/ttusb_dec.c4
39 files changed, 542 insertions, 542 deletions
diff --git a/drivers/media/dvb/b2c2/flexcop-common.h b/drivers/media/dvb/b2c2/flexcop-common.h
index a94912ac1872..344a3c898460 100644
--- a/drivers/media/dvb/b2c2/flexcop-common.h
+++ b/drivers/media/dvb/b2c2/flexcop-common.h
@@ -132,7 +132,7 @@ int flexcop_eeprom_check_mac_addr(struct flexcop_device *fc, int extended);
132 * I2C-channel of the flexcop. 132 * I2C-channel of the flexcop.
133 */ 133 */
134int flexcop_i2c_request(struct flexcop_device*, flexcop_access_op_t, 134int flexcop_i2c_request(struct flexcop_device*, flexcop_access_op_t,
135 flexcop_i2c_port_t, u8 chipaddr, u8 addr, u8 *buf, u16 len); 135 flexcop_i2c_port_t, u8 chipaddr, u8 addr, u8 *buf, u16 len);
136 136
137/* from flexcop-sram.c */ 137/* from flexcop-sram.c */
138int flexcop_sram_set_dest(struct flexcop_device *fc, flexcop_sram_dest_t dest, flexcop_sram_dest_target_t target); 138int flexcop_sram_set_dest(struct flexcop_device *fc, flexcop_sram_dest_t dest, flexcop_sram_dest_target_t target);
diff --git a/drivers/media/dvb/b2c2/flexcop-fe-tuner.c b/drivers/media/dvb/b2c2/flexcop-fe-tuner.c
index a35330315f65..21a9045b3ef6 100644
--- a/drivers/media/dvb/b2c2/flexcop-fe-tuner.c
+++ b/drivers/media/dvb/b2c2/flexcop-fe-tuner.c
@@ -298,7 +298,7 @@ static int flexcop_fe_request_firmware(struct dvb_frontend* fe, const struct fir
298} 298}
299 299
300static int lgdt3303_pll_set(struct dvb_frontend* fe, 300static int lgdt3303_pll_set(struct dvb_frontend* fe,
301 struct dvb_frontend_parameters* params) 301 struct dvb_frontend_parameters* params)
302{ 302{
303 struct flexcop_device *fc = fe->dvb->priv; 303 struct flexcop_device *fc = fe->dvb->priv;
304 u8 buf[4]; 304 u8 buf[4];
@@ -332,7 +332,7 @@ static int lgdt3303_pll_set(struct dvb_frontend* fe,
332 return -EREMOTEIO; 332 return -EREMOTEIO;
333 } 333 }
334 334
335 return 0; 335 return 0;
336} 336}
337 337
338static struct lgdt330x_config air2pc_atsc_hd5000_config = { 338static struct lgdt330x_config air2pc_atsc_hd5000_config = {
diff --git a/drivers/media/dvb/bt8xx/dvb-bt8xx.c b/drivers/media/dvb/bt8xx/dvb-bt8xx.c
index 2e398090cf63..77977e9c013e 100644
--- a/drivers/media/dvb/bt8xx/dvb-bt8xx.c
+++ b/drivers/media/dvb/bt8xx/dvb-bt8xx.c
@@ -556,9 +556,9 @@ static int tdvs_tua6034_pll_set(struct dvb_frontend* fe, struct dvb_frontend_par
556 dprintk("%s: tuner at 0x%02x bytes: 0x%02x 0x%02x 0x%02x 0x%02x\n", 556 dprintk("%s: tuner at 0x%02x bytes: 0x%02x 0x%02x 0x%02x 0x%02x\n",
557 __FUNCTION__, msg.addr, buf[0],buf[1],buf[2],buf[3]); 557 __FUNCTION__, msg.addr, buf[0],buf[1],buf[2],buf[3]);
558 if ((err = i2c_transfer(card->i2c_adapter, &msg, 1)) != 1) { 558 if ((err = i2c_transfer(card->i2c_adapter, &msg, 1)) != 1) {
559 printk(KERN_WARNING "dvb-bt8xx: %s error " 559 printk(KERN_WARNING "dvb-bt8xx: %s error "
560 "(addr %02x <- %02x, err = %i)\n", 560 "(addr %02x <- %02x, err = %i)\n",
561 __FUNCTION__, buf[0], buf[1], err); 561 __FUNCTION__, buf[0], buf[1], err);
562 if (err < 0) 562 if (err < 0)
563 return err; 563 return err;
564 else 564 else
diff --git a/drivers/media/dvb/dvb-usb/vp702x-fe.c b/drivers/media/dvb/dvb-usb/vp702x-fe.c
index f20d8dbd0be8..104b5d016c7b 100644
--- a/drivers/media/dvb/dvb-usb/vp702x-fe.c
+++ b/drivers/media/dvb/dvb-usb/vp702x-fe.c
@@ -190,7 +190,7 @@ static int vp702x_fe_get_frontend(struct dvb_frontend* fe,
190} 190}
191 191
192static int vp702x_fe_send_diseqc_msg (struct dvb_frontend* fe, 192static int vp702x_fe_send_diseqc_msg (struct dvb_frontend* fe,
193 struct dvb_diseqc_master_cmd *m) 193 struct dvb_diseqc_master_cmd *m)
194{ 194{
195 struct vp702x_fe_state *st = fe->demodulator_priv; 195 struct vp702x_fe_state *st = fe->demodulator_priv;
196 u8 cmd[8],ibuf[10]; 196 u8 cmd[8],ibuf[10];
diff --git a/drivers/media/dvb/dvb-usb/vp7045-fe.c b/drivers/media/dvb/dvb-usb/vp7045-fe.c
index 2746edfeccba..83f1de1e7e57 100644
--- a/drivers/media/dvb/dvb-usb/vp7045-fe.c
+++ b/drivers/media/dvb/dvb-usb/vp7045-fe.c
@@ -58,7 +58,7 @@ static int vp7045_fe_read_ber(struct dvb_frontend* fe, u32 *ber)
58 struct vp7045_fe_state *state = fe->demodulator_priv; 58 struct vp7045_fe_state *state = fe->demodulator_priv;
59 *ber = (vp7045_read_reg(state->d, 0x0D) << 16) | 59 *ber = (vp7045_read_reg(state->d, 0x0D) << 16) |
60 (vp7045_read_reg(state->d, 0x0E) << 8) | 60 (vp7045_read_reg(state->d, 0x0E) << 8) |
61 vp7045_read_reg(state->d, 0x0F); 61 vp7045_read_reg(state->d, 0x0F);
62 return 0; 62 return 0;
63} 63}
64 64
diff --git a/drivers/media/dvb/frontends/at76c651.c b/drivers/media/dvb/frontends/at76c651.c
index 72a2b5455b0b..8e0f4b3a1417 100644
--- a/drivers/media/dvb/frontends/at76c651.c
+++ b/drivers/media/dvb/frontends/at76c651.c
@@ -361,9 +361,9 @@ static int at76c651_read_ucblocks(struct dvb_frontend* fe, u32* ucblocks)
361 361
362static int at76c651_get_tune_settings(struct dvb_frontend* fe, struct dvb_frontend_tune_settings *fesettings) 362static int at76c651_get_tune_settings(struct dvb_frontend* fe, struct dvb_frontend_tune_settings *fesettings)
363{ 363{
364 fesettings->min_delay_ms = 50; 364 fesettings->min_delay_ms = 50;
365 fesettings->step_size = 0; 365 fesettings->step_size = 0;
366 fesettings->max_drift = 0; 366 fesettings->max_drift = 0;
367 return 0; 367 return 0;
368} 368}
369 369
diff --git a/drivers/media/dvb/frontends/bcm3510.c b/drivers/media/dvb/frontends/bcm3510.c
index f6d4ee78bdd4..8ceb9a33c7af 100644
--- a/drivers/media/dvb/frontends/bcm3510.c
+++ b/drivers/media/dvb/frontends/bcm3510.c
@@ -69,7 +69,7 @@ MODULE_PARM_DESC(debug, "set debugging level (1=info,2=i2c (|-able)).");
69#define dbufout(b,l,m) {\ 69#define dbufout(b,l,m) {\
70 int i; \ 70 int i; \
71 for (i = 0; i < l; i++) \ 71 for (i = 0; i < l; i++) \
72 m("%02x ",b[i]); \ 72 m("%02x ",b[i]); \
73} 73}
74#define deb_info(args...) dprintk(0x01,args) 74#define deb_info(args...) dprintk(0x01,args)
75#define deb_i2c(args...) dprintk(0x02,args) 75#define deb_i2c(args...) dprintk(0x02,args)
@@ -827,7 +827,7 @@ static struct dvb_frontend_ops bcm3510_ops = {
827 .type = FE_ATSC, 827 .type = FE_ATSC,
828 .frequency_min = 54000000, 828 .frequency_min = 54000000,
829 .frequency_max = 803000000, 829 .frequency_max = 803000000,
830 /* stepsize is just a guess */ 830 /* stepsize is just a guess */
831 .frequency_stepsize = 0, 831 .frequency_stepsize = 0,
832 .caps = 832 .caps =
833 FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 | 833 FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 |
diff --git a/drivers/media/dvb/frontends/cx22700.c b/drivers/media/dvb/frontends/cx22700.c
index 0c2ed4438618..755f774f6b7d 100644
--- a/drivers/media/dvb/frontends/cx22700.c
+++ b/drivers/media/dvb/frontends/cx22700.c
@@ -355,10 +355,10 @@ static int cx22700_get_frontend(struct dvb_frontend* fe, struct dvb_frontend_par
355 355
356static int cx22700_get_tune_settings(struct dvb_frontend* fe, struct dvb_frontend_tune_settings* fesettings) 356static int cx22700_get_tune_settings(struct dvb_frontend* fe, struct dvb_frontend_tune_settings* fesettings)
357{ 357{
358 fesettings->min_delay_ms = 150; 358 fesettings->min_delay_ms = 150;
359 fesettings->step_size = 166667; 359 fesettings->step_size = 166667;
360 fesettings->max_drift = 166667*2; 360 fesettings->max_drift = 166667*2;
361 return 0; 361 return 0;
362} 362}
363 363
364static void cx22700_release(struct dvb_frontend* fe) 364static void cx22700_release(struct dvb_frontend* fe)
@@ -407,7 +407,7 @@ static struct dvb_frontend_ops cx22700_ops = {
407 .caps = FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 | 407 .caps = FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 |
408 FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8 | FE_CAN_FEC_AUTO | 408 FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8 | FE_CAN_FEC_AUTO |
409 FE_CAN_QPSK | FE_CAN_QAM_16 | FE_CAN_QAM_64 | 409 FE_CAN_QPSK | FE_CAN_QAM_16 | FE_CAN_QAM_64 |
410 FE_CAN_RECOVER 410 FE_CAN_RECOVER
411 }, 411 },
412 412
413 .release = cx22700_release, 413 .release = cx22700_release,
diff --git a/drivers/media/dvb/frontends/cx22702.c b/drivers/media/dvb/frontends/cx22702.c
index d9a8ede14b45..5de0e6d350b1 100644
--- a/drivers/media/dvb/frontends/cx22702.c
+++ b/drivers/media/dvb/frontends/cx22702.c
@@ -2,7 +2,7 @@
2 Conexant 22702 DVB OFDM demodulator driver 2 Conexant 22702 DVB OFDM demodulator driver
3 3
4 based on: 4 based on:
5 Alps TDMB7 DVB OFDM demodulator driver 5 Alps TDMB7 DVB OFDM demodulator driver
6 6
7 Copyright (C) 2001-2002 Convergence Integrated Media GmbH 7 Copyright (C) 2001-2002 Convergence Integrated Media GmbH
8 Holger Waechtler <holger@convergence.de> 8 Holger Waechtler <holger@convergence.de>
diff --git a/drivers/media/dvb/frontends/cx22702.h b/drivers/media/dvb/frontends/cx22702.h
index 1f250885d2ce..5633976a58f1 100644
--- a/drivers/media/dvb/frontends/cx22702.h
+++ b/drivers/media/dvb/frontends/cx22702.h
@@ -2,7 +2,7 @@
2 Conexant 22702 DVB OFDM demodulator driver 2 Conexant 22702 DVB OFDM demodulator driver
3 3
4 based on: 4 based on:
5 Alps TDMB7 DVB OFDM demodulator driver 5 Alps TDMB7 DVB OFDM demodulator driver
6 6
7 Copyright (C) 2001-2002 Convergence Integrated Media GmbH 7 Copyright (C) 2001-2002 Convergence Integrated Media GmbH
8 Holger Waechtler <holger@convergence.de> 8 Holger Waechtler <holger@convergence.de>
diff --git a/drivers/media/dvb/frontends/cx24110.c b/drivers/media/dvb/frontends/cx24110.c
index 654d7dc879d9..0c4db80ec332 100644
--- a/drivers/media/dvb/frontends/cx24110.c
+++ b/drivers/media/dvb/frontends/cx24110.c
@@ -55,81 +55,81 @@ static int debug;
55 } while (0) 55 } while (0)
56 56
57static struct {u8 reg; u8 data;} cx24110_regdata[]= 57static struct {u8 reg; u8 data;} cx24110_regdata[]=
58 /* Comments beginning with @ denote this value should 58 /* Comments beginning with @ denote this value should
59 be the default */ 59 be the default */
60 {{0x09,0x01}, /* SoftResetAll */ 60 {{0x09,0x01}, /* SoftResetAll */
61 {0x09,0x00}, /* release reset */ 61 {0x09,0x00}, /* release reset */
62 {0x01,0xe8}, /* MSB of code rate 27.5MS/s */ 62 {0x01,0xe8}, /* MSB of code rate 27.5MS/s */
63 {0x02,0x17}, /* middle byte " */ 63 {0x02,0x17}, /* middle byte " */
64 {0x03,0x29}, /* LSB " */ 64 {0x03,0x29}, /* LSB " */
65 {0x05,0x03}, /* @ DVB mode, standard code rate 3/4 */ 65 {0x05,0x03}, /* @ DVB mode, standard code rate 3/4 */
66 {0x06,0xa5}, /* @ PLL 60MHz */ 66 {0x06,0xa5}, /* @ PLL 60MHz */
67 {0x07,0x01}, /* @ Fclk, i.e. sampling clock, 60MHz */ 67 {0x07,0x01}, /* @ Fclk, i.e. sampling clock, 60MHz */
68 {0x0a,0x00}, /* @ partial chip disables, do not set */ 68 {0x0a,0x00}, /* @ partial chip disables, do not set */
69 {0x0b,0x01}, /* set output clock in gapped mode, start signal low 69 {0x0b,0x01}, /* set output clock in gapped mode, start signal low
70 active for first byte */ 70 active for first byte */
71 {0x0c,0x11}, /* no parity bytes, large hold time, serial data out */ 71 {0x0c,0x11}, /* no parity bytes, large hold time, serial data out */
72 {0x0d,0x6f}, /* @ RS Sync/Unsync thresholds */ 72 {0x0d,0x6f}, /* @ RS Sync/Unsync thresholds */
73 {0x10,0x40}, /* chip doc is misleading here: write bit 6 as 1 73 {0x10,0x40}, /* chip doc is misleading here: write bit 6 as 1
74 to avoid starting the BER counter. Reset the 74 to avoid starting the BER counter. Reset the
75 CRC test bit. Finite counting selected */ 75 CRC test bit. Finite counting selected */
76 {0x15,0xff}, /* @ size of the limited time window for RS BER 76 {0x15,0xff}, /* @ size of the limited time window for RS BER
77 estimation. It is <value>*256 RS blocks, this 77 estimation. It is <value>*256 RS blocks, this
78 gives approx. 2.6 sec at 27.5MS/s, rate 3/4 */ 78 gives approx. 2.6 sec at 27.5MS/s, rate 3/4 */
79 {0x16,0x00}, /* @ enable all RS output ports */ 79 {0x16,0x00}, /* @ enable all RS output ports */
80 {0x17,0x04}, /* @ time window allowed for the RS to sync */ 80 {0x17,0x04}, /* @ time window allowed for the RS to sync */
81 {0x18,0xae}, /* @ allow all standard DVB code rates to be scanned 81 {0x18,0xae}, /* @ allow all standard DVB code rates to be scanned
82 for automatically */ 82 for automatically */
83 /* leave the current code rate and normalization 83 /* leave the current code rate and normalization
84 registers as they are after reset... */ 84 registers as they are after reset... */
85 {0x21,0x10}, /* @ during AutoAcq, search each viterbi setting 85 {0x21,0x10}, /* @ during AutoAcq, search each viterbi setting
86 only once */ 86 only once */
87 {0x23,0x18}, /* @ size of the limited time window for Viterbi BER 87 {0x23,0x18}, /* @ size of the limited time window for Viterbi BER
88 estimation. It is <value>*65536 channel bits, i.e. 88 estimation. It is <value>*65536 channel bits, i.e.
89 approx. 38ms at 27.5MS/s, rate 3/4 */ 89 approx. 38ms at 27.5MS/s, rate 3/4 */
90 {0x24,0x24}, /* do not trigger Viterbi CRC test. Finite count window */ 90 {0x24,0x24}, /* do not trigger Viterbi CRC test. Finite count window */
91 /* leave front-end AGC parameters at default values */ 91 /* leave front-end AGC parameters at default values */
92 /* leave decimation AGC parameters at default values */ 92 /* leave decimation AGC parameters at default values */
93 {0x35,0x40}, /* disable all interrupts. They are not connected anyway */ 93 {0x35,0x40}, /* disable all interrupts. They are not connected anyway */
94 {0x36,0xff}, /* clear all interrupt pending flags */ 94 {0x36,0xff}, /* clear all interrupt pending flags */
95 {0x37,0x00}, /* @ fully enable AutoAcqq state machine */ 95 {0x37,0x00}, /* @ fully enable AutoAcqq state machine */
96 {0x38,0x07}, /* @ enable fade recovery, but not autostart AutoAcq */ 96 {0x38,0x07}, /* @ enable fade recovery, but not autostart AutoAcq */
97 /* leave the equalizer parameters on their default values */ 97 /* leave the equalizer parameters on their default values */
98 /* leave the final AGC parameters on their default values */ 98 /* leave the final AGC parameters on their default values */
99 {0x41,0x00}, /* @ MSB of front-end derotator frequency */ 99 {0x41,0x00}, /* @ MSB of front-end derotator frequency */
100 {0x42,0x00}, /* @ middle bytes " */ 100 {0x42,0x00}, /* @ middle bytes " */
101 {0x43,0x00}, /* @ LSB " */ 101 {0x43,0x00}, /* @ LSB " */
102 /* leave the carrier tracking loop parameters on default */ 102 /* leave the carrier tracking loop parameters on default */
103 /* leave the bit timing loop parameters at gefault */ 103 /* leave the bit timing loop parameters at gefault */
104 {0x56,0x4d}, /* set the filtune voltage to 2.7V, as recommended by */ 104 {0x56,0x4d}, /* set the filtune voltage to 2.7V, as recommended by */
105 /* the cx24108 data sheet for symbol rates above 15MS/s */ 105 /* the cx24108 data sheet for symbol rates above 15MS/s */
106 {0x57,0x00}, /* @ Filter sigma delta enabled, positive */ 106 {0x57,0x00}, /* @ Filter sigma delta enabled, positive */
107 {0x61,0x95}, /* GPIO pins 1-4 have special function */ 107 {0x61,0x95}, /* GPIO pins 1-4 have special function */
108 {0x62,0x05}, /* GPIO pin 5 has special function, pin 6 is GPIO */ 108 {0x62,0x05}, /* GPIO pin 5 has special function, pin 6 is GPIO */
109 {0x63,0x00}, /* All GPIO pins use CMOS output characteristics */ 109 {0x63,0x00}, /* All GPIO pins use CMOS output characteristics */
110 {0x64,0x20}, /* GPIO 6 is input, all others are outputs */ 110 {0x64,0x20}, /* GPIO 6 is input, all others are outputs */
111 {0x6d,0x30}, /* tuner auto mode clock freq 62kHz */ 111 {0x6d,0x30}, /* tuner auto mode clock freq 62kHz */
112 {0x70,0x15}, /* use auto mode, tuner word is 21 bits long */ 112 {0x70,0x15}, /* use auto mode, tuner word is 21 bits long */
113 {0x73,0x00}, /* @ disable several demod bypasses */ 113 {0x73,0x00}, /* @ disable several demod bypasses */
114 {0x74,0x00}, /* @ " */ 114 {0x74,0x00}, /* @ " */
115 {0x75,0x00} /* @ " */ 115 {0x75,0x00} /* @ " */
116 /* the remaining registers are for SEC */ 116 /* the remaining registers are for SEC */
117 }; 117 };
118 118
119 119
120static int cx24110_writereg (struct cx24110_state* state, int reg, int data) 120static int cx24110_writereg (struct cx24110_state* state, int reg, int data)
121{ 121{
122 u8 buf [] = { reg, data }; 122 u8 buf [] = { reg, data };
123 struct i2c_msg msg = { .addr = state->config->demod_address, .flags = 0, .buf = buf, .len = 2 }; 123 struct i2c_msg msg = { .addr = state->config->demod_address, .flags = 0, .buf = buf, .len = 2 };
124 int err; 124 int err;
125 125
126 if ((err = i2c_transfer(state->i2c, &msg, 1)) != 1) { 126 if ((err = i2c_transfer(state->i2c, &msg, 1)) != 1) {
127 dprintk ("%s: writereg error (err == %i, reg == 0x%02x," 127 dprintk ("%s: writereg error (err == %i, reg == 0x%02x,"
128 " data == 0x%02x)\n", __FUNCTION__, err, reg, data); 128 " data == 0x%02x)\n", __FUNCTION__, err, reg, data);
129 return -EREMOTEIO; 129 return -EREMOTEIO;
130 } 130 }
131 131
132 return 0; 132 return 0;
133} 133}
134 134
135static int cx24110_readreg (struct cx24110_state* state, u8 reg) 135static int cx24110_readreg (struct cx24110_state* state, u8 reg)
@@ -153,27 +153,27 @@ static int cx24110_set_inversion (struct cx24110_state* state, fe_spectral_inver
153 153
154 switch (inversion) { 154 switch (inversion) {
155 case INVERSION_OFF: 155 case INVERSION_OFF:
156 cx24110_writereg(state,0x37,cx24110_readreg(state,0x37)|0x1); 156 cx24110_writereg(state,0x37,cx24110_readreg(state,0x37)|0x1);
157 /* AcqSpectrInvDis on. No idea why someone should want this */ 157 /* AcqSpectrInvDis on. No idea why someone should want this */
158 cx24110_writereg(state,0x5,cx24110_readreg(state,0x5)&0xf7); 158 cx24110_writereg(state,0x5,cx24110_readreg(state,0x5)&0xf7);
159 /* Initial value 0 at start of acq */ 159 /* Initial value 0 at start of acq */
160 cx24110_writereg(state,0x22,cx24110_readreg(state,0x22)&0xef); 160 cx24110_writereg(state,0x22,cx24110_readreg(state,0x22)&0xef);
161 /* current value 0 */ 161 /* current value 0 */
162 /* The cx24110 manual tells us this reg is read-only. 162 /* The cx24110 manual tells us this reg is read-only.
163 But what the heck... set it ayways */ 163 But what the heck... set it ayways */
164 break; 164 break;
165 case INVERSION_ON: 165 case INVERSION_ON:
166 cx24110_writereg(state,0x37,cx24110_readreg(state,0x37)|0x1); 166 cx24110_writereg(state,0x37,cx24110_readreg(state,0x37)|0x1);
167 /* AcqSpectrInvDis on. No idea why someone should want this */ 167 /* AcqSpectrInvDis on. No idea why someone should want this */
168 cx24110_writereg(state,0x5,cx24110_readreg(state,0x5)|0x08); 168 cx24110_writereg(state,0x5,cx24110_readreg(state,0x5)|0x08);
169 /* Initial value 1 at start of acq */ 169 /* Initial value 1 at start of acq */
170 cx24110_writereg(state,0x22,cx24110_readreg(state,0x22)|0x10); 170 cx24110_writereg(state,0x22,cx24110_readreg(state,0x22)|0x10);
171 /* current value 1 */ 171 /* current value 1 */
172 break; 172 break;
173 case INVERSION_AUTO: 173 case INVERSION_AUTO:
174 cx24110_writereg(state,0x37,cx24110_readreg(state,0x37)&0xfe); 174 cx24110_writereg(state,0x37,cx24110_readreg(state,0x37)&0xfe);
175 /* AcqSpectrInvDis off. Leave initial & current states as is */ 175 /* AcqSpectrInvDis off. Leave initial & current states as is */
176 break; 176 break;
177 default: 177 default:
178 return -EINVAL; 178 return -EINVAL;
179 } 179 }
@@ -185,18 +185,18 @@ static int cx24110_set_fec (struct cx24110_state* state, fe_code_rate_t fec)
185{ 185{
186/* fixme (low): error handling */ 186/* fixme (low): error handling */
187 187
188 static const int rate[]={-1,1,2,3,5,7,-1}; 188 static const int rate[]={-1,1,2,3,5,7,-1};
189 static const int g1[]={-1,0x01,0x02,0x05,0x15,0x45,-1}; 189 static const int g1[]={-1,0x01,0x02,0x05,0x15,0x45,-1};
190 static const int g2[]={-1,0x01,0x03,0x06,0x1a,0x7a,-1}; 190 static const int g2[]={-1,0x01,0x03,0x06,0x1a,0x7a,-1};
191 191
192 /* Well, the AutoAcq engine of the cx24106 and 24110 automatically 192 /* Well, the AutoAcq engine of the cx24106 and 24110 automatically
193 searches all enabled viterbi rates, and can handle non-standard 193 searches all enabled viterbi rates, and can handle non-standard
194 rates as well. */ 194 rates as well. */
195 195
196 if (fec>FEC_AUTO) 196 if (fec>FEC_AUTO)
197 fec=FEC_AUTO; 197 fec=FEC_AUTO;
198 198
199 if (fec==FEC_AUTO) { /* (re-)establish AutoAcq behaviour */ 199 if (fec==FEC_AUTO) { /* (re-)establish AutoAcq behaviour */
200 cx24110_writereg(state,0x37,cx24110_readreg(state,0x37)&0xdf); 200 cx24110_writereg(state,0x37,cx24110_readreg(state,0x37)&0xdf);
201 /* clear AcqVitDis bit */ 201 /* clear AcqVitDis bit */
202 cx24110_writereg(state,0x18,0xae); 202 cx24110_writereg(state,0x18,0xae);
@@ -208,7 +208,7 @@ static int cx24110_set_fec (struct cx24110_state* state, fe_code_rate_t fec)
208 cx24110_writereg(state,0x1a,0x05); cx24110_writereg(state,0x1b,0x06); 208 cx24110_writereg(state,0x1a,0x05); cx24110_writereg(state,0x1b,0x06);
209 /* set the puncture registers for code rate 3/4 */ 209 /* set the puncture registers for code rate 3/4 */
210 return 0; 210 return 0;
211 } else { 211 } else {
212 cx24110_writereg(state,0x37,cx24110_readreg(state,0x37)|0x20); 212 cx24110_writereg(state,0x37,cx24110_readreg(state,0x37)|0x20);
213 /* set AcqVitDis bit */ 213 /* set AcqVitDis bit */
214 if(rate[fec]>0) { 214 if(rate[fec]>0) {
@@ -219,10 +219,10 @@ static int cx24110_set_fec (struct cx24110_state* state, fe_code_rate_t fec)
219 cx24110_writereg(state,0x1a,g1[fec]); 219 cx24110_writereg(state,0x1a,g1[fec]);
220 cx24110_writereg(state,0x1b,g2[fec]); 220 cx24110_writereg(state,0x1b,g2[fec]);
221 /* not sure if this is the right way: I always used AutoAcq mode */ 221 /* not sure if this is the right way: I always used AutoAcq mode */
222 } else 222 } else
223 return -EOPNOTSUPP; 223 return -EOPNOTSUPP;
224/* fixme (low): which is the correct return code? */ 224/* fixme (low): which is the correct return code? */
225 }; 225 };
226 return 0; 226 return 0;
227} 227}
228 228
@@ -245,72 +245,72 @@ static fe_code_rate_t cx24110_get_fec (struct cx24110_state* state)
245static int cx24110_set_symbolrate (struct cx24110_state* state, u32 srate) 245static int cx24110_set_symbolrate (struct cx24110_state* state, u32 srate)
246{ 246{
247/* fixme (low): add error handling */ 247/* fixme (low): add error handling */
248 u32 ratio; 248 u32 ratio;
249 u32 tmp, fclk, BDRI; 249 u32 tmp, fclk, BDRI;
250 250
251 static const u32 bands[]={5000000UL,15000000UL,90999000UL/2}; 251 static const u32 bands[]={5000000UL,15000000UL,90999000UL/2};
252 int i; 252 int i;
253 253
254dprintk("cx24110 debug: entering %s(%d)\n",__FUNCTION__,srate); 254dprintk("cx24110 debug: entering %s(%d)\n",__FUNCTION__,srate);
255 if (srate>90999000UL/2) 255 if (srate>90999000UL/2)
256 srate=90999000UL/2; 256 srate=90999000UL/2;
257 if (srate<500000) 257 if (srate<500000)
258 srate=500000; 258 srate=500000;
259 259
260 for(i=0;(i<sizeof(bands)/sizeof(bands[0]))&&(srate>bands[i]);i++) 260 for(i=0;(i<sizeof(bands)/sizeof(bands[0]))&&(srate>bands[i]);i++)
261 ; 261 ;
262 /* first, check which sample rate is appropriate: 45, 60 80 or 90 MHz, 262 /* first, check which sample rate is appropriate: 45, 60 80 or 90 MHz,
263 and set the PLL accordingly (R07[1:0] Fclk, R06[7:4] PLLmult, 263 and set the PLL accordingly (R07[1:0] Fclk, R06[7:4] PLLmult,
264 R06[3:0] PLLphaseDetGain */ 264 R06[3:0] PLLphaseDetGain */
265 tmp=cx24110_readreg(state,0x07)&0xfc; 265 tmp=cx24110_readreg(state,0x07)&0xfc;
266 if(srate<90999000UL/4) { /* sample rate 45MHz*/ 266 if(srate<90999000UL/4) { /* sample rate 45MHz*/
267 cx24110_writereg(state,0x07,tmp); 267 cx24110_writereg(state,0x07,tmp);
268 cx24110_writereg(state,0x06,0x78); 268 cx24110_writereg(state,0x06,0x78);
269 fclk=90999000UL/2; 269 fclk=90999000UL/2;
270 } else if(srate<60666000UL/2) { /* sample rate 60MHz */ 270 } else if(srate<60666000UL/2) { /* sample rate 60MHz */
271 cx24110_writereg(state,0x07,tmp|0x1); 271 cx24110_writereg(state,0x07,tmp|0x1);
272 cx24110_writereg(state,0x06,0xa5); 272 cx24110_writereg(state,0x06,0xa5);
273 fclk=60666000UL; 273 fclk=60666000UL;
274 } else if(srate<80888000UL/2) { /* sample rate 80MHz */ 274 } else if(srate<80888000UL/2) { /* sample rate 80MHz */
275 cx24110_writereg(state,0x07,tmp|0x2); 275 cx24110_writereg(state,0x07,tmp|0x2);
276 cx24110_writereg(state,0x06,0x87); 276 cx24110_writereg(state,0x06,0x87);
277 fclk=80888000UL; 277 fclk=80888000UL;
278 } else { /* sample rate 90MHz */ 278 } else { /* sample rate 90MHz */
279 cx24110_writereg(state,0x07,tmp|0x3); 279 cx24110_writereg(state,0x07,tmp|0x3);
280 cx24110_writereg(state,0x06,0x78); 280 cx24110_writereg(state,0x06,0x78);
281 fclk=90999000UL; 281 fclk=90999000UL;
282 }; 282 };
283 dprintk("cx24110 debug: fclk %d Hz\n",fclk); 283 dprintk("cx24110 debug: fclk %d Hz\n",fclk);
284 /* we need to divide two integers with approx. 27 bits in 32 bit 284 /* we need to divide two integers with approx. 27 bits in 32 bit
285 arithmetic giving a 25 bit result */ 285 arithmetic giving a 25 bit result */
286 /* the maximum dividend is 90999000/2, 0x02b6446c, this number is 286 /* the maximum dividend is 90999000/2, 0x02b6446c, this number is
287 also the most complex divisor. Hence, the dividend has, 287 also the most complex divisor. Hence, the dividend has,
288 assuming 32bit unsigned arithmetic, 6 clear bits on top, the 288 assuming 32bit unsigned arithmetic, 6 clear bits on top, the
289 divisor 2 unused bits at the bottom. Also, the quotient is 289 divisor 2 unused bits at the bottom. Also, the quotient is
290 always less than 1/2. Borrowed from VES1893.c, of course */ 290 always less than 1/2. Borrowed from VES1893.c, of course */
291 291
292 tmp=srate<<6; 292 tmp=srate<<6;
293 BDRI=fclk>>2; 293 BDRI=fclk>>2;
294 ratio=(tmp/BDRI); 294 ratio=(tmp/BDRI);
295 295
296 tmp=(tmp%BDRI)<<8; 296 tmp=(tmp%BDRI)<<8;
297 ratio=(ratio<<8)+(tmp/BDRI); 297 ratio=(ratio<<8)+(tmp/BDRI);
298 298
299 tmp=(tmp%BDRI)<<8; 299 tmp=(tmp%BDRI)<<8;
300 ratio=(ratio<<8)+(tmp/BDRI); 300 ratio=(ratio<<8)+(tmp/BDRI);
301 301
302 tmp=(tmp%BDRI)<<1; 302 tmp=(tmp%BDRI)<<1;
303 ratio=(ratio<<1)+(tmp/BDRI); 303 ratio=(ratio<<1)+(tmp/BDRI);
304 304
305 dprintk("srate= %d (range %d, up to %d)\n", srate,i,bands[i]); 305 dprintk("srate= %d (range %d, up to %d)\n", srate,i,bands[i]);
306 dprintk("fclk = %d\n", fclk); 306 dprintk("fclk = %d\n", fclk);
307 dprintk("ratio= %08x\n", ratio); 307 dprintk("ratio= %08x\n", ratio);
308 308
309 cx24110_writereg(state, 0x1, (ratio>>16)&0xff); 309 cx24110_writereg(state, 0x1, (ratio>>16)&0xff);
310 cx24110_writereg(state, 0x2, (ratio>>8)&0xff); 310 cx24110_writereg(state, 0x2, (ratio>>8)&0xff);
311 cx24110_writereg(state, 0x3, (ratio)&0xff); 311 cx24110_writereg(state, 0x3, (ratio)&0xff);
312 312
313 return 0; 313 return 0;
314 314
315} 315}
316 316
@@ -324,48 +324,48 @@ int cx24110_pll_write (struct dvb_frontend* fe, u32 data)
324 324
325 dprintk("cx24110 debug: cx24108_write(%8.8x)\n",data); 325 dprintk("cx24110 debug: cx24108_write(%8.8x)\n",data);
326 326
327 cx24110_writereg(state,0x6d,0x30); /* auto mode at 62kHz */ 327 cx24110_writereg(state,0x6d,0x30); /* auto mode at 62kHz */
328 cx24110_writereg(state,0x70,0x15); /* auto mode 21 bits */ 328 cx24110_writereg(state,0x70,0x15); /* auto mode 21 bits */
329 329
330 /* if the auto tuner writer is still busy, clear it out */ 330 /* if the auto tuner writer is still busy, clear it out */
331 while (cx24110_readreg(state,0x6d)&0x80) 331 while (cx24110_readreg(state,0x6d)&0x80)
332 cx24110_writereg(state,0x72,0); 332 cx24110_writereg(state,0x72,0);
333 333
334 /* write the topmost 8 bits */ 334 /* write the topmost 8 bits */
335 cx24110_writereg(state,0x72,(data>>24)&0xff); 335 cx24110_writereg(state,0x72,(data>>24)&0xff);
336 336
337 /* wait for the send to be completed */ 337 /* wait for the send to be completed */
338 while ((cx24110_readreg(state,0x6d)&0xc0)==0x80) 338 while ((cx24110_readreg(state,0x6d)&0xc0)==0x80)
339 ; 339 ;
340 340
341 /* send another 8 bytes */ 341 /* send another 8 bytes */
342 cx24110_writereg(state,0x72,(data>>16)&0xff); 342 cx24110_writereg(state,0x72,(data>>16)&0xff);
343 while ((cx24110_readreg(state,0x6d)&0xc0)==0x80) 343 while ((cx24110_readreg(state,0x6d)&0xc0)==0x80)
344 ; 344 ;
345 345
346 /* and the topmost 5 bits of this byte */ 346 /* and the topmost 5 bits of this byte */
347 cx24110_writereg(state,0x72,(data>>8)&0xff); 347 cx24110_writereg(state,0x72,(data>>8)&0xff);
348 while ((cx24110_readreg(state,0x6d)&0xc0)==0x80) 348 while ((cx24110_readreg(state,0x6d)&0xc0)==0x80)
349 ; 349 ;
350 350
351 /* now strobe the enable line once */ 351 /* now strobe the enable line once */
352 cx24110_writereg(state,0x6d,0x32); 352 cx24110_writereg(state,0x6d,0x32);
353 cx24110_writereg(state,0x6d,0x30); 353 cx24110_writereg(state,0x6d,0x30);
354 354
355 return 0; 355 return 0;
356} 356}
357 357
358static int cx24110_initfe(struct dvb_frontend* fe) 358static int cx24110_initfe(struct dvb_frontend* fe)
359{ 359{
360 struct cx24110_state *state = fe->demodulator_priv; 360 struct cx24110_state *state = fe->demodulator_priv;
361/* fixme (low): error handling */ 361/* fixme (low): error handling */
362 int i; 362 int i;
363 363
364 dprintk("%s: init chip\n", __FUNCTION__); 364 dprintk("%s: init chip\n", __FUNCTION__);
365 365
366 for(i=0;i<sizeof(cx24110_regdata)/sizeof(cx24110_regdata[0]);i++) { 366 for(i=0;i<sizeof(cx24110_regdata)/sizeof(cx24110_regdata[0]);i++) {
367 cx24110_writereg(state, cx24110_regdata[i].reg, cx24110_regdata[i].data); 367 cx24110_writereg(state, cx24110_regdata[i].reg, cx24110_regdata[i].data);
368 }; 368 };
369 369
370 if (state->config->pll_init) state->config->pll_init(fe); 370 if (state->config->pll_init) state->config->pll_init(fe);
371 371
diff --git a/drivers/media/dvb/frontends/l64781.c b/drivers/media/dvb/frontends/l64781.c
index 19b4bf7c21a7..1c7c91224472 100644
--- a/drivers/media/dvb/frontends/l64781.c
+++ b/drivers/media/dvb/frontends/l64781.c
@@ -2,7 +2,7 @@
2 driver for LSI L64781 COFDM demodulator 2 driver for LSI L64781 COFDM demodulator
3 3
4 Copyright (C) 2001 Holger Waechtler for Convergence Integrated Media GmbH 4 Copyright (C) 2001 Holger Waechtler for Convergence Integrated Media GmbH
5 Marko Kohtala <marko.kohtala@luukku.com> 5 Marko Kohtala <marko.kohtala@luukku.com>
6 6
7 This program is free software; you can redistribute it and/or modify 7 This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by 8 it under the terms of the GNU General Public License as published by
@@ -433,7 +433,7 @@ static int l64781_init(struct dvb_frontend* fe)
433{ 433{
434 struct l64781_state* state = fe->demodulator_priv; 434 struct l64781_state* state = fe->demodulator_priv;
435 435
436 reset_and_configure (state); 436 reset_and_configure (state);
437 437
438 /* Power up */ 438 /* Power up */
439 l64781_writereg (state, 0x3e, 0xa5); 439 l64781_writereg (state, 0x3e, 0xa5);
@@ -456,9 +456,9 @@ static int l64781_init(struct dvb_frontend* fe)
456 l64781_writereg (state, 0x0d, 0x8c); 456 l64781_writereg (state, 0x0d, 0x8c);
457 457
458 /* With ppm=8000, it seems the DTR_SENSITIVITY will result in 458 /* With ppm=8000, it seems the DTR_SENSITIVITY will result in
459 value of 2 with all possible bandwidths and guard 459 value of 2 with all possible bandwidths and guard
460 intervals, which is the initial value anyway. */ 460 intervals, which is the initial value anyway. */
461 /*l64781_writereg (state, 0x19, 0x92);*/ 461 /*l64781_writereg (state, 0x19, 0x92);*/
462 462
463 /* Everything is two's complement, soft bit and CSI_OUT too */ 463 /* Everything is two's complement, soft bit and CSI_OUT too */
464 l64781_writereg (state, 0x1e, 0x09); 464 l64781_writereg (state, 0x1e, 0x09);
@@ -477,10 +477,10 @@ static int l64781_init(struct dvb_frontend* fe)
477static int l64781_get_tune_settings(struct dvb_frontend* fe, 477static int l64781_get_tune_settings(struct dvb_frontend* fe,
478 struct dvb_frontend_tune_settings* fesettings) 478 struct dvb_frontend_tune_settings* fesettings)
479{ 479{
480 fesettings->min_delay_ms = 4000; 480 fesettings->min_delay_ms = 4000;
481 fesettings->step_size = 0; 481 fesettings->step_size = 0;
482 fesettings->max_drift = 0; 482 fesettings->max_drift = 0;
483 return 0; 483 return 0;
484} 484}
485 485
486static void l64781_release(struct dvb_frontend* fe) 486static void l64781_release(struct dvb_frontend* fe)
@@ -522,7 +522,7 @@ struct dvb_frontend* l64781_attach(const struct l64781_config* config,
522 522
523 /* The chip always responds to reads */ 523 /* The chip always responds to reads */
524 if (i2c_transfer(state->i2c, msg, 2) != 2) { 524 if (i2c_transfer(state->i2c, msg, 2) != 2) {
525 dprintk("No response to read on I2C bus\n"); 525 dprintk("No response to read on I2C bus\n");
526 goto error; 526 goto error;
527 } 527 }
528 528
@@ -531,7 +531,7 @@ struct dvb_frontend* l64781_attach(const struct l64781_config* config,
531 531
532 /* Reading the POWER_DOWN register always returns 0 */ 532 /* Reading the POWER_DOWN register always returns 0 */
533 if (reg0x3e != 0) { 533 if (reg0x3e != 0) {
534 dprintk("Device doesn't look like L64781\n"); 534 dprintk("Device doesn't look like L64781\n");
535 goto error; 535 goto error;
536 } 536 }
537 537
@@ -540,7 +540,7 @@ struct dvb_frontend* l64781_attach(const struct l64781_config* config,
540 540
541 /* Responds to all reads with 0 */ 541 /* Responds to all reads with 0 */
542 if (l64781_readreg(state, 0x1a) != 0) { 542 if (l64781_readreg(state, 0x1a) != 0) {
543 dprintk("Read 1 returned unexpcted value\n"); 543 dprintk("Read 1 returned unexpcted value\n");
544 goto error; 544 goto error;
545 } 545 }
546 546
@@ -549,7 +549,7 @@ struct dvb_frontend* l64781_attach(const struct l64781_config* config,
549 549
550 /* Responds with register default value */ 550 /* Responds with register default value */
551 if (l64781_readreg(state, 0x1a) != 0xa1) { 551 if (l64781_readreg(state, 0x1a) != 0xa1) {
552 dprintk("Read 2 returned unexpcted value\n"); 552 dprintk("Read 2 returned unexpcted value\n");
553 goto error; 553 goto error;
554 } 554 }
555 555
diff --git a/drivers/media/dvb/frontends/l64781.h b/drivers/media/dvb/frontends/l64781.h
index 7e30fb0fdfa7..947f65f87465 100644
--- a/drivers/media/dvb/frontends/l64781.h
+++ b/drivers/media/dvb/frontends/l64781.h
@@ -2,7 +2,7 @@
2 driver for LSI L64781 COFDM demodulator 2 driver for LSI L64781 COFDM demodulator
3 3
4 Copyright (C) 2001 Holger Waechtler for Convergence Integrated Media GmbH 4 Copyright (C) 2001 Holger Waechtler for Convergence Integrated Media GmbH
5 Marko Kohtala <marko.kohtala@luukku.com> 5 Marko Kohtala <marko.kohtala@luukku.com>
6 6
7 This program is free software; you can redistribute it and/or modify 7 This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by 8 it under the terms of the GNU General Public License as published by
diff --git a/drivers/media/dvb/frontends/lgdt330x.c b/drivers/media/dvb/frontends/lgdt330x.c
index 6a33f5a19a8d..cb5301865d07 100644
--- a/drivers/media/dvb/frontends/lgdt330x.c
+++ b/drivers/media/dvb/frontends/lgdt330x.c
@@ -301,10 +301,10 @@ static int lgdt330x_set_parameters(struct dvb_frontend* fe,
301 static u8 lgdt3303_8vsb_44_data[] = { 301 static u8 lgdt3303_8vsb_44_data[] = {
302 0x04, 0x00, 302 0x04, 0x00,
303 0x0d, 0x40, 303 0x0d, 0x40,
304 0x0e, 0x87, 304 0x0e, 0x87,
305 0x0f, 0x8e, 305 0x0f, 0x8e,
306 0x10, 0x01, 306 0x10, 0x01,
307 0x47, 0x8b }; 307 0x47, 0x8b };
308 308
309 /* 309 /*
310 * Array of byte pairs <address, value> 310 * Array of byte pairs <address, value>
diff --git a/drivers/media/dvb/frontends/mt312.c b/drivers/media/dvb/frontends/mt312.c
index 9c67f406d581..8d672283c93d 100644
--- a/drivers/media/dvb/frontends/mt312.c
+++ b/drivers/media/dvb/frontends/mt312.c
@@ -554,7 +554,7 @@ static int mt312_set_frontend(struct dvb_frontend* fe,
554 if ((ret = mt312_write(state, SYM_RATE_H, buf, sizeof(buf))) < 0) 554 if ((ret = mt312_write(state, SYM_RATE_H, buf, sizeof(buf))) < 0)
555 return ret; 555 return ret;
556 556
557 mt312_reset(state, 0); 557 mt312_reset(state, 0);
558 558
559 return 0; 559 return 0;
560} 560}
@@ -695,7 +695,7 @@ static struct dvb_frontend_ops vp310_mt312_ops = {
695 FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | 695 FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 |
696 FE_CAN_FEC_3_4 | FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8 | 696 FE_CAN_FEC_3_4 | FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8 |
697 FE_CAN_FEC_AUTO | FE_CAN_QPSK | FE_CAN_MUTE_TS | 697 FE_CAN_FEC_AUTO | FE_CAN_QPSK | FE_CAN_MUTE_TS |
698 FE_CAN_RECOVER 698 FE_CAN_RECOVER
699 }, 699 },
700 700
701 .release = mt312_release, 701 .release = mt312_release,
diff --git a/drivers/media/dvb/frontends/nxt2002.c b/drivers/media/dvb/frontends/nxt2002.c
index 30786b1911bd..52c416043a62 100644
--- a/drivers/media/dvb/frontends/nxt2002.c
+++ b/drivers/media/dvb/frontends/nxt2002.c
@@ -527,7 +527,7 @@ static int nxt2002_read_snr(struct dvb_frontend* fe, u16* snr)
527 else 527 else
528 snrdb = 1000*0 + ( 1000*(12-0) * ( temp2 - 0 ) / ( 0x7C00 - 0 ) ); 528 snrdb = 1000*0 + ( 1000*(12-0) * ( temp2 - 0 ) / ( 0x7C00 - 0 ) );
529 529
530 /* the value reported back from the frontend will be FFFF=32db 0000=0db */ 530 /* the value reported back from the frontend will be FFFF=32db 0000=0db */
531 531
532 *snr = snrdb * (0xFFFF/32000); 532 *snr = snrdb * (0xFFFF/32000);
533 533
@@ -646,7 +646,7 @@ struct dvb_frontend* nxt2002_attach(const struct nxt2002_config* config,
646 memcpy(&state->ops, &nxt2002_ops, sizeof(struct dvb_frontend_ops)); 646 memcpy(&state->ops, &nxt2002_ops, sizeof(struct dvb_frontend_ops));
647 state->initialised = 0; 647 state->initialised = 0;
648 648
649 /* Check the first 5 registers to ensure this a revision we can handle */ 649 /* Check the first 5 registers to ensure this a revision we can handle */
650 650
651 i2c_readbytes(state, 0x00, buf, 5); 651 i2c_readbytes(state, 0x00, buf, 5);
652 if (buf[0] != 0x04) goto error; /* device id */ 652 if (buf[0] != 0x04) goto error; /* device id */
@@ -672,7 +672,7 @@ static struct dvb_frontend_ops nxt2002_ops = {
672 .type = FE_ATSC, 672 .type = FE_ATSC,
673 .frequency_min = 54000000, 673 .frequency_min = 54000000,
674 .frequency_max = 860000000, 674 .frequency_max = 860000000,
675 /* stepsize is just a guess */ 675 /* stepsize is just a guess */
676 .frequency_stepsize = 166666, 676 .frequency_stepsize = 166666,
677 .caps = FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 | 677 .caps = FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 |
678 FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8 | FE_CAN_FEC_AUTO | 678 FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8 | FE_CAN_FEC_AUTO |
diff --git a/drivers/media/dvb/frontends/nxt200x.c b/drivers/media/dvb/frontends/nxt200x.c
index 84b62881cea7..aeafef46e3eb 100644
--- a/drivers/media/dvb/frontends/nxt200x.c
+++ b/drivers/media/dvb/frontends/nxt200x.c
@@ -339,7 +339,7 @@ static int nxt200x_writetuner (struct nxt200x_state* state, u8* data)
339 switch (state->demod_chip) { 339 switch (state->demod_chip) {
340 case NXT2004: 340 case NXT2004:
341 if (i2c_writebytes(state, state->config->pll_address, data, 4)) 341 if (i2c_writebytes(state, state->config->pll_address, data, 4))
342 printk(KERN_WARNING "nxt200x: error writing to tuner\n"); 342 printk(KERN_WARNING "nxt200x: error writing to tuner\n");
343 /* wait until we have a lock */ 343 /* wait until we have a lock */
344 while (count < 20) { 344 while (count < 20) {
345 i2c_readbytes(state, state->config->pll_address, &buf, 1); 345 i2c_readbytes(state, state->config->pll_address, &buf, 1);
@@ -497,7 +497,7 @@ static int nxt2004_load_firmware (struct dvb_frontend* fe, const struct firmware
497 497
498 /* calculate firmware CRC */ 498 /* calculate firmware CRC */
499 for (position = 0; position < fw->size; position++) { 499 for (position = 0; position < fw->size; position++) {
500 crc = nxt200x_crc(crc, fw->data[position]); 500 crc = nxt200x_crc(crc, fw->data[position]);
501 } 501 }
502 502
503 buf[0] = rambase >> 8; 503 buf[0] = rambase >> 8;
diff --git a/drivers/media/dvb/frontends/nxt6000.c b/drivers/media/dvb/frontends/nxt6000.c
index 88a57b791112..a458a3bfff70 100644
--- a/drivers/media/dvb/frontends/nxt6000.c
+++ b/drivers/media/dvb/frontends/nxt6000.c
@@ -574,11 +574,11 @@ static struct dvb_frontend_ops nxt6000_ops = {
574 .symbol_rate_max = 9360000, /* FIXME */ 574 .symbol_rate_max = 9360000, /* FIXME */
575 .symbol_rate_tolerance = 4000, 575 .symbol_rate_tolerance = 4000,
576 .caps = FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 | 576 .caps = FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 |
577 FE_CAN_FEC_4_5 | FE_CAN_FEC_5_6 | FE_CAN_FEC_6_7 | 577 FE_CAN_FEC_4_5 | FE_CAN_FEC_5_6 | FE_CAN_FEC_6_7 |
578 FE_CAN_FEC_7_8 | FE_CAN_FEC_8_9 | FE_CAN_FEC_AUTO | 578 FE_CAN_FEC_7_8 | FE_CAN_FEC_8_9 | FE_CAN_FEC_AUTO |
579 FE_CAN_QAM_16 | FE_CAN_QAM_64 | FE_CAN_QAM_AUTO | 579 FE_CAN_QAM_16 | FE_CAN_QAM_64 | FE_CAN_QAM_AUTO |
580 FE_CAN_TRANSMISSION_MODE_AUTO | FE_CAN_GUARD_INTERVAL_AUTO | 580 FE_CAN_TRANSMISSION_MODE_AUTO | FE_CAN_GUARD_INTERVAL_AUTO |
581 FE_CAN_HIERARCHY_AUTO, 581 FE_CAN_HIERARCHY_AUTO,
582 }, 582 },
583 583
584 .release = nxt6000_release, 584 .release = nxt6000_release,
diff --git a/drivers/media/dvb/frontends/or51132.c b/drivers/media/dvb/frontends/or51132.c
index 78bded861d02..80e0f28127b7 100644
--- a/drivers/media/dvb/frontends/or51132.c
+++ b/drivers/media/dvb/frontends/or51132.c
@@ -503,7 +503,7 @@ static int or51132_read_signal_strength(struct dvb_frontend* fe, u16* strength)
503 rcvr_stat = rec_buf[1]; 503 rcvr_stat = rec_buf[1];
504 usK = (rcvr_stat & 0x10) ? 3 : 0; 504 usK = (rcvr_stat & 0x10) ? 3 : 0;
505 505
506 /* The value reported back from the frontend will be FFFF=100% 0000=0% */ 506 /* The value reported back from the frontend will be FFFF=100% 0000=0% */
507 signal_strength = (((8952 - i20Log10(snr_equ) - usK*100)/3+5)*65535)/1000; 507 signal_strength = (((8952 - i20Log10(snr_equ) - usK*100)/3+5)*65535)/1000;
508 if (signal_strength > 0xffff) 508 if (signal_strength > 0xffff)
509 *strength = 0xffff; 509 *strength = 0xffff;
diff --git a/drivers/media/dvb/frontends/s5h1420.c b/drivers/media/dvb/frontends/s5h1420.c
index f265418e3261..18715091aed8 100644
--- a/drivers/media/dvb/frontends/s5h1420.c
+++ b/drivers/media/dvb/frontends/s5h1420.c
@@ -494,7 +494,7 @@ static int s5h1420_getfreqoffset(struct s5h1420_state* state)
494} 494}
495 495
496static void s5h1420_setfec_inversion(struct s5h1420_state* state, 496static void s5h1420_setfec_inversion(struct s5h1420_state* state,
497 struct dvb_frontend_parameters *p) 497 struct dvb_frontend_parameters *p)
498{ 498{
499 u8 inversion = 0; 499 u8 inversion = 0;
500 500
@@ -521,8 +521,8 @@ static void s5h1420_setfec_inversion(struct s5h1420_state* state,
521 521
522 case FEC_3_4: 522 case FEC_3_4:
523 s5h1420_writereg(state, 0x30, 0x04); 523 s5h1420_writereg(state, 0x30, 0x04);
524 s5h1420_writereg(state, 0x31, 0x12 | inversion); 524 s5h1420_writereg(state, 0x31, 0x12 | inversion);
525 break; 525 break;
526 526
527 case FEC_5_6: 527 case FEC_5_6:
528 s5h1420_writereg(state, 0x30, 0x08); 528 s5h1420_writereg(state, 0x30, 0x08);
diff --git a/drivers/media/dvb/frontends/s5h1420.h b/drivers/media/dvb/frontends/s5h1420.h
index 872028ddf2a2..73296f13c324 100644
--- a/drivers/media/dvb/frontends/s5h1420.h
+++ b/drivers/media/dvb/frontends/s5h1420.h
@@ -39,6 +39,6 @@ struct s5h1420_config
39}; 39};
40 40
41extern struct dvb_frontend* s5h1420_attach(const struct s5h1420_config* config, 41extern struct dvb_frontend* s5h1420_attach(const struct s5h1420_config* config,
42 struct i2c_adapter* i2c); 42 struct i2c_adapter* i2c);
43 43
44#endif // S5H1420_H 44#endif // S5H1420_H
diff --git a/drivers/media/dvb/frontends/sp8870.c b/drivers/media/dvb/frontends/sp8870.c
index 1c6b2e9264bc..fc06cd6b46c3 100644
--- a/drivers/media/dvb/frontends/sp8870.c
+++ b/drivers/media/dvb/frontends/sp8870.c
@@ -67,16 +67,16 @@ static int debug;
67 67
68static int sp8870_writereg (struct sp8870_state* state, u16 reg, u16 data) 68static int sp8870_writereg (struct sp8870_state* state, u16 reg, u16 data)
69{ 69{
70 u8 buf [] = { reg >> 8, reg & 0xff, data >> 8, data & 0xff }; 70 u8 buf [] = { reg >> 8, reg & 0xff, data >> 8, data & 0xff };
71 struct i2c_msg msg = { .addr = state->config->demod_address, .flags = 0, .buf = buf, .len = 4 }; 71 struct i2c_msg msg = { .addr = state->config->demod_address, .flags = 0, .buf = buf, .len = 4 };
72 int err; 72 int err;
73 73
74 if ((err = i2c_transfer (state->i2c, &msg, 1)) != 1) { 74 if ((err = i2c_transfer (state->i2c, &msg, 1)) != 1) {
75 dprintk ("%s: writereg error (err == %i, reg == 0x%02x, data == 0x%02x)\n", __FUNCTION__, err, reg, data); 75 dprintk ("%s: writereg error (err == %i, reg == 0x%02x, data == 0x%02x)\n", __FUNCTION__, err, reg, data);
76 return -EREMOTEIO; 76 return -EREMOTEIO;
77 } 77 }
78 78
79 return 0; 79 return 0;
80} 80}
81 81
82static int sp8870_readreg (struct sp8870_state* state, u16 reg) 82static int sp8870_readreg (struct sp8870_state* state, u16 reg)
@@ -305,7 +305,7 @@ static int sp8870_set_frontend_parameters (struct dvb_frontend* fe,
305static int sp8870_init (struct dvb_frontend* fe) 305static int sp8870_init (struct dvb_frontend* fe)
306{ 306{
307 struct sp8870_state* state = fe->demodulator_priv; 307 struct sp8870_state* state = fe->demodulator_priv;
308 const struct firmware *fw = NULL; 308 const struct firmware *fw = NULL;
309 309
310 sp8870_wake_up(state); 310 sp8870_wake_up(state);
311 if (state->initialised) return 0; 311 if (state->initialised) return 0;
@@ -534,10 +534,10 @@ static int sp8870_sleep(struct dvb_frontend* fe)
534 534
535static int sp8870_get_tune_settings(struct dvb_frontend* fe, struct dvb_frontend_tune_settings* fesettings) 535static int sp8870_get_tune_settings(struct dvb_frontend* fe, struct dvb_frontend_tune_settings* fesettings)
536{ 536{
537 fesettings->min_delay_ms = 350; 537 fesettings->min_delay_ms = 350;
538 fesettings->step_size = 0; 538 fesettings->step_size = 0;
539 fesettings->max_drift = 0; 539 fesettings->max_drift = 0;
540 return 0; 540 return 0;
541} 541}
542 542
543static void sp8870_release(struct dvb_frontend* fe) 543static void sp8870_release(struct dvb_frontend* fe)
diff --git a/drivers/media/dvb/frontends/sp887x.c b/drivers/media/dvb/frontends/sp887x.c
index 73384e75625e..e3b665782243 100644
--- a/drivers/media/dvb/frontends/sp887x.c
+++ b/drivers/media/dvb/frontends/sp887x.c
@@ -80,7 +80,7 @@ static int sp887x_readreg (struct sp887x_state* state, u16 reg)
80 u8 b1 [2]; 80 u8 b1 [2];
81 int ret; 81 int ret;
82 struct i2c_msg msg[] = {{ .addr = state->config->demod_address, .flags = 0, .buf = b0, .len = 2 }, 82 struct i2c_msg msg[] = {{ .addr = state->config->demod_address, .flags = 0, .buf = b0, .len = 2 },
83 { .addr = state->config->demod_address, .flags = I2C_M_RD, .buf = b1, .len = 2 }}; 83 { .addr = state->config->demod_address, .flags = I2C_M_RD, .buf = b1, .len = 2 }};
84 84
85 if ((ret = i2c_transfer(state->i2c, msg, 2)) != 2) { 85 if ((ret = i2c_transfer(state->i2c, msg, 2)) != 2) {
86 printk("%s: readreg error (ret == %i)\n", __FUNCTION__, ret); 86 printk("%s: readreg error (ret == %i)\n", __FUNCTION__, ret);
@@ -498,7 +498,7 @@ static int sp887x_sleep(struct dvb_frontend* fe)
498static int sp887x_init(struct dvb_frontend* fe) 498static int sp887x_init(struct dvb_frontend* fe)
499{ 499{
500 struct sp887x_state* state = fe->demodulator_priv; 500 struct sp887x_state* state = fe->demodulator_priv;
501 const struct firmware *fw = NULL; 501 const struct firmware *fw = NULL;
502 int ret; 502 int ret;
503 503
504 if (!state->initialised) { 504 if (!state->initialised) {
@@ -528,10 +528,10 @@ static int sp887x_init(struct dvb_frontend* fe)
528 528
529static int sp887x_get_tune_settings(struct dvb_frontend* fe, struct dvb_frontend_tune_settings* fesettings) 529static int sp887x_get_tune_settings(struct dvb_frontend* fe, struct dvb_frontend_tune_settings* fesettings)
530{ 530{
531 fesettings->min_delay_ms = 350; 531 fesettings->min_delay_ms = 350;
532 fesettings->step_size = 166666*2; 532 fesettings->step_size = 166666*2;
533 fesettings->max_drift = (166666*2)+1; 533 fesettings->max_drift = (166666*2)+1;
534 return 0; 534 return 0;
535} 535}
536 536
537static void sp887x_release(struct dvb_frontend* fe) 537static void sp887x_release(struct dvb_frontend* fe)
@@ -581,7 +581,7 @@ static struct dvb_frontend_ops sp887x_ops = {
581 .caps = FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 | 581 .caps = FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 |
582 FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8 | FE_CAN_FEC_AUTO | 582 FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8 | FE_CAN_FEC_AUTO |
583 FE_CAN_QPSK | FE_CAN_QAM_16 | FE_CAN_QAM_64 | 583 FE_CAN_QPSK | FE_CAN_QAM_16 | FE_CAN_QAM_64 |
584 FE_CAN_RECOVER 584 FE_CAN_RECOVER
585 }, 585 },
586 586
587 .release = sp887x_release, 587 .release = sp887x_release,
diff --git a/drivers/media/dvb/frontends/stv0299.c b/drivers/media/dvb/frontends/stv0299.c
index 29c48665e130..177d71d56b67 100644
--- a/drivers/media/dvb/frontends/stv0299.c
+++ b/drivers/media/dvb/frontends/stv0299.c
@@ -95,7 +95,7 @@ static int stv0299_writeregI (struct stv0299_state* state, u8 reg, u8 data)
95 95
96int stv0299_writereg (struct dvb_frontend* fe, u8 reg, u8 data) 96int stv0299_writereg (struct dvb_frontend* fe, u8 reg, u8 data)
97{ 97{
98 struct stv0299_state* state = fe->demodulator_priv; 98 struct stv0299_state* state = fe->demodulator_priv;
99 99
100 return stv0299_writeregI(state, reg, data); 100 return stv0299_writeregI(state, reg, data);
101} 101}
@@ -220,7 +220,7 @@ static int stv0299_wait_diseqc_idle (struct stv0299_state* state, int timeout)
220 220
221static int stv0299_set_symbolrate (struct dvb_frontend* fe, u32 srate) 221static int stv0299_set_symbolrate (struct dvb_frontend* fe, u32 srate)
222{ 222{
223 struct stv0299_state* state = fe->demodulator_priv; 223 struct stv0299_state* state = fe->demodulator_priv;
224 u64 big = srate; 224 u64 big = srate;
225 u32 ratio; 225 u32 ratio;
226 226
@@ -271,7 +271,7 @@ static int stv0299_get_symbolrate (struct stv0299_state* state)
271static int stv0299_send_diseqc_msg (struct dvb_frontend* fe, 271static int stv0299_send_diseqc_msg (struct dvb_frontend* fe,
272 struct dvb_diseqc_master_cmd *m) 272 struct dvb_diseqc_master_cmd *m)
273{ 273{
274 struct stv0299_state* state = fe->demodulator_priv; 274 struct stv0299_state* state = fe->demodulator_priv;
275 u8 val; 275 u8 val;
276 int i; 276 int i;
277 277
@@ -301,7 +301,7 @@ static int stv0299_send_diseqc_msg (struct dvb_frontend* fe,
301 301
302static int stv0299_send_diseqc_burst (struct dvb_frontend* fe, fe_sec_mini_cmd_t burst) 302static int stv0299_send_diseqc_burst (struct dvb_frontend* fe, fe_sec_mini_cmd_t burst)
303{ 303{
304 struct stv0299_state* state = fe->demodulator_priv; 304 struct stv0299_state* state = fe->demodulator_priv;
305 u8 val; 305 u8 val;
306 306
307 dprintk ("%s\n", __FUNCTION__); 307 dprintk ("%s\n", __FUNCTION__);
@@ -328,7 +328,7 @@ static int stv0299_send_diseqc_burst (struct dvb_frontend* fe, fe_sec_mini_cmd_t
328 328
329static int stv0299_set_tone (struct dvb_frontend* fe, fe_sec_tone_mode_t tone) 329static int stv0299_set_tone (struct dvb_frontend* fe, fe_sec_tone_mode_t tone)
330{ 330{
331 struct stv0299_state* state = fe->demodulator_priv; 331 struct stv0299_state* state = fe->demodulator_priv;
332 u8 val; 332 u8 val;
333 333
334 if (stv0299_wait_diseqc_idle (state, 100) < 0) 334 if (stv0299_wait_diseqc_idle (state, 100) < 0)
@@ -350,7 +350,7 @@ static int stv0299_set_tone (struct dvb_frontend* fe, fe_sec_tone_mode_t tone)
350 350
351static int stv0299_set_voltage (struct dvb_frontend* fe, fe_sec_voltage_t voltage) 351static int stv0299_set_voltage (struct dvb_frontend* fe, fe_sec_voltage_t voltage)
352{ 352{
353 struct stv0299_state* state = fe->demodulator_priv; 353 struct stv0299_state* state = fe->demodulator_priv;
354 u8 reg0x08; 354 u8 reg0x08;
355 u8 reg0x0c; 355 u8 reg0x0c;
356 356
@@ -442,7 +442,7 @@ static int stv0299_send_legacy_dish_cmd (struct dvb_frontend* fe, u32 cmd)
442 442
443static int stv0299_init (struct dvb_frontend* fe) 443static int stv0299_init (struct dvb_frontend* fe)
444{ 444{
445 struct stv0299_state* state = fe->demodulator_priv; 445 struct stv0299_state* state = fe->demodulator_priv;
446 int i; 446 int i;
447 447
448 dprintk("stv0299: init chip\n"); 448 dprintk("stv0299: init chip\n");
@@ -461,7 +461,7 @@ static int stv0299_init (struct dvb_frontend* fe)
461 461
462static int stv0299_read_status(struct dvb_frontend* fe, fe_status_t* status) 462static int stv0299_read_status(struct dvb_frontend* fe, fe_status_t* status)
463{ 463{
464 struct stv0299_state* state = fe->demodulator_priv; 464 struct stv0299_state* state = fe->demodulator_priv;
465 465
466 u8 signal = 0xff - stv0299_readreg (state, 0x18); 466 u8 signal = 0xff - stv0299_readreg (state, 0x18);
467 u8 sync = stv0299_readreg (state, 0x1b); 467 u8 sync = stv0299_readreg (state, 0x1b);
@@ -489,7 +489,7 @@ static int stv0299_read_status(struct dvb_frontend* fe, fe_status_t* status)
489 489
490static int stv0299_read_ber(struct dvb_frontend* fe, u32* ber) 490static int stv0299_read_ber(struct dvb_frontend* fe, u32* ber)
491{ 491{
492 struct stv0299_state* state = fe->demodulator_priv; 492 struct stv0299_state* state = fe->demodulator_priv;
493 493
494 if (state->errmode != STATUS_BER) return 0; 494 if (state->errmode != STATUS_BER) return 0;
495 *ber = (stv0299_readreg (state, 0x1d) << 8) | stv0299_readreg (state, 0x1e); 495 *ber = (stv0299_readreg (state, 0x1d) << 8) | stv0299_readreg (state, 0x1e);
@@ -499,7 +499,7 @@ static int stv0299_read_ber(struct dvb_frontend* fe, u32* ber)
499 499
500static int stv0299_read_signal_strength(struct dvb_frontend* fe, u16* strength) 500static int stv0299_read_signal_strength(struct dvb_frontend* fe, u16* strength)
501{ 501{
502 struct stv0299_state* state = fe->demodulator_priv; 502 struct stv0299_state* state = fe->demodulator_priv;
503 503
504 s32 signal = 0xffff - ((stv0299_readreg (state, 0x18) << 8) 504 s32 signal = 0xffff - ((stv0299_readreg (state, 0x18) << 8)
505 | stv0299_readreg (state, 0x19)); 505 | stv0299_readreg (state, 0x19));
@@ -516,7 +516,7 @@ static int stv0299_read_signal_strength(struct dvb_frontend* fe, u16* strength)
516 516
517static int stv0299_read_snr(struct dvb_frontend* fe, u16* snr) 517static int stv0299_read_snr(struct dvb_frontend* fe, u16* snr)
518{ 518{
519 struct stv0299_state* state = fe->demodulator_priv; 519 struct stv0299_state* state = fe->demodulator_priv;
520 520
521 s32 xsnr = 0xffff - ((stv0299_readreg (state, 0x24) << 8) 521 s32 xsnr = 0xffff - ((stv0299_readreg (state, 0x24) << 8)
522 | stv0299_readreg (state, 0x25)); 522 | stv0299_readreg (state, 0x25));
@@ -528,7 +528,7 @@ static int stv0299_read_snr(struct dvb_frontend* fe, u16* snr)
528 528
529static int stv0299_read_ucblocks(struct dvb_frontend* fe, u32* ucblocks) 529static int stv0299_read_ucblocks(struct dvb_frontend* fe, u32* ucblocks)
530{ 530{
531 struct stv0299_state* state = fe->demodulator_priv; 531 struct stv0299_state* state = fe->demodulator_priv;
532 532
533 if (state->errmode != STATUS_UCBLOCKS) *ucblocks = 0; 533 if (state->errmode != STATUS_UCBLOCKS) *ucblocks = 0;
534 else *ucblocks = (stv0299_readreg (state, 0x1d) << 8) | stv0299_readreg (state, 0x1e); 534 else *ucblocks = (stv0299_readreg (state, 0x1d) << 8) | stv0299_readreg (state, 0x1e);
@@ -538,7 +538,7 @@ static int stv0299_read_ucblocks(struct dvb_frontend* fe, u32* ucblocks)
538 538
539static int stv0299_set_frontend(struct dvb_frontend* fe, struct dvb_frontend_parameters * p) 539static int stv0299_set_frontend(struct dvb_frontend* fe, struct dvb_frontend_parameters * p)
540{ 540{
541 struct stv0299_state* state = fe->demodulator_priv; 541 struct stv0299_state* state = fe->demodulator_priv;
542 int invval = 0; 542 int invval = 0;
543 543
544 dprintk ("%s : FE_SET_FRONTEND\n", __FUNCTION__); 544 dprintk ("%s : FE_SET_FRONTEND\n", __FUNCTION__);
@@ -571,7 +571,7 @@ static int stv0299_set_frontend(struct dvb_frontend* fe, struct dvb_frontend_par
571 571
572static int stv0299_get_frontend(struct dvb_frontend* fe, struct dvb_frontend_parameters * p) 572static int stv0299_get_frontend(struct dvb_frontend* fe, struct dvb_frontend_parameters * p)
573{ 573{
574 struct stv0299_state* state = fe->demodulator_priv; 574 struct stv0299_state* state = fe->demodulator_priv;
575 s32 derot_freq; 575 s32 derot_freq;
576 int invval; 576 int invval;
577 577
@@ -596,7 +596,7 @@ static int stv0299_get_frontend(struct dvb_frontend* fe, struct dvb_frontend_par
596 596
597static int stv0299_sleep(struct dvb_frontend* fe) 597static int stv0299_sleep(struct dvb_frontend* fe)
598{ 598{
599 struct stv0299_state* state = fe->demodulator_priv; 599 struct stv0299_state* state = fe->demodulator_priv;
600 600
601 stv0299_writeregI(state, 0x02, 0x80); 601 stv0299_writeregI(state, 0x02, 0x80);
602 state->initialised = 0; 602 state->initialised = 0;
@@ -606,7 +606,7 @@ static int stv0299_sleep(struct dvb_frontend* fe)
606 606
607static int stv0299_get_tune_settings(struct dvb_frontend* fe, struct dvb_frontend_tune_settings* fesettings) 607static int stv0299_get_tune_settings(struct dvb_frontend* fe, struct dvb_frontend_tune_settings* fesettings)
608{ 608{
609 struct stv0299_state* state = fe->demodulator_priv; 609 struct stv0299_state* state = fe->demodulator_priv;
610 610
611 fesettings->min_delay_ms = state->config->min_delay_ms; 611 fesettings->min_delay_ms = state->config->min_delay_ms;
612 if (fesettings->parameters.u.qpsk.symbol_rate < 10000000) { 612 if (fesettings->parameters.u.qpsk.symbol_rate < 10000000) {
@@ -658,7 +658,7 @@ struct dvb_frontend* stv0299_attach(const struct stv0299_config* config,
658 658
659 /* create dvb_frontend */ 659 /* create dvb_frontend */
660 state->frontend.ops = &state->ops; 660 state->frontend.ops = &state->ops;
661 state->frontend.demodulator_priv = state; 661 state->frontend.demodulator_priv = state;
662 return &state->frontend; 662 return &state->frontend;
663 663
664error: 664error:
@@ -714,7 +714,7 @@ MODULE_PARM_DESC(debug, "Turn on/off frontend debugging (default:off).");
714 714
715MODULE_DESCRIPTION("ST STV0299 DVB Demodulator driver"); 715MODULE_DESCRIPTION("ST STV0299 DVB Demodulator driver");
716MODULE_AUTHOR("Ralph Metzler, Holger Waechtler, Peter Schildmann, Felix Domke, " 716MODULE_AUTHOR("Ralph Metzler, Holger Waechtler, Peter Schildmann, Felix Domke, "
717 "Andreas Oberritter, Andrew de Quincey, Kenneth Aafløy"); 717 "Andreas Oberritter, Andrew de Quincey, Kenneth Aafløy");
718MODULE_LICENSE("GPL"); 718MODULE_LICENSE("GPL");
719 719
720EXPORT_SYMBOL(stv0299_writereg); 720EXPORT_SYMBOL(stv0299_writereg);
diff --git a/drivers/media/dvb/frontends/tda10021.c b/drivers/media/dvb/frontends/tda10021.c
index eaf130e666d8..425cd19136fe 100644
--- a/drivers/media/dvb/frontends/tda10021.c
+++ b/drivers/media/dvb/frontends/tda10021.c
@@ -1,10 +1,10 @@
1/* 1/*
2 TDA10021 - Single Chip Cable Channel Receiver driver module 2 TDA10021 - Single Chip Cable Channel Receiver driver module
3 used on the the Siemens DVB-C cards 3 used on the the Siemens DVB-C cards
4 4
5 Copyright (C) 1999 Convergence Integrated Media GmbH <ralph@convergence.de> 5 Copyright (C) 1999 Convergence Integrated Media GmbH <ralph@convergence.de>
6 Copyright (C) 2004 Markus Schulz <msc@antzsystem.de> 6 Copyright (C) 2004 Markus Schulz <msc@antzsystem.de>
7 Support for TDA10021 7 Support for TDA10021
8 8
9 This program is free software; you can redistribute it and/or modify 9 This program is free software; you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by 10 it under the terms of the GNU General Public License as published by
@@ -76,9 +76,9 @@ static u8 tda10021_inittab[0x40]=
76 76
77static int tda10021_writereg (struct tda10021_state* state, u8 reg, u8 data) 77static int tda10021_writereg (struct tda10021_state* state, u8 reg, u8 data)
78{ 78{
79 u8 buf[] = { reg, data }; 79 u8 buf[] = { reg, data };
80 struct i2c_msg msg = { .addr = state->config->demod_address, .flags = 0, .buf = buf, .len = 2 }; 80 struct i2c_msg msg = { .addr = state->config->demod_address, .flags = 0, .buf = buf, .len = 2 };
81 int ret; 81 int ret;
82 82
83 ret = i2c_transfer (state->i2c, &msg, 1); 83 ret = i2c_transfer (state->i2c, &msg, 1);
84 if (ret != 1) 84 if (ret != 1)
@@ -95,7 +95,7 @@ static u8 tda10021_readreg (struct tda10021_state* state, u8 reg)
95 u8 b0 [] = { reg }; 95 u8 b0 [] = { reg };
96 u8 b1 [] = { 0 }; 96 u8 b1 [] = { 0 };
97 struct i2c_msg msg [] = { { .addr = state->config->demod_address, .flags = 0, .buf = b0, .len = 1 }, 97 struct i2c_msg msg [] = { { .addr = state->config->demod_address, .flags = 0, .buf = b0, .len = 1 },
98 { .addr = state->config->demod_address, .flags = I2C_M_RD, .buf = b1, .len = 1 } }; 98 { .addr = state->config->demod_address, .flags = I2C_M_RD, .buf = b1, .len = 1 } };
99 int ret; 99 int ret;
100 100
101 ret = i2c_transfer (state->i2c, msg, 2); 101 ret = i2c_transfer (state->i2c, msg, 2);
diff --git a/drivers/media/dvb/frontends/tda10021.h b/drivers/media/dvb/frontends/tda10021.h
index 7d6a51ce291e..53be939e8c55 100644
--- a/drivers/media/dvb/frontends/tda10021.h
+++ b/drivers/media/dvb/frontends/tda10021.h
@@ -1,10 +1,10 @@
1/* 1/*
2 TDA10021 - Single Chip Cable Channel Receiver driver module 2 TDA10021 - Single Chip Cable Channel Receiver driver module
3 used on the the Siemens DVB-C cards 3 used on the the Siemens DVB-C cards
4 4
5 Copyright (C) 1999 Convergence Integrated Media GmbH <ralph@convergence.de> 5 Copyright (C) 1999 Convergence Integrated Media GmbH <ralph@convergence.de>
6 Copyright (C) 2004 Markus Schulz <msc@antzsystem.de> 6 Copyright (C) 2004 Markus Schulz <msc@antzsystem.de>
7 Support for TDA10021 7 Support for TDA10021
8 8
9 This program is free software; you can redistribute it and/or modify 9 This program is free software; you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by 10 it under the terms of the GNU General Public License as published by
diff --git a/drivers/media/dvb/frontends/tda1004x.c b/drivers/media/dvb/frontends/tda1004x.c
index 7968743826fc..dd02aff467fe 100644
--- a/drivers/media/dvb/frontends/tda1004x.c
+++ b/drivers/media/dvb/frontends/tda1004x.c
@@ -475,7 +475,7 @@ static int tda10046_fwupload(struct dvb_frontend* fe)
475 ret = state->config->request_firmware(fe, &fw, TDA10046_DEFAULT_FIRMWARE); 475 ret = state->config->request_firmware(fe, &fw, TDA10046_DEFAULT_FIRMWARE);
476 if (ret) { 476 if (ret) {
477 printk(KERN_ERR "tda1004x: no firmware upload (timeout or file not found?)\n"); 477 printk(KERN_ERR "tda1004x: no firmware upload (timeout or file not found?)\n");
478 return ret; 478 return ret;
479 } 479 }
480 tda1004x_write_mask(state, TDA1004X_CONFC4, 8, 8); // going to boot from HOST 480 tda1004x_write_mask(state, TDA1004X_CONFC4, 8, 8); // going to boot from HOST
481 ret = tda1004x_do_upload(state, fw->data, fw->size, TDA10046H_CODE_CPT, TDA10046H_CODE_IN); 481 ret = tda1004x_do_upload(state, fw->data, fw->size, TDA10046H_CODE_CPT, TDA10046H_CODE_IN);
diff --git a/drivers/media/dvb/frontends/tda8083.c b/drivers/media/dvb/frontends/tda8083.c
index c05cf1861051..91baa9cedd79 100644
--- a/drivers/media/dvb/frontends/tda8083.c
+++ b/drivers/media/dvb/frontends/tda8083.c
@@ -66,13 +66,13 @@ static int tda8083_writereg (struct tda8083_state* state, u8 reg, u8 data)
66 u8 buf [] = { reg, data }; 66 u8 buf [] = { reg, data };
67 struct i2c_msg msg = { .addr = state->config->demod_address, .flags = 0, .buf = buf, .len = 2 }; 67 struct i2c_msg msg = { .addr = state->config->demod_address, .flags = 0, .buf = buf, .len = 2 };
68 68
69 ret = i2c_transfer(state->i2c, &msg, 1); 69 ret = i2c_transfer(state->i2c, &msg, 1);
70 70
71 if (ret != 1) 71 if (ret != 1)
72 dprintk ("%s: writereg error (reg %02x, ret == %i)\n", 72 dprintk ("%s: writereg error (reg %02x, ret == %i)\n",
73 __FUNCTION__, reg, ret); 73 __FUNCTION__, reg, ret);
74 74
75 return (ret != 1) ? -1 : 0; 75 return (ret != 1) ? -1 : 0;
76} 76}
77 77
78static int tda8083_readregs (struct tda8083_state* state, u8 reg1, u8 *b, u8 len) 78static int tda8083_readregs (struct tda8083_state* state, u8 reg1, u8 *b, u8 len)
@@ -87,7 +87,7 @@ static int tda8083_readregs (struct tda8083_state* state, u8 reg1, u8 *b, u8 len
87 dprintk ("%s: readreg error (reg %02x, ret == %i)\n", 87 dprintk ("%s: readreg error (reg %02x, ret == %i)\n",
88 __FUNCTION__, reg1, ret); 88 __FUNCTION__, reg1, ret);
89 89
90 return ret == 2 ? 0 : -1; 90 return ret == 2 ? 0 : -1;
91} 91}
92 92
93static inline u8 tda8083_readreg (struct tda8083_state* state, u8 reg) 93static inline u8 tda8083_readreg (struct tda8083_state* state, u8 reg)
@@ -132,14 +132,14 @@ static fe_code_rate_t tda8083_get_fec (struct tda8083_state* state)
132 132
133static int tda8083_set_symbolrate (struct tda8083_state* state, u32 srate) 133static int tda8083_set_symbolrate (struct tda8083_state* state, u32 srate)
134{ 134{
135 u32 ratio; 135 u32 ratio;
136 u32 tmp; 136 u32 tmp;
137 u8 filter; 137 u8 filter;
138 138
139 if (srate > 32000000) 139 if (srate > 32000000)
140 srate = 32000000; 140 srate = 32000000;
141 if (srate < 500000) 141 if (srate < 500000)
142 srate = 500000; 142 srate = 500000;
143 143
144 filter = 0; 144 filter = 0;
145 if (srate < 24000000) 145 if (srate < 24000000)
@@ -174,7 +174,7 @@ static void tda8083_wait_diseqc_fifo (struct tda8083_state* state, int timeout)
174 unsigned long start = jiffies; 174 unsigned long start = jiffies;
175 175
176 while (jiffies - start < timeout && 176 while (jiffies - start < timeout &&
177 !(tda8083_readreg(state, 0x02) & 0x80)) 177 !(tda8083_readreg(state, 0x02) & 0x80))
178 { 178 {
179 msleep(50); 179 msleep(50);
180 }; 180 };
diff --git a/drivers/media/dvb/ttpci/av7110.c b/drivers/media/dvb/ttpci/av7110.c
index 87ea52757a21..992be0be6b1e 100644
--- a/drivers/media/dvb/ttpci/av7110.c
+++ b/drivers/media/dvb/ttpci/av7110.c
@@ -217,10 +217,10 @@ static int arm_thread(void *data)
217 217
218 dprintk(4, "%p\n",av7110); 218 dprintk(4, "%p\n",av7110);
219 219
220 lock_kernel(); 220 lock_kernel();
221 daemonize("arm_mon"); 221 daemonize("arm_mon");
222 sigfillset(&current->blocked); 222 sigfillset(&current->blocked);
223 unlock_kernel(); 223 unlock_kernel();
224 224
225 av7110->arm_thread = current; 225 av7110->arm_thread = current;
226 226
@@ -1535,7 +1535,7 @@ static int alps_bsrv2_pll_set(struct dvb_frontend* fe, struct dvb_frontend_param
1535 buf[2] = ((div & 0x18000) >> 10) | 0x95; 1535 buf[2] = ((div & 0x18000) >> 10) | 0x95;
1536 buf[3] = (pwr << 6) | 0x30; 1536 buf[3] = (pwr << 6) | 0x30;
1537 1537
1538 // NOTE: since we're using a prescaler of 2, we set the 1538 // NOTE: since we're using a prescaler of 2, we set the
1539 // divisor frequency to 62.5kHz and divide by 125 above 1539 // divisor frequency to 62.5kHz and divide by 125 above
1540 1540
1541 if (i2c_transfer (&av7110->i2c_adap, &msg, 1) != 1) 1541 if (i2c_transfer (&av7110->i2c_adap, &msg, 1) != 1)
@@ -1811,7 +1811,7 @@ static struct tda8083_config grundig_29504_451_config = {
1811static int philips_cd1516_pll_set(struct dvb_frontend* fe, 1811static int philips_cd1516_pll_set(struct dvb_frontend* fe,
1812 struct dvb_frontend_parameters* params) 1812 struct dvb_frontend_parameters* params)
1813{ 1813{
1814 struct av7110* av7110 = fe->dvb->priv; 1814 struct av7110* av7110 = fe->dvb->priv;
1815 u32 div; 1815 u32 div;
1816 u32 f = params->frequency; 1816 u32 f = params->frequency;
1817 u8 data[4]; 1817 u8 data[4];
@@ -2202,7 +2202,7 @@ static u8 read_pwm(struct av7110* av7110)
2202 struct i2c_msg msg[] = { { .addr = 0x50,.flags = 0,.buf = &b,.len = 1 }, 2202 struct i2c_msg msg[] = { { .addr = 0x50,.flags = 0,.buf = &b,.len = 1 },
2203 { .addr = 0x50,.flags = I2C_M_RD,.buf = &pwm,.len = 1} }; 2203 { .addr = 0x50,.flags = I2C_M_RD,.buf = &pwm,.len = 1} };
2204 2204
2205 if ((i2c_transfer(&av7110->i2c_adap, msg, 2) != 2) || (pwm == 0xff)) 2205 if ((i2c_transfer(&av7110->i2c_adap, msg, 2) != 2) || (pwm == 0xff))
2206 pwm = 0x48; 2206 pwm = 0x48;
2207 2207
2208 return pwm; 2208 return pwm;
@@ -2245,7 +2245,7 @@ static int frontend_init(struct av7110 *av7110)
2245 } 2245 }
2246 2246
2247 // Try the grundig 29504-451 2247 // Try the grundig 29504-451
2248 av7110->fe = tda8083_attach(&grundig_29504_451_config, &av7110->i2c_adap); 2248 av7110->fe = tda8083_attach(&grundig_29504_451_config, &av7110->i2c_adap);
2249 if (av7110->fe) { 2249 if (av7110->fe) {
2250 av7110->fe->ops->diseqc_send_master_cmd = av7110_diseqc_send_master_cmd; 2250 av7110->fe->ops->diseqc_send_master_cmd = av7110_diseqc_send_master_cmd;
2251 av7110->fe->ops->diseqc_send_burst = av7110_diseqc_send_burst; 2251 av7110->fe->ops->diseqc_send_burst = av7110_diseqc_send_burst;
@@ -2271,12 +2271,12 @@ static int frontend_init(struct av7110 *av7110)
2271 case 0x0001: // Hauppauge/TT Nexus-T premium rev1.X 2271 case 0x0001: // Hauppauge/TT Nexus-T premium rev1.X
2272 2272
2273 // ALPS TDLB7 2273 // ALPS TDLB7
2274 av7110->fe = sp8870_attach(&alps_tdlb7_config, &av7110->i2c_adap); 2274 av7110->fe = sp8870_attach(&alps_tdlb7_config, &av7110->i2c_adap);
2275 break; 2275 break;
2276 2276
2277 case 0x0002: // Hauppauge/TT DVB-C premium rev2.X 2277 case 0x0002: // Hauppauge/TT DVB-C premium rev2.X
2278 2278
2279 av7110->fe = ves1820_attach(&alps_tdbe2_config, &av7110->i2c_adap, read_pwm(av7110)); 2279 av7110->fe = ves1820_attach(&alps_tdbe2_config, &av7110->i2c_adap, read_pwm(av7110));
2280 break; 2280 break;
2281 2281
2282 case 0x0006: /* Fujitsu-Siemens DVB-S rev 1.6 */ 2282 case 0x0006: /* Fujitsu-Siemens DVB-S rev 1.6 */
@@ -2421,9 +2421,9 @@ static int av7110_attach(struct saa7146_dev* dev, struct saa7146_pci_extension_d
2421 2421
2422 dprintk(4, "dev: %p\n", dev); 2422 dprintk(4, "dev: %p\n", dev);
2423 2423
2424 /* Set RPS_IRQ to 1 to track rps1 activity. 2424 /* Set RPS_IRQ to 1 to track rps1 activity.
2425 * Enabling this won't send any interrupt to PC CPU. 2425 * Enabling this won't send any interrupt to PC CPU.
2426 */ 2426 */
2427#define RPS_IRQ 0 2427#define RPS_IRQ 0
2428 2428
2429 if (budgetpatch == 1) { 2429 if (budgetpatch == 1) {
diff --git a/drivers/media/dvb/ttpci/av7110_hw.c b/drivers/media/dvb/ttpci/av7110_hw.c
index 7442f56a72ec..87106e8bf35b 100644
--- a/drivers/media/dvb/ttpci/av7110_hw.c
+++ b/drivers/media/dvb/ttpci/av7110_hw.c
@@ -1203,15 +1203,15 @@ int av7110_osd_cmd(struct av7110 *av7110, osd_cmd_t *dc)
1203 1203
1204int av7110_osd_capability(struct av7110 *av7110, osd_cap_t *cap) 1204int av7110_osd_capability(struct av7110 *av7110, osd_cap_t *cap)
1205{ 1205{
1206 switch (cap->cmd) { 1206 switch (cap->cmd) {
1207 case OSD_CAP_MEMSIZE: 1207 case OSD_CAP_MEMSIZE:
1208 if (FW_4M_SDRAM(av7110->arm_app)) 1208 if (FW_4M_SDRAM(av7110->arm_app))
1209 cap->val = 1000000; 1209 cap->val = 1000000;
1210 else 1210 else
1211 cap->val = 92000; 1211 cap->val = 92000;
1212 return 0; 1212 return 0;
1213 default: 1213 default:
1214 return -EINVAL; 1214 return -EINVAL;
1215 } 1215 }
1216} 1216}
1217#endif /* CONFIG_DVB_AV7110_OSD */ 1217#endif /* CONFIG_DVB_AV7110_OSD */
diff --git a/drivers/media/dvb/ttpci/av7110_v4l.c b/drivers/media/dvb/ttpci/av7110_v4l.c
index 6af74f78b3e5..b5aea4129fa7 100644
--- a/drivers/media/dvb/ttpci/av7110_v4l.c
+++ b/drivers/media/dvb/ttpci/av7110_v4l.c
@@ -120,8 +120,8 @@ static int ves1820_writereg(struct saa7146_dev *dev, u8 addr, u8 reg, u8 data)
120 120
121static int stv0297_writereg(struct saa7146_dev *dev, u8 addr, u8 reg, u8 data) 121static int stv0297_writereg(struct saa7146_dev *dev, u8 addr, u8 reg, u8 data)
122{ 122{
123 u8 buf [] = { reg, data }; 123 u8 buf [] = { reg, data };
124 struct i2c_msg msg = { .addr = addr, .flags = 0, .buf = buf, .len = 2 }; 124 struct i2c_msg msg = { .addr = addr, .flags = 0, .buf = buf, .len = 2 };
125 125
126 if (1 != saa7146_i2c_transfer(dev, &msg, 1, 1)) 126 if (1 != saa7146_i2c_transfer(dev, &msg, 1, 1))
127 return -1; 127 return -1;
diff --git a/drivers/media/dvb/ttpci/budget-core.c b/drivers/media/dvb/ttpci/budget-core.c
index 0498a055a4cd..017fcbccb8cc 100644
--- a/drivers/media/dvb/ttpci/budget-core.c
+++ b/drivers/media/dvb/ttpci/budget-core.c
@@ -87,7 +87,7 @@ static int start_ts_capture(struct budget *budget)
87 * Pitch: 188, NumBytes3: 188, NumLines3: 1024 87 * Pitch: 188, NumBytes3: 188, NumLines3: 1024
88 */ 88 */
89 89
90 switch(budget->card->type) { 90 switch(budget->card->type) {
91 case BUDGET_FS_ACTIVY: 91 case BUDGET_FS_ACTIVY:
92 saa7146_write(dev, DD1_INIT, 0x04000000); 92 saa7146_write(dev, DD1_INIT, 0x04000000);
93 saa7146_write(dev, MC2, (MASK_09 | MASK_25)); 93 saa7146_write(dev, MC2, (MASK_09 | MASK_25));
diff --git a/drivers/media/dvb/ttpci/budget-patch.c b/drivers/media/dvb/ttpci/budget-patch.c
index 755df81cbc49..fc416cf5253c 100644
--- a/drivers/media/dvb/ttpci/budget-patch.c
+++ b/drivers/media/dvb/ttpci/budget-patch.c
@@ -45,11 +45,11 @@ MAKE_BUDGET_INFO(ttbp, "TT-Budget/Patch DVB-S 1.x PCI", BUDGET_PATCH);
45//MAKE_BUDGET_INFO(satel,"TT-Budget/Patch SATELCO PCI", BUDGET_TT_HW_DISEQC); 45//MAKE_BUDGET_INFO(satel,"TT-Budget/Patch SATELCO PCI", BUDGET_TT_HW_DISEQC);
46 46
47static struct pci_device_id pci_tbl[] = { 47static struct pci_device_id pci_tbl[] = {
48 MAKE_EXTENSION_PCI(ttbp,0x13c2, 0x0000), 48 MAKE_EXTENSION_PCI(ttbp,0x13c2, 0x0000),
49// MAKE_EXTENSION_PCI(satel, 0x13c2, 0x1013), 49// MAKE_EXTENSION_PCI(satel, 0x13c2, 0x1013),
50 { 50 {
51 .vendor = 0, 51 .vendor = 0,
52 } 52 }
53}; 53};
54 54
55/* those lines are for budget-patch to be tried 55/* those lines are for budget-patch to be tried
@@ -165,57 +165,57 @@ static int budget_diseqc_send_burst(struct dvb_frontend* fe, fe_sec_mini_cmd_t m
165 165
166static int budget_av7110_send_fw_cmd(struct budget_patch *budget, u16* buf, int length) 166static int budget_av7110_send_fw_cmd(struct budget_patch *budget, u16* buf, int length)
167{ 167{
168 int i; 168 int i;
169 169
170 dprintk(2, "budget: %p\n", budget); 170 dprintk(2, "budget: %p\n", budget);
171 171
172 for (i = 2; i < length; i++) 172 for (i = 2; i < length; i++)
173 { 173 {
174 ttpci_budget_debiwrite(budget, DEBINOSWAP, COMMAND + 2*i, 2, (u32) buf[i], 0,0); 174 ttpci_budget_debiwrite(budget, DEBINOSWAP, COMMAND + 2*i, 2, (u32) buf[i], 0,0);
175 msleep(5); 175 msleep(5);
176 } 176 }
177 if (length) 177 if (length)
178 ttpci_budget_debiwrite(budget, DEBINOSWAP, COMMAND + 2, 2, (u32) buf[1], 0,0); 178 ttpci_budget_debiwrite(budget, DEBINOSWAP, COMMAND + 2, 2, (u32) buf[1], 0,0);
179 else 179 else
180 ttpci_budget_debiwrite(budget, DEBINOSWAP, COMMAND + 2, 2, 0, 0,0); 180 ttpci_budget_debiwrite(budget, DEBINOSWAP, COMMAND + 2, 2, 0, 0,0);
181 msleep(5); 181 msleep(5);
182 ttpci_budget_debiwrite(budget, DEBINOSWAP, COMMAND, 2, (u32) buf[0], 0,0); 182 ttpci_budget_debiwrite(budget, DEBINOSWAP, COMMAND, 2, (u32) buf[0], 0,0);
183 msleep(5); 183 msleep(5);
184 return 0; 184 return 0;
185} 185}
186 186
187static void av7110_set22k(struct budget_patch *budget, int state) 187static void av7110_set22k(struct budget_patch *budget, int state)
188{ 188{
189 u16 buf[2] = {( COMTYPE_AUDIODAC << 8) | (state ? ON22K : OFF22K), 0}; 189 u16 buf[2] = {( COMTYPE_AUDIODAC << 8) | (state ? ON22K : OFF22K), 0};
190 190
191 dprintk(2, "budget: %p\n", budget); 191 dprintk(2, "budget: %p\n", budget);
192 budget_av7110_send_fw_cmd(budget, buf, 2); 192 budget_av7110_send_fw_cmd(budget, buf, 2);
193} 193}
194 194
195static int av7110_send_diseqc_msg(struct budget_patch *budget, int len, u8 *msg, int burst) 195static int av7110_send_diseqc_msg(struct budget_patch *budget, int len, u8 *msg, int burst)
196{ 196{
197 int i; 197 int i;
198 u16 buf[18] = { ((COMTYPE_AUDIODAC << 8) | SendDiSEqC), 198 u16 buf[18] = { ((COMTYPE_AUDIODAC << 8) | SendDiSEqC),
199 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; 199 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
200 200
201 dprintk(2, "budget: %p\n", budget); 201 dprintk(2, "budget: %p\n", budget);
202 202
203 if (len>10) 203 if (len>10)
204 len=10; 204 len=10;
205 205
206 buf[1] = len+2; 206 buf[1] = len+2;
207 buf[2] = len; 207 buf[2] = len;
208 208
209 if (burst != -1) 209 if (burst != -1)
210 buf[3]=burst ? 0x01 : 0x00; 210 buf[3]=burst ? 0x01 : 0x00;
211 else 211 else
212 buf[3]=0xffff; 212 buf[3]=0xffff;
213 213
214 for (i=0; i<len; i++) 214 for (i=0; i<len; i++)
215 buf[i+4]=msg[i]; 215 buf[i+4]=msg[i];
216 216
217 budget_av7110_send_fw_cmd(budget, buf, 18); 217 budget_av7110_send_fw_cmd(budget, buf, 18);
218 return 0; 218 return 0;
219} 219}
220 220
221static int budget_patch_set_tone(struct dvb_frontend* fe, fe_sec_tone_mode_t tone) 221static int budget_patch_set_tone(struct dvb_frontend* fe, fe_sec_tone_mode_t tone)
@@ -276,7 +276,7 @@ static int alps_bsrv2_pll_set(struct dvb_frontend* fe, struct dvb_frontend_param
276 buf[2] = ((div & 0x18000) >> 10) | 0x95; 276 buf[2] = ((div & 0x18000) >> 10) | 0x95;
277 buf[3] = (pwr << 6) | 0x30; 277 buf[3] = (pwr << 6) | 0x30;
278 278
279 // NOTE: since we're using a prescaler of 2, we set the 279 // NOTE: since we're using a prescaler of 2, we set the
280 // divisor frequency to 62.5kHz and divide by 125 above 280 // divisor frequency to 62.5kHz and divide by 125 above
281 281
282 if (i2c_transfer (&budget->i2c_adap, &msg, 1) != 1) return -EIO; 282 if (i2c_transfer (&budget->i2c_adap, &msg, 1) != 1) return -EIO;
@@ -294,7 +294,7 @@ static u8 alps_bsru6_inittab[] = {
294 0x01, 0x15, 294 0x01, 0x15,
295 0x02, 0x00, 295 0x02, 0x00,
296 0x03, 0x00, 296 0x03, 0x00,
297 0x04, 0x7d, /* F22FR = 0x7d, F22 = f_VCO / 128 / 0x7d = 22 kHz */ 297 0x04, 0x7d, /* F22FR = 0x7d, F22 = f_VCO / 128 / 0x7d = 22 kHz */
298 0x05, 0x35, /* I2CT = 0, SCLT = 1, SDAT = 1 */ 298 0x05, 0x35, /* I2CT = 0, SCLT = 1, SDAT = 1 */
299 0x06, 0x40, /* DAC not used, set to high impendance mode */ 299 0x06, 0x40, /* DAC not used, set to high impendance mode */
300 0x07, 0x00, /* DAC LSB */ 300 0x07, 0x00, /* DAC LSB */
@@ -413,7 +413,7 @@ static void frontend_init(struct budget_patch* budget)
413{ 413{
414 switch(budget->dev->pci->subsystem_device) { 414 switch(budget->dev->pci->subsystem_device) {
415 case 0x0000: // Hauppauge/TT WinTV DVB-S rev1.X 415 case 0x0000: // Hauppauge/TT WinTV DVB-S rev1.X
416 case 0x1013: // SATELCO Multimedia PCI 416 case 0x1013: // SATELCO Multimedia PCI
417 417
418 // try the ALPS BSRV2 first of all 418 // try the ALPS BSRV2 first of all
419 budget->dvb_frontend = ves1x93_attach(&alps_bsrv2_config, &budget->i2c_adap); 419 budget->dvb_frontend = ves1x93_attach(&alps_bsrv2_config, &budget->i2c_adap);
@@ -463,8 +463,8 @@ static void frontend_init(struct budget_patch* budget)
463/* written by Emard */ 463/* written by Emard */
464static int budget_patch_attach (struct saa7146_dev* dev, struct saa7146_pci_extension_data *info) 464static int budget_patch_attach (struct saa7146_dev* dev, struct saa7146_pci_extension_data *info)
465{ 465{
466 struct budget_patch *budget; 466 struct budget_patch *budget;
467 int err; 467 int err;
468 int count = 0; 468 int count = 0;
469 int detected = 0; 469 int detected = 0;
470 470
@@ -472,12 +472,12 @@ static int budget_patch_attach (struct saa7146_dev* dev, struct saa7146_pci_exte
472#define RPS_IRQ 0 472#define RPS_IRQ 0
473#define HPS_SETUP 0 473#define HPS_SETUP 0
474#if PATCH_RESET 474#if PATCH_RESET
475 saa7146_write(dev, MC1, MASK_31); 475 saa7146_write(dev, MC1, MASK_31);
476 msleep(40); 476 msleep(40);
477#endif 477#endif
478#if HPS_SETUP 478#if HPS_SETUP
479 // initialize registers. Better to have it like this 479 // initialize registers. Better to have it like this
480 // than leaving something unconfigured 480 // than leaving something unconfigured
481 saa7146_write(dev, DD1_STREAM_B, 0); 481 saa7146_write(dev, DD1_STREAM_B, 0);
482 // port B VSYNC at rising edge 482 // port B VSYNC at rising edge
483 saa7146_write(dev, DD1_INIT, 0x00000200); // have this in budget-core too! 483 saa7146_write(dev, DD1_INIT, 0x00000200); // have this in budget-core too!
@@ -486,29 +486,29 @@ static int budget_patch_attach (struct saa7146_dev* dev, struct saa7146_pci_exte
486 // debi config 486 // debi config
487 // saa7146_write(dev, DEBI_CONFIG, MASK_30|MASK_28|MASK_18); 487 // saa7146_write(dev, DEBI_CONFIG, MASK_30|MASK_28|MASK_18);
488 488
489 // zero all HPS registers 489 // zero all HPS registers
490 saa7146_write(dev, HPS_H_PRESCALE, 0); // r68 490 saa7146_write(dev, HPS_H_PRESCALE, 0); // r68
491 saa7146_write(dev, HPS_H_SCALE, 0); // r6c 491 saa7146_write(dev, HPS_H_SCALE, 0); // r6c
492 saa7146_write(dev, BCS_CTRL, 0); // r70 492 saa7146_write(dev, BCS_CTRL, 0); // r70
493 saa7146_write(dev, HPS_V_SCALE, 0); // r60 493 saa7146_write(dev, HPS_V_SCALE, 0); // r60
494 saa7146_write(dev, HPS_V_GAIN, 0); // r64 494 saa7146_write(dev, HPS_V_GAIN, 0); // r64
495 saa7146_write(dev, CHROMA_KEY_RANGE, 0); // r74 495 saa7146_write(dev, CHROMA_KEY_RANGE, 0); // r74
496 saa7146_write(dev, CLIP_FORMAT_CTRL, 0); // r78 496 saa7146_write(dev, CLIP_FORMAT_CTRL, 0); // r78
497 // Set HPS prescaler for port B input 497 // Set HPS prescaler for port B input
498 saa7146_write(dev, HPS_CTRL, (1<<30) | (0<<29) | (1<<28) | (0<<12) ); 498 saa7146_write(dev, HPS_CTRL, (1<<30) | (0<<29) | (1<<28) | (0<<12) );
499 saa7146_write(dev, MC2, 499 saa7146_write(dev, MC2,
500 0 * (MASK_08 | MASK_24) | // BRS control 500 0 * (MASK_08 | MASK_24) | // BRS control
501 0 * (MASK_09 | MASK_25) | // a 501 0 * (MASK_09 | MASK_25) | // a
502 0 * (MASK_10 | MASK_26) | // b 502 0 * (MASK_10 | MASK_26) | // b
503 1 * (MASK_06 | MASK_22) | // HPS_CTRL1 503 1 * (MASK_06 | MASK_22) | // HPS_CTRL1
504 1 * (MASK_05 | MASK_21) | // HPS_CTRL2 504 1 * (MASK_05 | MASK_21) | // HPS_CTRL2
505 0 * (MASK_01 | MASK_15) // DEBI 505 0 * (MASK_01 | MASK_15) // DEBI
506 ); 506 );
507#endif 507#endif
508 // Disable RPS1 and RPS0 508 // Disable RPS1 and RPS0
509 saa7146_write(dev, MC1, ( MASK_29 | MASK_28)); 509 saa7146_write(dev, MC1, ( MASK_29 | MASK_28));
510 // RPS1 timeout disable 510 // RPS1 timeout disable
511 saa7146_write(dev, RPS_TOV1, 0); 511 saa7146_write(dev, RPS_TOV1, 0);
512 512
513 // code for autodetection 513 // code for autodetection
514 // will wait for VBI_B event (vertical blank at port B) 514 // will wait for VBI_B event (vertical blank at port B)
@@ -521,38 +521,38 @@ static int budget_patch_attach (struct saa7146_dev* dev, struct saa7146_pci_exte
521 WRITE_RPS1(cpu_to_le32(CMD_UPLOAD | 521 WRITE_RPS1(cpu_to_le32(CMD_UPLOAD |
522 MASK_10 | MASK_09 | MASK_08 | MASK_06 | MASK_05 | MASK_04 | MASK_03 | MASK_02 )); 522 MASK_10 | MASK_09 | MASK_08 | MASK_06 | MASK_05 | MASK_04 | MASK_03 | MASK_02 ));
523#endif 523#endif
524 WRITE_RPS1(cpu_to_le32(CMD_PAUSE | EVT_VBI_B)); 524 WRITE_RPS1(cpu_to_le32(CMD_PAUSE | EVT_VBI_B));
525 WRITE_RPS1(cpu_to_le32(CMD_WR_REG_MASK | (GPIO_CTRL>>2))); 525 WRITE_RPS1(cpu_to_le32(CMD_WR_REG_MASK | (GPIO_CTRL>>2)));
526 WRITE_RPS1(cpu_to_le32(GPIO3_MSK)); 526 WRITE_RPS1(cpu_to_le32(GPIO3_MSK));
527 WRITE_RPS1(cpu_to_le32(SAA7146_GPIO_OUTLO<<24)); 527 WRITE_RPS1(cpu_to_le32(SAA7146_GPIO_OUTLO<<24));
528#if RPS_IRQ 528#if RPS_IRQ
529 // issue RPS1 interrupt to increment counter 529 // issue RPS1 interrupt to increment counter
530 WRITE_RPS1(cpu_to_le32(CMD_INTERRUPT)); 530 WRITE_RPS1(cpu_to_le32(CMD_INTERRUPT));
531 // at least a NOP is neede between two interrupts 531 // at least a NOP is neede between two interrupts
532 WRITE_RPS1(cpu_to_le32(CMD_NOP)); 532 WRITE_RPS1(cpu_to_le32(CMD_NOP));
533 // interrupt again 533 // interrupt again
534 WRITE_RPS1(cpu_to_le32(CMD_INTERRUPT)); 534 WRITE_RPS1(cpu_to_le32(CMD_INTERRUPT));
535#endif 535#endif
536 WRITE_RPS1(cpu_to_le32(CMD_STOP)); 536 WRITE_RPS1(cpu_to_le32(CMD_STOP));
537 537
538#if RPS_IRQ 538#if RPS_IRQ
539 // set event counter 1 source as RPS1 interrupt (0x03) (rE4 p53) 539 // set event counter 1 source as RPS1 interrupt (0x03) (rE4 p53)
540 // use 0x03 to track RPS1 interrupts - increase by 1 every gpio3 is toggled 540 // use 0x03 to track RPS1 interrupts - increase by 1 every gpio3 is toggled
541 // use 0x15 to track VPE interrupts - increase by 1 every vpeirq() is called 541 // use 0x15 to track VPE interrupts - increase by 1 every vpeirq() is called
542 saa7146_write(dev, EC1SSR, (0x03<<2) | 3 ); 542 saa7146_write(dev, EC1SSR, (0x03<<2) | 3 );
543 // set event counter 1 treshold to maximum allowed value (rEC p55) 543 // set event counter 1 treshold to maximum allowed value (rEC p55)
544 saa7146_write(dev, ECT1R, 0x3fff ); 544 saa7146_write(dev, ECT1R, 0x3fff );
545#endif 545#endif
546 // Fix VSYNC level 546 // Fix VSYNC level
547 saa7146_setgpio(dev, 3, SAA7146_GPIO_OUTLO); 547 saa7146_setgpio(dev, 3, SAA7146_GPIO_OUTLO);
548 // Set RPS1 Address register to point to RPS code (r108 p42) 548 // Set RPS1 Address register to point to RPS code (r108 p42)
549 saa7146_write(dev, RPS_ADDR1, dev->d_rps1.dma_handle); 549 saa7146_write(dev, RPS_ADDR1, dev->d_rps1.dma_handle);
550 // Enable RPS1, (rFC p33) 550 // Enable RPS1, (rFC p33)
551 saa7146_write(dev, MC1, (MASK_13 | MASK_29 )); 551 saa7146_write(dev, MC1, (MASK_13 | MASK_29 ));
552 552
553 553
554 mdelay(50); 554 mdelay(50);
555 saa7146_setgpio(dev, 3, SAA7146_GPIO_OUTHI); 555 saa7146_setgpio(dev, 3, SAA7146_GPIO_OUTHI);
556 mdelay(150); 556 mdelay(150);
557 557
558 558
@@ -560,17 +560,17 @@ static int budget_patch_attach (struct saa7146_dev* dev, struct saa7146_pci_exte
560 detected = 1; 560 detected = 1;
561 561
562#if RPS_IRQ 562#if RPS_IRQ
563 printk("Event Counter 1 0x%04x\n", saa7146_read(dev, EC1R) & 0x3fff ); 563 printk("Event Counter 1 0x%04x\n", saa7146_read(dev, EC1R) & 0x3fff );
564#endif 564#endif
565 // Disable RPS1 565 // Disable RPS1
566 saa7146_write(dev, MC1, ( MASK_29 )); 566 saa7146_write(dev, MC1, ( MASK_29 ));
567 567
568 if(detected == 0) 568 if(detected == 0)
569 printk("budget-patch not detected or saa7146 in non-default state.\n" 569 printk("budget-patch not detected or saa7146 in non-default state.\n"
570 "try enabling ressetting of 7146 with MASK_31 in MC1 register\n"); 570 "try enabling ressetting of 7146 with MASK_31 in MC1 register\n");
571 571
572 else 572 else
573 printk("BUDGET-PATCH DETECTED.\n"); 573 printk("BUDGET-PATCH DETECTED.\n");
574 574
575 575
576/* OLD (Original design by Roberto Deza): 576/* OLD (Original design by Roberto Deza):
@@ -641,83 +641,83 @@ static int budget_patch_attach (struct saa7146_dev* dev, struct saa7146_pci_exte
641*/ 641*/
642 642
643 // Setup RPS1 "program" (p35) 643 // Setup RPS1 "program" (p35)
644 count = 0; 644 count = 0;
645 645
646 646
647 // Wait Source Line Counter Threshold (p36) 647 // Wait Source Line Counter Threshold (p36)
648 WRITE_RPS1(cpu_to_le32(CMD_PAUSE | EVT_HS)); 648 WRITE_RPS1(cpu_to_le32(CMD_PAUSE | EVT_HS));
649 // Set GPIO3=1 (p42) 649 // Set GPIO3=1 (p42)
650 WRITE_RPS1(cpu_to_le32(CMD_WR_REG_MASK | (GPIO_CTRL>>2))); 650 WRITE_RPS1(cpu_to_le32(CMD_WR_REG_MASK | (GPIO_CTRL>>2)));
651 WRITE_RPS1(cpu_to_le32(GPIO3_MSK)); 651 WRITE_RPS1(cpu_to_le32(GPIO3_MSK));
652 WRITE_RPS1(cpu_to_le32(SAA7146_GPIO_OUTHI<<24)); 652 WRITE_RPS1(cpu_to_le32(SAA7146_GPIO_OUTHI<<24));
653#if RPS_IRQ 653#if RPS_IRQ
654 // issue RPS1 interrupt 654 // issue RPS1 interrupt
655 WRITE_RPS1(cpu_to_le32(CMD_INTERRUPT)); 655 WRITE_RPS1(cpu_to_le32(CMD_INTERRUPT));
656#endif 656#endif
657 // Wait reset Source Line Counter Threshold (p36) 657 // Wait reset Source Line Counter Threshold (p36)
658 WRITE_RPS1(cpu_to_le32(CMD_PAUSE | RPS_INV | EVT_HS)); 658 WRITE_RPS1(cpu_to_le32(CMD_PAUSE | RPS_INV | EVT_HS));
659 // Set GPIO3=0 (p42) 659 // Set GPIO3=0 (p42)
660 WRITE_RPS1(cpu_to_le32(CMD_WR_REG_MASK | (GPIO_CTRL>>2))); 660 WRITE_RPS1(cpu_to_le32(CMD_WR_REG_MASK | (GPIO_CTRL>>2)));
661 WRITE_RPS1(cpu_to_le32(GPIO3_MSK)); 661 WRITE_RPS1(cpu_to_le32(GPIO3_MSK));
662 WRITE_RPS1(cpu_to_le32(SAA7146_GPIO_OUTLO<<24)); 662 WRITE_RPS1(cpu_to_le32(SAA7146_GPIO_OUTLO<<24));
663#if RPS_IRQ 663#if RPS_IRQ
664 // issue RPS1 interrupt 664 // issue RPS1 interrupt
665 WRITE_RPS1(cpu_to_le32(CMD_INTERRUPT)); 665 WRITE_RPS1(cpu_to_le32(CMD_INTERRUPT));
666#endif 666#endif
667 // Jump to begin of RPS program (p37) 667 // Jump to begin of RPS program (p37)
668 WRITE_RPS1(cpu_to_le32(CMD_JUMP)); 668 WRITE_RPS1(cpu_to_le32(CMD_JUMP));
669 WRITE_RPS1(cpu_to_le32(dev->d_rps1.dma_handle)); 669 WRITE_RPS1(cpu_to_le32(dev->d_rps1.dma_handle));
670
671 // Fix VSYNC level
672 saa7146_setgpio(dev, 3, SAA7146_GPIO_OUTLO);
673 // Set RPS1 Address register to point to RPS code (r108 p42)
674 saa7146_write(dev, RPS_ADDR1, dev->d_rps1.dma_handle);
675 // Set Source Line Counter Threshold, using BRS (rCC p43)
676 // It generates HS event every TS_HEIGHT lines
677 // this is related to TS_WIDTH set in register
678 // NUM_LINE_BYTE3 in budget-core.c. If NUM_LINE_BYTE
679 // low 16 bits are set to TS_WIDTH bytes (TS_WIDTH=2*188
680 //,then RPS_THRESH1
681 // should be set to trigger every TS_HEIGHT (512) lines.
682 //
683 saa7146_write(dev, RPS_THRESH1, (TS_HEIGHT*1) | MASK_12 );
684 670
685 // saa7146_write(dev, RPS_THRESH0, ((TS_HEIGHT/2)<<16) |MASK_28| (TS_HEIGHT/2) |MASK_12 ); 671 // Fix VSYNC level
686 // Enable RPS1 (rFC p33) 672 saa7146_setgpio(dev, 3, SAA7146_GPIO_OUTLO);
687 saa7146_write(dev, MC1, (MASK_13 | MASK_29)); 673 // Set RPS1 Address register to point to RPS code (r108 p42)
688 674 saa7146_write(dev, RPS_ADDR1, dev->d_rps1.dma_handle);
689 675 // Set Source Line Counter Threshold, using BRS (rCC p43)
690 if (!(budget = kmalloc (sizeof(struct budget_patch), GFP_KERNEL))) 676 // It generates HS event every TS_HEIGHT lines
691 return -ENOMEM; 677 // this is related to TS_WIDTH set in register
678 // NUM_LINE_BYTE3 in budget-core.c. If NUM_LINE_BYTE
679 // low 16 bits are set to TS_WIDTH bytes (TS_WIDTH=2*188
680 //,then RPS_THRESH1
681 // should be set to trigger every TS_HEIGHT (512) lines.
682 //
683 saa7146_write(dev, RPS_THRESH1, (TS_HEIGHT*1) | MASK_12 );
684
685 // saa7146_write(dev, RPS_THRESH0, ((TS_HEIGHT/2)<<16) |MASK_28| (TS_HEIGHT/2) |MASK_12 );
686 // Enable RPS1 (rFC p33)
687 saa7146_write(dev, MC1, (MASK_13 | MASK_29));
688
689
690 if (!(budget = kmalloc (sizeof(struct budget_patch), GFP_KERNEL)))
691 return -ENOMEM;
692 692
693 dprintk(2, "budget: %p\n", budget); 693 dprintk(2, "budget: %p\n", budget);
694 694
695 if ((err = ttpci_budget_init (budget, dev, info, THIS_MODULE))) { 695 if ((err = ttpci_budget_init (budget, dev, info, THIS_MODULE))) {
696 kfree (budget); 696 kfree (budget);
697 return err; 697 return err;
698 } 698 }
699 699
700 700
701 dev->ext_priv = budget; 701 dev->ext_priv = budget;
702 702
703 budget->dvb_adapter.priv = budget; 703 budget->dvb_adapter.priv = budget;
704 frontend_init(budget); 704 frontend_init(budget);
705 705
706 return 0; 706 return 0;
707} 707}
708 708
709static int budget_patch_detach (struct saa7146_dev* dev) 709static int budget_patch_detach (struct saa7146_dev* dev)
710{ 710{
711 struct budget_patch *budget = (struct budget_patch*) dev->ext_priv; 711 struct budget_patch *budget = (struct budget_patch*) dev->ext_priv;
712 int err; 712 int err;
713 713
714 if (budget->dvb_frontend) dvb_unregister_frontend(budget->dvb_frontend); 714 if (budget->dvb_frontend) dvb_unregister_frontend(budget->dvb_frontend);
715 715
716 err = ttpci_budget_deinit (budget); 716 err = ttpci_budget_deinit (budget);
717 717
718 kfree (budget); 718 kfree (budget);
719 719
720 return err; 720 return err;
721} 721}
722 722
723static int __init budget_patch_init(void) 723static int __init budget_patch_init(void)
@@ -727,20 +727,20 @@ static int __init budget_patch_init(void)
727 727
728static void __exit budget_patch_exit(void) 728static void __exit budget_patch_exit(void)
729{ 729{
730 saa7146_unregister_extension(&budget_extension); 730 saa7146_unregister_extension(&budget_extension);
731} 731}
732 732
733static struct saa7146_extension budget_extension = { 733static struct saa7146_extension budget_extension = {
734 .name = "budget_patch dvb\0", 734 .name = "budget_patch dvb\0",
735 .flags = 0, 735 .flags = 0,
736 736
737 .module = THIS_MODULE, 737 .module = THIS_MODULE,
738 .pci_tbl = pci_tbl, 738 .pci_tbl = pci_tbl,
739 .attach = budget_patch_attach, 739 .attach = budget_patch_attach,
740 .detach = budget_patch_detach, 740 .detach = budget_patch_detach,
741 741
742 .irq_mask = MASK_10, 742 .irq_mask = MASK_10,
743 .irq_func = ttpci_budget_irq10_handler, 743 .irq_func = ttpci_budget_irq10_handler,
744}; 744};
745 745
746module_init(budget_patch_init); 746module_init(budget_patch_init);
@@ -749,4 +749,4 @@ module_exit(budget_patch_exit);
749MODULE_LICENSE("GPL"); 749MODULE_LICENSE("GPL");
750MODULE_AUTHOR("Emard, Roberto Deza, Holger Waechtler, Michael Hunold, others"); 750MODULE_AUTHOR("Emard, Roberto Deza, Holger Waechtler, Michael Hunold, others");
751MODULE_DESCRIPTION("Driver for full TS modified DVB-S SAA7146+AV7110 " 751MODULE_DESCRIPTION("Driver for full TS modified DVB-S SAA7146+AV7110 "
752 "based so-called Budget Patch cards"); 752 "based so-called Budget Patch cards");
diff --git a/drivers/media/dvb/ttpci/budget.c b/drivers/media/dvb/ttpci/budget.c
index bc4ce7559cbe..fafe6407b3d0 100644
--- a/drivers/media/dvb/ttpci/budget.c
+++ b/drivers/media/dvb/ttpci/budget.c
@@ -256,7 +256,7 @@ static int alps_bsrv2_pll_set(struct dvb_frontend* fe, struct dvb_frontend_param
256 buf[2] = ((div & 0x18000) >> 10) | 0x95; 256 buf[2] = ((div & 0x18000) >> 10) | 0x95;
257 buf[3] = (pwr << 6) | 0x30; 257 buf[3] = (pwr << 6) | 0x30;
258 258
259 // NOTE: since we're using a prescaler of 2, we set the 259 // NOTE: since we're using a prescaler of 2, we set the
260 // divisor frequency to 62.5kHz and divide by 125 above 260 // divisor frequency to 62.5kHz and divide by 125 above
261 261
262 if (i2c_transfer (&budget->i2c_adap, &msg, 1) != 1) return -EIO; 262 if (i2c_transfer (&budget->i2c_adap, &msg, 1) != 1) return -EIO;
@@ -565,7 +565,7 @@ static u8 read_pwm(struct budget* budget)
565 struct i2c_msg msg[] = { { .addr = 0x50,.flags = 0,.buf = &b,.len = 1 }, 565 struct i2c_msg msg[] = { { .addr = 0x50,.flags = 0,.buf = &b,.len = 1 },
566 { .addr = 0x50,.flags = I2C_M_RD,.buf = &pwm,.len = 1} }; 566 { .addr = 0x50,.flags = I2C_M_RD,.buf = &pwm,.len = 1} };
567 567
568 if ((i2c_transfer(&budget->i2c_adap, msg, 2) != 2) || (pwm == 0xff)) 568 if ((i2c_transfer(&budget->i2c_adap, msg, 2) != 2) || (pwm == 0xff))
569 pwm = 0x48; 569 pwm = 0x48;
570 570
571 return pwm; 571 return pwm;
@@ -593,7 +593,7 @@ static void frontend_init(struct budget *budget)
593 budget->dvb_frontend = ves1x93_attach(&alps_bsrv2_config, &budget->i2c_adap); 593 budget->dvb_frontend = ves1x93_attach(&alps_bsrv2_config, &budget->i2c_adap);
594 if (budget->dvb_frontend) { 594 if (budget->dvb_frontend) {
595 budget->dvb_frontend->ops->diseqc_send_master_cmd = budget_diseqc_send_master_cmd; 595 budget->dvb_frontend->ops->diseqc_send_master_cmd = budget_diseqc_send_master_cmd;
596 budget->dvb_frontend->ops->diseqc_send_burst = budget_diseqc_send_burst; 596 budget->dvb_frontend->ops->diseqc_send_burst = budget_diseqc_send_burst;
597 budget->dvb_frontend->ops->set_tone = budget_set_tone; 597 budget->dvb_frontend->ops->set_tone = budget_set_tone;
598 break; 598 break;
599 } 599 }
diff --git a/drivers/media/dvb/ttpci/budget.h b/drivers/media/dvb/ttpci/budget.h
index c6ef496ba70a..fdaa3318ad3a 100644
--- a/drivers/media/dvb/ttpci/budget.h
+++ b/drivers/media/dvb/ttpci/budget.h
@@ -19,7 +19,7 @@ extern int budget_debug;
19#endif 19#endif
20 20
21#define dprintk(level,args...) \ 21#define dprintk(level,args...) \
22 do { if ((budget_debug & level)) { printk("%s: %s(): ",__stringify(KBUILD_MODNAME), __FUNCTION__); printk(args); } } while (0) 22 do { if ((budget_debug & level)) { printk("%s: %s(): ",__stringify(KBUILD_MODNAME), __FUNCTION__); printk(args); } } while (0)
23 23
24struct budget_info { 24struct budget_info {
25 char *name; 25 char *name;
diff --git a/drivers/media/dvb/ttpci/fdump.c b/drivers/media/dvb/ttpci/fdump.c
index 0b478db3e744..c90001d35e7d 100644
--- a/drivers/media/dvb/ttpci/fdump.c
+++ b/drivers/media/dvb/ttpci/fdump.c
@@ -36,7 +36,7 @@ int main(int argc, char **argv)
36 } 36 }
37 37
38 fprintf(fd_out, "\n};\n\n"); 38 fprintf(fd_out, "\n};\n\n");
39 39
40 fclose(fd_in); 40 fclose(fd_in);
41 fclose(fd_out); 41 fclose(fd_out);
42 42
diff --git a/drivers/media/dvb/ttpci/ttpci-eeprom.c b/drivers/media/dvb/ttpci/ttpci-eeprom.c
index ac79ef178c05..18aa22b5478d 100644
--- a/drivers/media/dvb/ttpci/ttpci-eeprom.c
+++ b/drivers/media/dvb/ttpci/ttpci-eeprom.c
@@ -13,7 +13,7 @@
13 Holger Waechtler Convergence 13 Holger Waechtler Convergence
14 14
15 Copyright (C) 2002-2003 Ralph Metzler <rjkm@metzlerbros.de> 15 Copyright (C) 2002-2003 Ralph Metzler <rjkm@metzlerbros.de>
16 Metzler Brothers Systementwicklung GbR 16 Metzler Brothers Systementwicklung GbR
17 17
18 This program is free software; you can redistribute it and/or modify 18 This program is free software; you can redistribute it and/or modify
19 it under the terms of the GNU General Public License as published by 19 it under the terms of the GNU General Public License as published by
@@ -48,41 +48,41 @@
48 48
49static int check_mac_tt(u8 *buf) 49static int check_mac_tt(u8 *buf)
50{ 50{
51 int i; 51 int i;
52 u16 tmp = 0xffff; 52 u16 tmp = 0xffff;
53 53
54 for (i = 0; i < 8; i++) { 54 for (i = 0; i < 8; i++) {
55 tmp = (tmp << 8) | ((tmp >> 8) ^ buf[i]); 55 tmp = (tmp << 8) | ((tmp >> 8) ^ buf[i]);
56 tmp ^= (tmp >> 4) & 0x0f; 56 tmp ^= (tmp >> 4) & 0x0f;
57 tmp ^= (tmp << 12) ^ ((tmp & 0xff) << 5); 57 tmp ^= (tmp << 12) ^ ((tmp & 0xff) << 5);
58 } 58 }
59 tmp ^= 0xffff; 59 tmp ^= 0xffff;
60 return (((tmp >> 8) ^ buf[8]) | ((tmp & 0xff) ^ buf[9])); 60 return (((tmp >> 8) ^ buf[8]) | ((tmp & 0xff) ^ buf[9]));
61} 61}
62 62
63static int getmac_tt(u8 * decodedMAC, u8 * encodedMAC) 63static int getmac_tt(u8 * decodedMAC, u8 * encodedMAC)
64{ 64{
65 u8 xor[20] = { 0x72, 0x23, 0x68, 0x19, 0x5c, 0xa8, 0x71, 0x2c, 65 u8 xor[20] = { 0x72, 0x23, 0x68, 0x19, 0x5c, 0xa8, 0x71, 0x2c,
66 0x54, 0xd3, 0x7b, 0xf1, 0x9E, 0x23, 0x16, 0xf6, 66 0x54, 0xd3, 0x7b, 0xf1, 0x9E, 0x23, 0x16, 0xf6,
67 0x1d, 0x36, 0x64, 0x78}; 67 0x1d, 0x36, 0x64, 0x78};
68 u8 data[20]; 68 u8 data[20];
69 int i; 69 int i;
70 70
71 /* In case there is a sig check failure have the orig contents available */ 71 /* In case there is a sig check failure have the orig contents available */
72 memcpy(data, encodedMAC, 20); 72 memcpy(data, encodedMAC, 20);
73 73
74 for (i = 0; i < 20; i++) 74 for (i = 0; i < 20; i++)
75 data[i] ^= xor[i]; 75 data[i] ^= xor[i];
76 for (i = 0; i < 10; i++) 76 for (i = 0; i < 10; i++)
77 data[i] = ((data[2 * i + 1] << 8) | data[2 * i]) 77 data[i] = ((data[2 * i + 1] << 8) | data[2 * i])
78 >> ((data[2 * i + 1] >> 6) & 3); 78 >> ((data[2 * i + 1] >> 6) & 3);
79 79
80 if (check_mac_tt(data)) 80 if (check_mac_tt(data))
81 return -ENODEV; 81 return -ENODEV;
82 82
83 decodedMAC[0] = data[2]; decodedMAC[1] = data[1]; decodedMAC[2] = data[0]; 83 decodedMAC[0] = data[2]; decodedMAC[1] = data[1]; decodedMAC[2] = data[0];
84 decodedMAC[3] = data[6]; decodedMAC[4] = data[5]; decodedMAC[5] = data[4]; 84 decodedMAC[3] = data[6]; decodedMAC[4] = data[5]; decodedMAC[5] = data[4];
85 return 0; 85 return 0;
86} 86}
87 87
88static int ttpci_eeprom_read_encodedMAC(struct i2c_adapter *adapter, u8 * encodedMAC) 88static int ttpci_eeprom_read_encodedMAC(struct i2c_adapter *adapter, u8 * encodedMAC)
diff --git a/drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c b/drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c
index fd53d6010502..104df610dbe1 100644
--- a/drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c
+++ b/drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c
@@ -225,8 +225,8 @@ static int ttusb_i2c_msg(struct ttusb *ttusb,
225 225
226 err = ttusb_result(ttusb, b, 0x20); 226 err = ttusb_result(ttusb, b, 0x20);
227 227
228 /* check if the i2c transaction was successful */ 228 /* check if the i2c transaction was successful */
229 if ((snd_len != b[5]) || (rcv_len != b[6])) return -EREMOTEIO; 229 if ((snd_len != b[5]) || (rcv_len != b[6])) return -EREMOTEIO;
230 230
231 if (rcv_len > 0) { 231 if (rcv_len > 0) {
232 232
@@ -489,27 +489,27 @@ static int ttusb_send_diseqc(struct dvb_frontend* fe,
489 489
490static int lnbp21_set_voltage(struct dvb_frontend* fe, fe_sec_voltage_t voltage) 490static int lnbp21_set_voltage(struct dvb_frontend* fe, fe_sec_voltage_t voltage)
491{ 491{
492 struct ttusb* ttusb = (struct ttusb*) fe->dvb->priv; 492 struct ttusb* ttusb = (struct ttusb*) fe->dvb->priv;
493 int ret; 493 int ret;
494 u8 data[1]; 494 u8 data[1];
495 struct i2c_msg msg = { .addr = 0x08, .flags = 0, .buf = data, .len = sizeof(data) }; 495 struct i2c_msg msg = { .addr = 0x08, .flags = 0, .buf = data, .len = sizeof(data) };
496 496
497 switch(voltage) { 497 switch(voltage) {
498 case SEC_VOLTAGE_OFF: 498 case SEC_VOLTAGE_OFF:
499 data[0] = 0x00; 499 data[0] = 0x00;
500 break; 500 break;
501 case SEC_VOLTAGE_13: 501 case SEC_VOLTAGE_13:
502 data[0] = 0x44; 502 data[0] = 0x44;
503 break; 503 break;
504 case SEC_VOLTAGE_18: 504 case SEC_VOLTAGE_18:
505 data[0] = 0x4c; 505 data[0] = 0x4c;
506 break; 506 break;
507 default: 507 default:
508 return -EINVAL; 508 return -EINVAL;
509 }; 509 };
510 510
511 ret = i2c_transfer(&ttusb->i2c_adap, &msg, 1); 511 ret = i2c_transfer(&ttusb->i2c_adap, &msg, 1);
512 return (ret != 1) ? -EIO : 0; 512 return (ret != 1) ? -EIO : 0;
513} 513}
514 514
515static int ttusb_update_lnb(struct ttusb *ttusb) 515static int ttusb_update_lnb(struct ttusb *ttusb)
@@ -1184,45 +1184,45 @@ static struct tda1004x_config philips_tdm1316l_config = {
1184}; 1184};
1185 1185
1186static u8 alps_bsbe1_inittab[] = { 1186static u8 alps_bsbe1_inittab[] = {
1187 0x01, 0x15, 1187 0x01, 0x15,
1188 0x02, 0x30, 1188 0x02, 0x30,
1189 0x03, 0x00, 1189 0x03, 0x00,
1190 0x04, 0x7d, /* F22FR = 0x7d, F22 = f_VCO / 128 / 0x7d = 22 kHz */ 1190 0x04, 0x7d, /* F22FR = 0x7d, F22 = f_VCO / 128 / 0x7d = 22 kHz */
1191 0x05, 0x35, /* I2CT = 0, SCLT = 1, SDAT = 1 */ 1191 0x05, 0x35, /* I2CT = 0, SCLT = 1, SDAT = 1 */
1192 0x06, 0x40, /* DAC not used, set to high impendance mode */ 1192 0x06, 0x40, /* DAC not used, set to high impendance mode */
1193 0x07, 0x00, /* DAC LSB */ 1193 0x07, 0x00, /* DAC LSB */
1194 0x08, 0x40, /* DiSEqC off, LNB power on OP2/LOCK pin on */ 1194 0x08, 0x40, /* DiSEqC off, LNB power on OP2/LOCK pin on */
1195 0x09, 0x00, /* FIFO */ 1195 0x09, 0x00, /* FIFO */
1196 0x0c, 0x51, /* OP1 ctl = Normal, OP1 val = 1 (LNB Power ON) */ 1196 0x0c, 0x51, /* OP1 ctl = Normal, OP1 val = 1 (LNB Power ON) */
1197 0x0d, 0x82, /* DC offset compensation = ON, beta_agc1 = 2 */ 1197 0x0d, 0x82, /* DC offset compensation = ON, beta_agc1 = 2 */
1198 0x0e, 0x23, /* alpha_tmg = 2, beta_tmg = 3 */ 1198 0x0e, 0x23, /* alpha_tmg = 2, beta_tmg = 3 */
1199 0x10, 0x3f, // AGC2 0x3d 1199 0x10, 0x3f, // AGC2 0x3d
1200 0x11, 0x84, 1200 0x11, 0x84,
1201 0x12, 0xb9, 1201 0x12, 0xb9,
1202 0x15, 0xc9, // lock detector threshold 1202 0x15, 0xc9, // lock detector threshold
1203 0x16, 0x00, 1203 0x16, 0x00,
1204 0x17, 0x00, 1204 0x17, 0x00,
1205 0x18, 0x00, 1205 0x18, 0x00,
1206 0x19, 0x00, 1206 0x19, 0x00,
1207 0x1a, 0x00, 1207 0x1a, 0x00,
1208 0x1f, 0x50, 1208 0x1f, 0x50,
1209 0x20, 0x00, 1209 0x20, 0x00,
1210 0x21, 0x00, 1210 0x21, 0x00,
1211 0x22, 0x00, 1211 0x22, 0x00,
1212 0x23, 0x00, 1212 0x23, 0x00,
1213 0x28, 0x00, // out imp: normal out type: parallel FEC mode:0 1213 0x28, 0x00, // out imp: normal out type: parallel FEC mode:0
1214 0x29, 0x1e, // 1/2 threshold 1214 0x29, 0x1e, // 1/2 threshold
1215 0x2a, 0x14, // 2/3 threshold 1215 0x2a, 0x14, // 2/3 threshold
1216 0x2b, 0x0f, // 3/4 threshold 1216 0x2b, 0x0f, // 3/4 threshold
1217 0x2c, 0x09, // 5/6 threshold 1217 0x2c, 0x09, // 5/6 threshold
1218 0x2d, 0x05, // 7/8 threshold 1218 0x2d, 0x05, // 7/8 threshold
1219 0x2e, 0x01, 1219 0x2e, 0x01,
1220 0x31, 0x1f, // test all FECs 1220 0x31, 0x1f, // test all FECs
1221 0x32, 0x19, // viterbi and synchro search 1221 0x32, 0x19, // viterbi and synchro search
1222 0x33, 0xfc, // rs control 1222 0x33, 0xfc, // rs control
1223 0x34, 0x93, // error control 1223 0x34, 0x93, // error control
1224 0x0f, 0x92, 1224 0x0f, 0x92,
1225 0xff, 0xff 1225 0xff, 0xff
1226}; 1226};
1227 1227
1228static u8 alps_bsru6_inittab[] = { 1228static u8 alps_bsru6_inittab[] = {
@@ -1350,7 +1350,7 @@ static int ttusb_novas_grundig_29504_491_pll_set(struct dvb_frontend *fe, struct
1350 u32 div; 1350 u32 div;
1351 struct i2c_msg msg = {.addr = 0x61,.flags = 0,.buf = buf,.len = sizeof(buf) }; 1351 struct i2c_msg msg = {.addr = 0x61,.flags = 0,.buf = buf,.len = sizeof(buf) };
1352 1352
1353 div = params->frequency / 125; 1353 div = params->frequency / 125;
1354 1354
1355 buf[0] = (div >> 8) & 0x7f; 1355 buf[0] = (div >> 8) & 0x7f;
1356 buf[1] = div & 0xff; 1356 buf[1] = div & 0xff;
@@ -1487,7 +1487,7 @@ static int ttusb_probe(struct usb_interface *intf, const struct usb_device_id *i
1487 1487
1488 udev = interface_to_usbdev(intf); 1488 udev = interface_to_usbdev(intf);
1489 1489
1490 if (intf->altsetting->desc.bInterfaceNumber != 1) return -ENODEV; 1490 if (intf->altsetting->desc.bInterfaceNumber != 1) return -ENODEV;
1491 1491
1492 if (!(ttusb = kmalloc(sizeof(struct ttusb), GFP_KERNEL))) 1492 if (!(ttusb = kmalloc(sizeof(struct ttusb), GFP_KERNEL)))
1493 return -ENOMEM; 1493 return -ENOMEM;
diff --git a/drivers/media/dvb/ttusb-dec/ttusb_dec.c b/drivers/media/dvb/ttusb-dec/ttusb_dec.c
index 832d179f26fa..8abc21890129 100644
--- a/drivers/media/dvb/ttusb-dec/ttusb_dec.c
+++ b/drivers/media/dvb/ttusb-dec/ttusb_dec.c
@@ -1203,7 +1203,7 @@ static int ttusb_init_rc(struct ttusb_dec *dec)
1203 input_dev->keycode = rc_keys; 1203 input_dev->keycode = rc_keys;
1204 1204
1205 for (i = 0; i < ARRAY_SIZE(rc_keys); i++) 1205 for (i = 0; i < ARRAY_SIZE(rc_keys); i++)
1206 set_bit(rc_keys[i], input_dev->keybit); 1206 set_bit(rc_keys[i], input_dev->keybit);
1207 1207
1208 input_register_device(input_dev); 1208 input_register_device(input_dev);
1209 1209
@@ -1529,7 +1529,7 @@ static void ttusb_dec_exit_rc(struct ttusb_dec *dec)
1529 usb_free_urb(dec->irq_urb); 1529 usb_free_urb(dec->irq_urb);
1530 1530
1531 usb_buffer_free(dec->udev,IRQ_PACKET_SIZE, 1531 usb_buffer_free(dec->udev,IRQ_PACKET_SIZE,
1532 dec->irq_buffer, dec->irq_dma_handle); 1532 dec->irq_buffer, dec->irq_dma_handle);
1533 1533
1534 if (dec->rc_input_dev) { 1534 if (dec->rc_input_dev) {
1535 input_unregister_device(dec->rc_input_dev); 1535 input_unregister_device(dec->rc_input_dev);