aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMike Isely <isely@pobox.com>2009-03-06 23:45:10 -0500
committerMauro Carvalho Chehab <mchehab@redhat.com>2009-03-30 11:43:37 -0400
commite68a619a1b216ed5398cbdf215a20d3411c988ea (patch)
tree1128b6ce699bc6835c2b69bd723c331098b5694c
parent0db8556805bdaed865329e55b9a1ad05f9cbd856 (diff)
V4L/DVB (11188): pvrusb2: Sub-device update must happen BEFORE state dirty bits are cleared
The sub-device update mechanism relies on various "dirty" bits in the driver in order to know what pieces of state need to be propagated out to the various sub-devices. But that won't work if the dirty bits are cleared before the update gets a chance to run. This change ensures that the update takes place before the dirty bits are cleared. Signed-off-by: Mike Isely <isely@pobox.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-rw-r--r--drivers/media/video/pvrusb2/pvrusb2-hdw.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/media/video/pvrusb2/pvrusb2-hdw.c b/drivers/media/video/pvrusb2/pvrusb2-hdw.c
index e61e34821fd6..627bc18f9bc1 100644
--- a/drivers/media/video/pvrusb2/pvrusb2-hdw.c
+++ b/drivers/media/video/pvrusb2/pvrusb2-hdw.c
@@ -3238,15 +3238,15 @@ static int pvr2_hdw_commit_execute(struct pvr2_hdw *hdw)
3238 } 3238 }
3239 } 3239 }
3240 3240
3241 /* Check and update state for all sub-devices. */
3242 pvr2_subdev_update(hdw);
3243
3241 for (idx = 0; idx < hdw->control_cnt; idx++) { 3244 for (idx = 0; idx < hdw->control_cnt; idx++) {
3242 cptr = hdw->controls + idx; 3245 cptr = hdw->controls + idx;
3243 if (!cptr->info->clear_dirty) continue; 3246 if (!cptr->info->clear_dirty) continue;
3244 cptr->info->clear_dirty(cptr); 3247 cptr->info->clear_dirty(cptr);
3245 } 3248 }
3246 3249
3247 /* Check and update state for all sub-devices. */
3248 pvr2_subdev_update(hdw);
3249
3250 /* Now execute i2c core update */ 3250 /* Now execute i2c core update */
3251 pvr2_i2c_core_sync(hdw); 3251 pvr2_i2c_core_sync(hdw);
3252 3252