From: Manu Abraham <abraham.manu@gmail.com>
To: linux-kernel@vger.kernel.org, v4l-dvb-maintainer@linuxtv.org,
akpm@linux-foundation.org
Cc: Marco Schluessler <marco@lordzodiac.de>
Subject: DVB Update [PATCH 16/31] multiproto tree
Date: Thu, 04 Sep 2008 22:39:07 +0400 [thread overview]
Message-ID: <48C02B4B.4010907@gmail.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 736 bytes --]
>From 0093e2bd237fcf9825ab8d0c0deebb5bc8dff5c9 Mon Sep 17 00:00:00 2001
From: Manu Abraham <manu@linuxtv.org>
Date: Thu, 4 Sep 2008 13:55:49 +0200
Subject: [PATCH] DVB Fix backward compatibility
Backward compatibility was broken in terms that it was all
around non-legacy devices being selected for device control
and hence drivers with the old callbacks never worked. The
patch fixes the approach where both set of drivers are working
now.
tested with a TT S2 3200 (new) and a FF S2300 (legacy) devices
From: Marco Schluessler <marco@lordzodiac.de>
Signed-off-by: Marco Schluessler <marco@lordzodiac.de>
Signed-off-by: Manu Abraham <manu@linuxtv.org>
dvb_frontend.c | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)
[-- Attachment #2: 16.patch --]
[-- Type: text/x-patch, Size: 2413 bytes --]
>From 0093e2bd237fcf9825ab8d0c0deebb5bc8dff5c9 Mon Sep 17 00:00:00 2001
From: Manu Abraham <manu@linuxtv.org>
Date: Thu, 4 Sep 2008 13:55:49 +0200
Subject: [PATCH] DVB Fix backward compatibility
Backward compatibility was broken in terms that it was all
around non-legacy devices being selected for device control
and hence drivers with the old callbacks never worked. The
patch fixes the approach where both set of drivers are working
now.
tested with a TT S2 3200 (new) and a FF S2300 (legacy) devices
From: Marco Schluessler <marco@lordzodiac.de>
Signed-off-by: Marco Schluessler <marco@lordzodiac.de>
Signed-off-by: Manu Abraham <manu@linuxtv.org>
diff --git a/drivers/media/dvb/dvb-core/dvb_frontend.c b/drivers/media/dvb/dvb-core/dvb_frontend.c
index 93b08fa..784acbd 100644
--- a/drivers/media/dvb/dvb-core/dvb_frontend.c
+++ b/drivers/media/dvb/dvb-core/dvb_frontend.c
@@ -1730,6 +1730,9 @@ static int dvb_frontend_ioctl(struct inode *inode, struct file *file,
enum dvbfe_delsys delsys = fepriv->fe_info.delivery;
fe->legacy = 0;
+ if (!(fe->ops.set_params || fe->ops.search))
+ fe->legacy = 1;
+
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));
@@ -1830,6 +1833,22 @@ static int dvb_frontend_ioctl(struct inode *inode, struct file *file,
fe->legacy = 0;
if (fe->ops.get_delsys) {
err = fe->ops.get_delsys(fe, (enum dvbfe_delsys *) parg);
+ } else {
+ switch (fe->ops.info.type) {
+ case FE_QPSK:
+ *((enum dvbfe_delsys *) parg) = DVBFE_DELSYS_DVBS;
+ break;
+ case FE_QAM:
+ *((enum dvbfe_delsys *) parg) = DVBFE_DELSYS_DVBC;
+ break;
+ case FE_OFDM:
+ *((enum dvbfe_delsys *) parg) = DVBFE_DELSYS_DVBT;
+ break;
+ default:
+ up (&fepriv->sem);
+ return -EINVAL;
+ }
+ err = 0;
}
break;
case DVBFE_GET_INFO:
@@ -1839,6 +1858,9 @@ static int dvb_frontend_ioctl(struct inode *inode, struct file *file,
memcpy(&fepriv->fe_info, (struct dvbfe_info *) parg, sizeof (struct dvbfe_info));
err = fe->ops.get_info(fe, &fepriv->fe_info);
memcpy((struct dvbfe_info *) parg, &fepriv->fe_info, sizeof (struct dvbfe_info));
+ } else {
+ memcpy(&fepriv->fe_info, (struct dvbfe_info *) parg, sizeof (struct dvbfe_info));
+ err = 0;
}
break;
};
reply other threads:[~2008-09-04 18:42 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=48C02B4B.4010907@gmail.com \
--to=abraham.manu@gmail.com \
--cc=akpm@linux-foundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=marco@lordzodiac.de \
--cc=v4l-dvb-maintainer@linuxtv.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox