aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media
diff options
context:
space:
mode:
authorHartmut Hackmann <hartmut.hackmann@t-online.de>2007-11-08 06:54:53 -0500
committerMauro Carvalho Chehab <mchehab@infradead.org>2007-12-11 15:08:06 -0500
commit33f7771411c1f815208f6593d8fde8f9a135cea5 (patch)
treee482fa1ad3eb7b89e01d6fde7866bcc635e061eb /drivers/media
parentf4b8b3ae13b2246cf7e1b998f0292f3297d03d41 (diff)
V4L/DVB (6579): Fix bug #8824: Correct support for Diseqc on tda10086
This is a modified version of a patch previously posted by Thomas Unverzagt. Signed-off-by: Hartmut Hackmann <hartmut.hackmann@t-online.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'drivers/media')
-rw-r--r--drivers/media/dvb/frontends/tda10086.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/drivers/media/dvb/frontends/tda10086.c b/drivers/media/dvb/frontends/tda10086.c
index 9a8ddc537f8..9d26ace6515 100644
--- a/drivers/media/dvb/frontends/tda10086.c
+++ b/drivers/media/dvb/frontends/tda10086.c
@@ -158,7 +158,7 @@ static int tda10086_init(struct dvb_frontend* fe)
158 tda10086_write_byte(state, 0x3d, 0x80); 158 tda10086_write_byte(state, 0x3d, 0x80);
159 159
160 // setup SEC 160 // setup SEC
161 tda10086_write_byte(state, 0x36, 0x00); // all SEC off 161 tda10086_write_byte(state, 0x36, 0x80); // all SEC off, no 22k tone
162 tda10086_write_byte(state, 0x34, (((1<<19) * (22000/1000)) / (SACLK/1000))); // } tone frequency 162 tda10086_write_byte(state, 0x34, (((1<<19) * (22000/1000)) / (SACLK/1000))); // } tone frequency
163 tda10086_write_byte(state, 0x35, (((1<<19) * (22000/1000)) / (SACLK/1000)) >> 8); // } 163 tda10086_write_byte(state, 0x35, (((1<<19) * (22000/1000)) / (SACLK/1000)) >> 8); // }
164 164
@@ -183,13 +183,13 @@ static int tda10086_set_tone (struct dvb_frontend* fe, fe_sec_tone_mode_t tone)
183 183
184 dprintk ("%s\n", __FUNCTION__); 184 dprintk ("%s\n", __FUNCTION__);
185 185
186 switch(tone) { 186 switch (tone) {
187 case SEC_TONE_OFF: 187 case SEC_TONE_OFF:
188 tda10086_write_byte(state, 0x36, 0x00); 188 tda10086_write_byte(state, 0x36, 0x80);
189 break; 189 break;
190 190
191 case SEC_TONE_ON: 191 case SEC_TONE_ON:
192 tda10086_write_byte(state, 0x36, 0x01); 192 tda10086_write_byte(state, 0x36, 0x81);
193 break; 193 break;
194 } 194 }
195 195
@@ -212,7 +212,7 @@ static int tda10086_send_master_cmd (struct dvb_frontend* fe,
212 for(i=0; i< cmd->msg_len; i++) { 212 for(i=0; i< cmd->msg_len; i++) {
213 tda10086_write_byte(state, 0x48+i, cmd->msg[i]); 213 tda10086_write_byte(state, 0x48+i, cmd->msg[i]);
214 } 214 }
215 tda10086_write_byte(state, 0x36, 0x08 | ((cmd->msg_len - 1) << 4)); 215 tda10086_write_byte(state, 0x36, 0x88 | ((cmd->msg_len - 1) << 4));
216 216
217 tda10086_diseqc_wait(state); 217 tda10086_diseqc_wait(state);
218 218
@@ -230,11 +230,11 @@ static int tda10086_send_burst (struct dvb_frontend* fe, fe_sec_mini_cmd_t minic
230 230
231 switch(minicmd) { 231 switch(minicmd) {
232 case SEC_MINI_A: 232 case SEC_MINI_A:
233 tda10086_write_byte(state, 0x36, 0x04); 233 tda10086_write_byte(state, 0x36, 0x84);
234 break; 234 break;
235 235
236 case SEC_MINI_B: 236 case SEC_MINI_B:
237 tda10086_write_byte(state, 0x36, 0x06); 237 tda10086_write_byte(state, 0x36, 0x86);
238 break; 238 break;
239 } 239 }
240 240