DVB Update [PATCH 7/31] backward compat for older delivery systems

From: Manu Abraham
Date: Thu Sep 04 2008 - 16:25:43 EST


>From 209207c583848b37a54b135256a62a5eb4135516 Mon Sep 17 00:00:00 2001
From: Manu Abraham <manu@xxxxxxxxxxx>
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 <abraham.manu@xxxxxxxxx>
Signed-off-by: Manu Abraham <manu@xxxxxxxxxxx>

dvb_frontend.c | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)

>From 209207c583848b37a54b135256a62a5eb4135516 Mon Sep 17 00:00:00 2001
From: Manu Abraham <manu@xxxxxxxxxxx>
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 <abraham.manu@xxxxxxxxx>
Signed-off-by: Manu Abraham <manu@xxxxxxxxxxx>

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;