diff options
author | Steven Toth <stoth@linuxtv.org> | 2008-09-13 14:09:07 -0400 |
---|---|---|
committer | Steven Toth <stoth@linuxtv.org> | 2008-09-13 14:09:07 -0400 |
commit | 9dcfc9e3a50997d1024e86a0ad8686c7d027f6de (patch) | |
tree | a9e7aba44b51ae24818a4af4d1f2e13c7d1fd964 /linux/drivers/media/dvb/dvb-core | |
parent | d5bd2a43985d53bd37e31d640177c9b5306716d7 (diff) | |
download | mediapointer-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.c | 7 |
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)); } |