diff options
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 | */ |
134 | int flexcop_i2c_request(struct flexcop_device*, flexcop_access_op_t, | 134 | int 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 */ |
138 | int flexcop_sram_set_dest(struct flexcop_device *fc, flexcop_sram_dest_t dest, flexcop_sram_dest_target_t target); | 138 | int 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 | ||
300 | static int lgdt3303_pll_set(struct dvb_frontend* fe, | 300 | static 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 | ||
338 | static struct lgdt330x_config air2pc_atsc_hd5000_config = { | 338 | static 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 | ||
192 | static int vp702x_fe_send_diseqc_msg (struct dvb_frontend* fe, | 192 | static 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 | ||
362 | static int at76c651_get_tune_settings(struct dvb_frontend* fe, struct dvb_frontend_tune_settings *fesettings) | 362 | static 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 | ||
356 | static int cx22700_get_tune_settings(struct dvb_frontend* fe, struct dvb_frontend_tune_settings* fesettings) | 356 | static 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 | ||
364 | static void cx22700_release(struct dvb_frontend* fe) | 364 | static 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 | ||
57 | static struct {u8 reg; u8 data;} cx24110_regdata[]= | 57 | static 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 | ||
120 | static int cx24110_writereg (struct cx24110_state* state, int reg, int data) | 120 | static 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 | ||
135 | static int cx24110_readreg (struct cx24110_state* state, u8 reg) | 135 | static 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) | |||
245 | static int cx24110_set_symbolrate (struct cx24110_state* state, u32 srate) | 245 | static 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 | ||
254 | dprintk("cx24110 debug: entering %s(%d)\n",__FUNCTION__,srate); | 254 | dprintk("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 | ||
358 | static int cx24110_initfe(struct dvb_frontend* fe) | 358 | static 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) | |||
477 | static int l64781_get_tune_settings(struct dvb_frontend* fe, | 477 | static 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 | ||
486 | static void l64781_release(struct dvb_frontend* fe) | 486 | static 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 | ||
496 | static void s5h1420_setfec_inversion(struct s5h1420_state* state, | 496 | static 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 | ||
41 | extern struct dvb_frontend* s5h1420_attach(const struct s5h1420_config* config, | 41 | extern 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 | ||
68 | static int sp8870_writereg (struct sp8870_state* state, u16 reg, u16 data) | 68 | static 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 | ||
82 | static int sp8870_readreg (struct sp8870_state* state, u16 reg) | 82 | static int sp8870_readreg (struct sp8870_state* state, u16 reg) |
@@ -305,7 +305,7 @@ static int sp8870_set_frontend_parameters (struct dvb_frontend* fe, | |||
305 | static int sp8870_init (struct dvb_frontend* fe) | 305 | static 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 | ||
535 | static int sp8870_get_tune_settings(struct dvb_frontend* fe, struct dvb_frontend_tune_settings* fesettings) | 535 | static 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 | ||
543 | static void sp8870_release(struct dvb_frontend* fe) | 543 | static 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) | |||
498 | static int sp887x_init(struct dvb_frontend* fe) | 498 | static 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 | ||
529 | static int sp887x_get_tune_settings(struct dvb_frontend* fe, struct dvb_frontend_tune_settings* fesettings) | 529 | static 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 | ||
537 | static void sp887x_release(struct dvb_frontend* fe) | 537 | static 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 | ||
96 | int stv0299_writereg (struct dvb_frontend* fe, u8 reg, u8 data) | 96 | int 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 | ||
221 | static int stv0299_set_symbolrate (struct dvb_frontend* fe, u32 srate) | 221 | static 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) | |||
271 | static int stv0299_send_diseqc_msg (struct dvb_frontend* fe, | 271 | static 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 | ||
302 | static int stv0299_send_diseqc_burst (struct dvb_frontend* fe, fe_sec_mini_cmd_t burst) | 302 | static 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 | ||
329 | static int stv0299_set_tone (struct dvb_frontend* fe, fe_sec_tone_mode_t tone) | 329 | static 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 | ||
351 | static int stv0299_set_voltage (struct dvb_frontend* fe, fe_sec_voltage_t voltage) | 351 | static 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 | ||
443 | static int stv0299_init (struct dvb_frontend* fe) | 443 | static 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 | ||
462 | static int stv0299_read_status(struct dvb_frontend* fe, fe_status_t* status) | 462 | static 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 | ||
490 | static int stv0299_read_ber(struct dvb_frontend* fe, u32* ber) | 490 | static 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 | ||
500 | static int stv0299_read_signal_strength(struct dvb_frontend* fe, u16* strength) | 500 | static 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 | ||
517 | static int stv0299_read_snr(struct dvb_frontend* fe, u16* snr) | 517 | static 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 | ||
529 | static int stv0299_read_ucblocks(struct dvb_frontend* fe, u32* ucblocks) | 529 | static 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 | ||
539 | static int stv0299_set_frontend(struct dvb_frontend* fe, struct dvb_frontend_parameters * p) | 539 | static 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 | ||
572 | static int stv0299_get_frontend(struct dvb_frontend* fe, struct dvb_frontend_parameters * p) | 572 | static 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 | ||
597 | static int stv0299_sleep(struct dvb_frontend* fe) | 597 | static 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 | ||
607 | static int stv0299_get_tune_settings(struct dvb_frontend* fe, struct dvb_frontend_tune_settings* fesettings) | 607 | static 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 | ||
664 | error: | 664 | error: |
@@ -714,7 +714,7 @@ MODULE_PARM_DESC(debug, "Turn on/off frontend debugging (default:off)."); | |||
714 | 714 | ||
715 | MODULE_DESCRIPTION("ST STV0299 DVB Demodulator driver"); | 715 | MODULE_DESCRIPTION("ST STV0299 DVB Demodulator driver"); |
716 | MODULE_AUTHOR("Ralph Metzler, Holger Waechtler, Peter Schildmann, Felix Domke, " | 716 | MODULE_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"); |
718 | MODULE_LICENSE("GPL"); | 718 | MODULE_LICENSE("GPL"); |
719 | 719 | ||
720 | EXPORT_SYMBOL(stv0299_writereg); | 720 | EXPORT_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 | ||
77 | static int tda10021_writereg (struct tda10021_state* state, u8 reg, u8 data) | 77 | static 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 | ||
78 | static int tda8083_readregs (struct tda8083_state* state, u8 reg1, u8 *b, u8 len) | 78 | static 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 | ||
93 | static inline u8 tda8083_readreg (struct tda8083_state* state, u8 reg) | 93 | static 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 | ||
133 | static int tda8083_set_symbolrate (struct tda8083_state* state, u32 srate) | 133 | static 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(¤t->blocked); | 222 | sigfillset(¤t->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 = { | |||
1811 | static int philips_cd1516_pll_set(struct dvb_frontend* fe, | 1811 | static 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 | ||
1204 | int av7110_osd_capability(struct av7110 *av7110, osd_cap_t *cap) | 1204 | int 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 | ||
121 | static int stv0297_writereg(struct saa7146_dev *dev, u8 addr, u8 reg, u8 data) | 121 | static 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 | ||
47 | static struct pci_device_id pci_tbl[] = { | 47 | static 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 | ||
166 | static int budget_av7110_send_fw_cmd(struct budget_patch *budget, u16* buf, int length) | 166 | static 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 | ||
187 | static void av7110_set22k(struct budget_patch *budget, int state) | 187 | static 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 | ||
195 | static int av7110_send_diseqc_msg(struct budget_patch *budget, int len, u8 *msg, int burst) | 195 | static 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 | ||
221 | static int budget_patch_set_tone(struct dvb_frontend* fe, fe_sec_tone_mode_t tone) | 221 | static 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 */ |
464 | static int budget_patch_attach (struct saa7146_dev* dev, struct saa7146_pci_extension_data *info) | 464 | static 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 | ||
709 | static int budget_patch_detach (struct saa7146_dev* dev) | 709 | static 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 | ||
723 | static int __init budget_patch_init(void) | 723 | static int __init budget_patch_init(void) |
@@ -727,20 +727,20 @@ static int __init budget_patch_init(void) | |||
727 | 727 | ||
728 | static void __exit budget_patch_exit(void) | 728 | static void __exit budget_patch_exit(void) |
729 | { | 729 | { |
730 | saa7146_unregister_extension(&budget_extension); | 730 | saa7146_unregister_extension(&budget_extension); |
731 | } | 731 | } |
732 | 732 | ||
733 | static struct saa7146_extension budget_extension = { | 733 | static 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 | ||
746 | module_init(budget_patch_init); | 746 | module_init(budget_patch_init); |
@@ -749,4 +749,4 @@ module_exit(budget_patch_exit); | |||
749 | MODULE_LICENSE("GPL"); | 749 | MODULE_LICENSE("GPL"); |
750 | MODULE_AUTHOR("Emard, Roberto Deza, Holger Waechtler, Michael Hunold, others"); | 750 | MODULE_AUTHOR("Emard, Roberto Deza, Holger Waechtler, Michael Hunold, others"); |
751 | MODULE_DESCRIPTION("Driver for full TS modified DVB-S SAA7146+AV7110 " | 751 | MODULE_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 | ||
24 | struct budget_info { | 24 | struct 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 | ||
49 | static int check_mac_tt(u8 *buf) | 49 | static 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 | ||
63 | static int getmac_tt(u8 * decodedMAC, u8 * encodedMAC) | 63 | static 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 | ||
88 | static int ttpci_eeprom_read_encodedMAC(struct i2c_adapter *adapter, u8 * encodedMAC) | 88 | static 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 | ||
490 | static int lnbp21_set_voltage(struct dvb_frontend* fe, fe_sec_voltage_t voltage) | 490 | static 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 | ||
515 | static int ttusb_update_lnb(struct ttusb *ttusb) | 515 | static int ttusb_update_lnb(struct ttusb *ttusb) |
@@ -1184,45 +1184,45 @@ static struct tda1004x_config philips_tdm1316l_config = { | |||
1184 | }; | 1184 | }; |
1185 | 1185 | ||
1186 | static u8 alps_bsbe1_inittab[] = { | 1186 | static 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 | ||
1228 | static u8 alps_bsru6_inittab[] = { | 1228 | static 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); |