aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/dvb/frontends
diff options
context:
space:
mode:
authorPatrick Boettcher <pb@linuxtv.org>2006-08-19 15:13:53 -0400
committerMauro Carvalho Chehab <mchehab@infradead.org>2006-09-26 11:30:34 -0400
commit559463bba8b91d36b12f6722dc27440567e4f6be (patch)
tree5c9c113726832c80af6218d9adb940841c40cadd /drivers/media/dvb/frontends
parentded38d2806b508b0b0f95581c103958949403daf (diff)
V4L/DVB (4529): Keep the PID parse bit when resetting the output mode
Matthieu Castet found that with the rewritten dib3000mc-driver the PID-parsing was handled correctly. This changeset fixes it. Thanks Matthieu Signed-off-by: Patrick Boettcher <pb@linuxtv.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'drivers/media/dvb/frontends')
-rw-r--r--drivers/media/dvb/frontends/dib3000mc.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/media/dvb/frontends/dib3000mc.c b/drivers/media/dvb/frontends/dib3000mc.c
index 0b4b8220b69d..6d61237a450d 100644
--- a/drivers/media/dvb/frontends/dib3000mc.c
+++ b/drivers/media/dvb/frontends/dib3000mc.c
@@ -169,7 +169,8 @@ static int dib3000mc_set_output_mode(struct dib3000mc_state *state, int mode)
169 u16 outreg = 0; 169 u16 outreg = 0;
170 u16 outmode = 0; 170 u16 outmode = 0;
171 u16 elecout = 1; 171 u16 elecout = 1;
172 u16 smo_reg = (0 << 6) | (0 << 5) | (0 << 4) | (0 << 3) | (1 << 1) | 0 ; //smo_mode = 1 172 u16 smo_reg = (0 << 6) | (0 << 5) | (0 << 3) | (1 << 1) | 0 |
173 (dib3000mc_read_word(state, 206) & 0x0010); /* keep the pid_parse bit */
173 174
174 dprintk("-I- Setting output mode for demod %p to %d\n", 175 dprintk("-I- Setting output mode for demod %p to %d\n",
175 &state->demod, mode); 176 &state->demod, mode);
@@ -197,7 +198,7 @@ static int dib3000mc_set_output_mode(struct dib3000mc_state *state, int mode)
197 P_smo_mode [2;2:1] = 11 198 P_smo_mode [2;2:1] = 11
198 P_smo_ovf_prot [1;0:0] = 0 199 P_smo_ovf_prot [1;0:0] = 0
199 */ 200 */
200 smo_reg = (0 << 6) | (0 << 5) | (0 << 4) | (0 << 3) |(3 << 1) | 0; 201 smo_reg = (0 << 6) | (0 << 5) | (0 << 3) |(3 << 1) | 0;
201 fifo_threshold = 512; 202 fifo_threshold = 512;
202 outmode = 5; 203 outmode = 5;
203 break; 204 break;
@@ -212,7 +213,7 @@ static int dib3000mc_set_output_mode(struct dib3000mc_state *state, int mode)
212 } 213 }
213 214
214 if ((state->cfg->output_mpeg2_in_188_bytes)) 215 if ((state->cfg->output_mpeg2_in_188_bytes))
215 smo_reg |= (1 << 5) ; //P_smo_rs_discard [1;5:5] = 1 216 smo_reg |= (1 << 5); // P_smo_rs_discard [1;5:5] = 1
216 217
217 outreg = dib3000mc_read_word(state, 244) & 0x07FF; 218 outreg = dib3000mc_read_word(state, 244) & 0x07FF;
218 outreg |= (outmode << 11); 219 outreg |= (outmode << 11);