diff options
author | Patrick Boettcher <pb@linuxtv.org> | 2006-08-19 15:13:53 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@infradead.org> | 2006-09-26 11:30:34 -0400 |
commit | 559463bba8b91d36b12f6722dc27440567e4f6be (patch) | |
tree | 5c9c113726832c80af6218d9adb940841c40cadd /drivers/media/dvb/frontends/dib3000mc.c | |
parent | ded38d2806b508b0b0f95581c103958949403daf (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/dib3000mc.c')
-rw-r--r-- | drivers/media/dvb/frontends/dib3000mc.c | 7 |
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); |