summaryrefslogtreecommitdiff
path: root/linux/drivers/media/dvb/frontends/dib3000mc.c
diff options
context:
space:
mode:
authorPatrick Boettcher <pb@linuxtv.org>2006-08-19 21:13:53 +0200
committerPatrick Boettcher <pb@linuxtv.org>2006-08-19 21:13:53 +0200
commitcb1670379261b49a5d8ed2fa6411a9e6120dd3a3 (patch)
tree7df3ab6bfe7af20b1c7f46e6c466de7dffbcf795 /linux/drivers/media/dvb/frontends/dib3000mc.c
parentc80337b2df3537c1e375cea246cbc7763fc5e10d (diff)
downloadmediapointer-dvb-s2-cb1670379261b49a5d8ed2fa6411a9e6120dd3a3.tar.gz
mediapointer-dvb-s2-cb1670379261b49a5d8ed2fa6411a9e6120dd3a3.tar.bz2
Keep the PID parse bit when resetting the output mode
From: Patrick Boettcher <pb@linuxtv.org> 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>
Diffstat (limited to 'linux/drivers/media/dvb/frontends/dib3000mc.c')
-rw-r--r--linux/drivers/media/dvb/frontends/dib3000mc.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/linux/drivers/media/dvb/frontends/dib3000mc.c b/linux/drivers/media/dvb/frontends/dib3000mc.c
index 3279768b7..60998908a 100644
--- a/linux/drivers/media/dvb/frontends/dib3000mc.c
+++ b/linux/drivers/media/dvb/frontends/dib3000mc.c
@@ -193,7 +193,8 @@ static int dib3000mc_set_output_mode(struct dib3000mc_state *state, int mode)
u16 outreg = 0;
u16 outmode = 0;
u16 elecout = 1;
- u16 smo_reg = (0 << 6) | (0 << 5) | (0 << 4) | (0 << 3) | (1 << 1) | 0 ; //smo_mode = 1
+ u16 smo_reg = (0 << 6) | (0 << 5) | (0 << 3) | (1 << 1) | 0 |
+ (dib3000mc_read_word(state, 206) & 0x0010); /* keep the pid_parse bit */
dprintk("-I- Setting output mode for demod %p to %d\n",
&state->demod, mode);
@@ -221,7 +222,7 @@ static int dib3000mc_set_output_mode(struct dib3000mc_state *state, int mode)
P_smo_mode [2;2:1] = 11
P_smo_ovf_prot [1;0:0] = 0
*/
- smo_reg = (0 << 6) | (0 << 5) | (0 << 4) | (0 << 3) |(3 << 1) | 0;
+ smo_reg = (0 << 6) | (0 << 5) | (0 << 3) |(3 << 1) | 0;
fifo_threshold = 512;
outmode = 5;
break;
@@ -236,7 +237,7 @@ static int dib3000mc_set_output_mode(struct dib3000mc_state *state, int mode)
}
if ((state->cfg->output_mpeg2_in_188_bytes))
- smo_reg |= (1 << 5) ; //P_smo_rs_discard [1;5:5] = 1
+ smo_reg |= (1 << 5); // P_smo_rs_discard [1;5:5] = 1
outreg = dib3000mc_read_word(state, 244) & 0x07FF;
outreg |= (outmode << 11);