>>From 209207c583848b37a54b135256a62a5eb4135516 Mon Sep 17 00:00:00 2001 From: Manu Abraham Date: Thu, 4 Sep 2008 12:26:28 +0200 Subject: [PATCH] DVB Fix: use backward compatibility for older delivery systems * The backward compatibilty of the existing delivery systems was broken. The patch fixes the same. From: Manu Abraham Signed-off-by: Manu Abraham diff --git a/drivers/media/dvb/dvb-core/dvb_frontend.c b/drivers/media/dvb/dvb-core/dvb_frontend.c index 106bf2b..de49e4b 100644 --- a/drivers/media/dvb/dvb-core/dvb_frontend.c +++ b/drivers/media/dvb/dvb-core/dvb_frontend.c @@ -1433,7 +1433,6 @@ static int dvb_frontend_ioctl(struct inode *inode, struct file *file, struct dvb_frontend *fe = dvbdev->priv; struct dvb_frontend_private *fepriv = fe->frontend_priv; int err = -EOPNOTSUPP; - enum dvbfe_delsys delsys = 0; dprintk ("%s\n", __func__); @@ -1699,15 +1698,21 @@ static int dvb_frontend_ioctl(struct inode *inode, struct file *file, case DVBFE_SET_PARAMS: { struct dvb_frontend_tune_settings fetunesettings; + enum dvbfe_delsys delsys = fepriv->fe_info.delivery; fe->legacy = 0; memcpy(&fepriv->fe_params, parg, sizeof (struct dvbfe_params)); memset(&fetunesettings, 0, sizeof (struct dvb_frontend_tune_settings)); memcpy(&fetunesettings.fe_params, parg, sizeof (struct dvbfe_params)); - if (newapi_to_olddrv(&fepriv->fe_params, &fepriv->parameters, fepriv->fe_info.delivery) == -EINVAL) - printk("%s: ERROR !!! Converting New parameters --> Old parameters\n", __func__); + if ((delsys && DVBFE_DELSYS_DVBS) || + (delsys && DVBFE_DELSYS_DVBC) || + (delsys && DVBFE_DELSYS_DVBT) || + (delsys && DVBFE_DELSYS_ATSC)) { + if (newapi_to_olddrv(&fepriv->fe_params, &fepriv->parameters, fepriv->fe_info.delivery) == -EINVAL) + printk("%s: ERROR !!! Converting New parameters --> Old parameters\n", __func__); + } /* Request the search algorithm to search */ fepriv->algo_status |= DVBFE_ALGO_SEARCH_AGAIN;