diff options
author | Mike Isely <isely@pobox.com> | 2006-03-25 16:45:28 -0600 |
---|---|---|
committer | Mike Isely <isely@pobox.com> | 2006-03-25 16:45:28 -0600 |
commit | 23fb60e03b25fa009ed530d83c5cb7463b96bdc9 (patch) | |
tree | 70f2c44c181aa8e351dbcc7680803622eff345ca /linux | |
parent | ba27877ce2c324e04a518371da0bf976308a314f (diff) | |
download | mediapointer-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.c | 6 |
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. */ |