summaryrefslogtreecommitdiff
path: root/linux/drivers/media
diff options
context:
space:
mode:
authorMike Isely <isely@pobox.com>2006-04-20 00:06:19 -0500
committerMike Isely <isely@pobox.com>2006-04-20 00:06:19 -0500
commitc860a0d64f8d3a88bb9c0c493ec77e0267562249 (patch)
tree07d15a5dad3a7ac83bc743bda99e3a34011952a2 /linux/drivers/media
parent368ee65696f4eacf61a05aceb224c3d37296f4cc (diff)
downloadmediapointer-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.c19
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,