summaryrefslogtreecommitdiff
path: root/linux
diff options
context:
space:
mode:
authorMike Isely <isely@pobox.com>2006-03-25 16:45:28 -0600
committerMike Isely <isely@pobox.com>2006-03-25 16:45:28 -0600
commit23fb60e03b25fa009ed530d83c5cb7463b96bdc9 (patch)
tree70f2c44c181aa8e351dbcc7680803622eff345ca /linux
parentba27877ce2c324e04a518371da0bf976308a314f (diff)
downloadmediapointer-dvb-s2-23fb60e03b25fa009ed530d83c5cb7463b96bdc9.tar.gz
mediapointer-dvb-s2-23fb60e03b25fa009ed530d83c5cb7463b96bdc9.tar.bz2
pvrusb2 control commit handling fix
From: Mike Isely <isely@pobox.com> When a control change is committed to the driver, certain other parts of the driver must be updated to track the change and deal with the effects of that change. Some controls in the driver use a function pointer to implement the commit, however we weren't doing the tracking there and we should have been. This is the fix. Signed-off-by: Mike Isely <isely@pobox.com>
Diffstat (limited to 'linux')
-rw-r--r--linux/drivers/media/video/pvrusb2/pvrusb2-hdw.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/linux/drivers/media/video/pvrusb2/pvrusb2-hdw.c b/linux/drivers/media/video/pvrusb2/pvrusb2-hdw.c
index ed5e81224..231c314f4 100644
--- a/linux/drivers/media/video/pvrusb2/pvrusb2-hdw.c
+++ b/linux/drivers/media/video/pvrusb2/pvrusb2-hdw.c
@@ -1490,11 +1490,15 @@ int pvr2_hdw_get_ctl_max_value(struct pvr2_hdw *hdw,unsigned int ctl_id)
int pvr2_hdw_set_ctl_value_internal(struct pvr2_hdw *hdw,
unsigned int ctl_id,int value)
{
+ int ret;
if (ctl_id >= PVR2_CID_COUNT) return -EINVAL;
if (value < control_defs[ctl_id].min_value) return -EINVAL;
if (value > control_defs[ctl_id].max_value) return -EINVAL;
if (control_defs[ctl_id].set_func) {
- return control_defs[ctl_id].set_func(hdw,ctl_id,value);
+ ret = control_defs[ctl_id].set_func(hdw,ctl_id,value);
+ pvr2_i2c_core_check_stale(hdw);
+ pvr2_i2c_core_sync(hdw);
+ return ret;
} else if (control_defs[ctl_id].get_func) {
/* If there's no "set" function yet there is still a "get"
function, then treat this as a read-only value. */