summaryrefslogtreecommitdiff
path: root/linux/drivers/media/dvb/dvb-core
diff options
context:
space:
mode:
authorSteven Toth <stoth@linuxtv.org>2008-09-13 14:09:07 -0400
committerSteven Toth <stoth@linuxtv.org>2008-09-13 14:09:07 -0400
commit9dcfc9e3a50997d1024e86a0ad8686c7d027f6de (patch)
treea9e7aba44b51ae24818a4af4d1f2e13c7d1fd964 /linux/drivers/media/dvb/dvb-core
parentd5bd2a43985d53bd37e31d640177c9b5306716d7 (diff)
downloadmediapointer-dvb-s2-9dcfc9e3a50997d1024e86a0ad8686c7d027f6de.tar.gz
mediapointer-dvb-s2-9dcfc9e3a50997d1024e86a0ad8686c7d027f6de.tar.bz2
S2API: Allow reliable use of old and new api on the same frontend, regardless.
From: Steven Toth <stoth@linuxtv.org> Priority: normal Signed-off-by: Steven Toth <stoth@linuxtv.org>
Diffstat (limited to 'linux/drivers/media/dvb/dvb-core')
-rw-r--r--linux/drivers/media/dvb/dvb-core/dvb_frontend.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/linux/drivers/media/dvb/dvb-core/dvb_frontend.c b/linux/drivers/media/dvb/dvb-core/dvb_frontend.c
index ab821d5f8..6a8b45d58 100644
--- a/linux/drivers/media/dvb/dvb-core/dvb_frontend.c
+++ b/linux/drivers/media/dvb/dvb-core/dvb_frontend.c
@@ -1310,8 +1310,10 @@ static int dvb_frontend_ioctl(struct inode *inode, struct file *file,
if ((cmd == FE_SET_PROPERTY) || (cmd == FE_GET_PROPERTY))
err = dvb_frontend_ioctl_properties(inode, file, cmd, parg);
- else
+ else {
+ fe->dtv_property_cache.state = DTV_UNDEFINED;
err = dvb_frontend_ioctl_legacy(inode, file, cmd, parg);
+ }
up(&fepriv->sem);
return err;
@@ -1578,8 +1580,6 @@ static int dvb_frontend_ioctl_legacy(struct inode *inode, struct file *file,
case FE_SET_FRONTEND: {
struct dvb_frontend_tune_settings fetunesettings;
- dtv_property_cache_sync(fe, &fepriv->parameters);
-
if(fe->dtv_property_cache.state == DTV_TUNE) {
if (dvb_frontend_check_parameters(fe, &fepriv->parameters) < 0) {
err = -EINVAL;
@@ -1591,6 +1591,7 @@ static int dvb_frontend_ioctl_legacy(struct inode *inode, struct file *file,
break;
}
+ dtv_property_cache_sync(fe, &fepriv->parameters);
memcpy (&fepriv->parameters, parg,
sizeof (struct dvb_frontend_parameters));
}