aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video/pvrusb2/pvrusb2-hdw.c
diff options
context:
space:
mode:
authorMike Isely <isely@pobox.com>2006-06-25 19:04:47 -0400
committerMauro Carvalho Chehab <mchehab@infradead.org>2006-06-26 23:17:29 -0400
commiteb8e0ee4f51a89d569c01d5b09a8cbc935c72a4c (patch)
tree9436985b03e477a471eb731bafe51866ee3508cc /drivers/media/video/pvrusb2/pvrusb2-hdw.c
parenta761f4311b3e31008c7d168c3a8c254a9c7e35ac (diff)
V4L/DVB (4241): Fix faulty encoder error recovery in pvrusb2
Signed-off-by: Mike Isely <isely@pobox.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'drivers/media/video/pvrusb2/pvrusb2-hdw.c')
-rw-r--r--drivers/media/video/pvrusb2/pvrusb2-hdw.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/media/video/pvrusb2/pvrusb2-hdw.c b/drivers/media/video/pvrusb2/pvrusb2-hdw.c
index f461830c64c9..1829029cc9b9 100644
--- a/drivers/media/video/pvrusb2/pvrusb2-hdw.c
+++ b/drivers/media/video/pvrusb2/pvrusb2-hdw.c
@@ -1098,12 +1098,13 @@ void pvr2_hdw_subsys_bit_chg_no_lock(struct pvr2_hdw *hdw,
1098 if (!hdw->flag_ok) return; 1098 if (!hdw->flag_ok) return;
1099 1099
1100 msk &= PVR2_SUBSYS_ALL; 1100 msk &= PVR2_SUBSYS_ALL;
1101 nmsk = (hdw->subsys_enabled_mask & ~msk) | (val & msk);
1102 nmsk &= PVR2_SUBSYS_ALL;
1101 1103
1102 for (;;) { 1104 for (;;) {
1103 tryCount++; 1105 tryCount++;
1104 vmsk = hdw->subsys_enabled_mask & PVR2_SUBSYS_ALL; 1106 if (!((nmsk ^ hdw->subsys_enabled_mask) &
1105 nmsk = (vmsk & ~msk) | (val & msk); 1107 PVR2_SUBSYS_ALL)) break;
1106 if (!(nmsk ^ vmsk)) break;
1107 if (tryCount > 4) { 1108 if (tryCount > 4) {
1108 pvr2_trace(PVR2_TRACE_ERROR_LEGS, 1109 pvr2_trace(PVR2_TRACE_ERROR_LEGS,
1109 "Too many retries when configuring device;" 1110 "Too many retries when configuring device;"