diff options
author | Mike Isely <isely@pobox.com> | 2006-04-20 00:06:19 -0500 |
---|---|---|
committer | Mike Isely <isely@pobox.com> | 2006-04-20 00:06:19 -0500 |
commit | c860a0d64f8d3a88bb9c0c493ec77e0267562249 (patch) | |
tree | 07d15a5dad3a7ac83bc743bda99e3a34011952a2 /linux/drivers/media | |
parent | 368ee65696f4eacf61a05aceb224c3d37296f4cc (diff) | |
download | mediapointer-dvb-s2-c860a0d64f8d3a88bb9c0c493ec77e0267562249.tar.gz mediapointer-dvb-s2-c860a0d64f8d3a88bb9c0c493ec77e0267562249.tar.bz2 |
cx23416 fix in pvrusb2 to allow xawtv to function again
From: Mike Isely <isely@pobox.com>
Tweak cx23416 configuration to permit xawtv to work again. This
problem was introduced when the model 24xxx hardware support was
added. The fix here repairs the problem while and is valid for both
old and new hardware.
Signed-off-by: Mike Isely <isely@pobox.com>
Diffstat (limited to 'linux/drivers/media')
-rw-r--r-- | linux/drivers/media/video/pvrusb2/pvrusb2-encoder.c | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/linux/drivers/media/video/pvrusb2/pvrusb2-encoder.c b/linux/drivers/media/video/pvrusb2/pvrusb2-encoder.c index e0cded4be..6c66e258f 100644 --- a/linux/drivers/media/video/pvrusb2/pvrusb2-encoder.c +++ b/linux/drivers/media/video/pvrusb2/pvrusb2-encoder.c @@ -288,9 +288,24 @@ int pvr2_encoder_configure(struct pvr2_hdw *hdw) pvr2_trace(PVR2_TRACE_ENCODER,"pvr2_encoder_configure"); - /* set stream output port. */ + /* set stream output port. Some notes here: The ivtv-derived + encoder documentation says that this command only gets a + single argument. However the Windows driver for the model + 29xxx series hardware has been sending 0x01 as a second + argument, while the Windows driver for the model 24xxx + series hardware has been sending 0x02 as a second argument. + Confusing matters further are the observations that 0x01 + for that second argument simply won't work on the 24xxx + hardware, while 0x02 will work on the 29xxx - except that + when we use 0x02 then xawtv breaks due to a loss of + synchronization with the mpeg packet headers. While xawtv + should be fixed to let it resync better (I did try to + contact Gerd about this but he has not answered), it has + also been determined that sending 0x00 as this mystery + second argument seems to work on both hardware models AND + xawtv works again. So we're going to send 0x00. */ ret |= pvr2_write_encoder_vcmd(hdw, CX2341X_ENC_SET_OUTPUT_PORT, 2, - 0x01, 0x02); + 0x01, 0x00); /* set the Program Index Information. We want I,P,B frames (max 400) */ ret |= pvr2_write_encoder_vcmd(hdw, CX2341X_ENC_SET_PGM_INDEX_INFO, 2, |