The patch number 13548 was added via Mauro Carvalho Chehab <[email protected]>
to http://linuxtv.org/hg/v4l-dvb master development tree.

Kernel patches in this development tree may be modified to be backward
compatible with older kernels. Compatibility modifications will be
removed before inclusion into the mainstream Kernel

If anyone has any objections, please let us know by sending a message to:
        Linux Media Mailing List <[email protected]>

------

From: Mauro Carvalho Chehab  <[email protected]>
merge: http://www.linuxtv.org/hg/~hverkuil/v4l-dvb


Signed-off-by: Mauro Carvalho Chehab <[email protected]>


---

 linux/drivers/media/radio/radio-aimslab.c    |    4 ++++
 linux/drivers/media/radio/radio-aztech.c     |    4 ++++
 linux/drivers/media/radio/radio-gemtek-pci.c |    4 ++++
 linux/drivers/media/radio/radio-maestro.c    |    4 ++++
 linux/drivers/media/radio/radio-maxiradio.c  |    4 ++++
 linux/drivers/media/radio/radio-mr800.c      |    4 ++++
 linux/drivers/media/radio/radio-rtrack2.c    |    4 ++++
 linux/drivers/media/radio/radio-sf16fmi.c    |    4 ++++
 linux/drivers/media/radio/radio-sf16fmr2.c   |    4 ++++
 linux/drivers/media/radio/radio-tea5764.c    |    4 +++-
 linux/drivers/media/radio/radio-terratec.c   |    4 ++++
 linux/drivers/media/radio/radio-trust.c      |    4 ++++
 linux/drivers/media/radio/radio-typhoon.c    |    4 ++++
 linux/drivers/media/radio/radio-zoltrix.c    |    4 ++++
 14 files changed, 55 insertions(+), 1 deletion(-)

diff -r 309f16461cf4 -r 54755be3ffe9 linux/drivers/media/radio/radio-aimslab.c
--- a/linux/drivers/media/radio/radio-aimslab.c Sat Dec 05 10:34:21 2009 -0200
+++ b/linux/drivers/media/radio/radio-aimslab.c Sat Dec 05 17:39:00 2009 -0200
@@ -269,6 +269,8 @@
 {
        struct rtrack *rt = video_drvdata(file);
 
+       if (f->tuner != 0 || f->type != V4L2_TUNER_RADIO)
+               return -EINVAL;
        rt_setfreq(rt, f->frequency);
        return 0;
 }
@@ -278,6 +280,8 @@
 {
        struct rtrack *rt = video_drvdata(file);
 
+       if (f->tuner != 0)
+               return -EINVAL;
        f->type = V4L2_TUNER_RADIO;
        f->frequency = rt->curfreq;
        return 0;
diff -r 309f16461cf4 -r 54755be3ffe9 linux/drivers/media/radio/radio-aztech.c
--- a/linux/drivers/media/radio/radio-aztech.c  Sat Dec 05 10:34:21 2009 -0200
+++ b/linux/drivers/media/radio/radio-aztech.c  Sat Dec 05 17:39:00 2009 -0200
@@ -255,6 +255,8 @@
 {
        struct aztech *az = video_drvdata(file);
 
+       if (f->tuner != 0 || f->type != V4L2_TUNER_RADIO)
+               return -EINVAL;
        az_setfreq(az, f->frequency);
        return 0;
 }
@@ -264,6 +266,8 @@
 {
        struct aztech *az = video_drvdata(file);
 
+       if (f->tuner != 0)
+               return -EINVAL;
        f->type = V4L2_TUNER_RADIO;
        f->frequency = az->curfreq;
        return 0;
diff -r 309f16461cf4 -r 54755be3ffe9 
linux/drivers/media/radio/radio-gemtek-pci.c
--- a/linux/drivers/media/radio/radio-gemtek-pci.c      Sat Dec 05 10:34:21 
2009 -0200
+++ b/linux/drivers/media/radio/radio-gemtek-pci.c      Sat Dec 05 17:39:00 
2009 -0200
@@ -241,6 +241,8 @@
 {
        struct gemtek_pci *card = video_drvdata(file);
 
+       if (f->tuner != 0 || f->type != V4L2_TUNER_RADIO)
+               return -EINVAL;
        if (f->frequency < GEMTEK_PCI_RANGE_LOW ||
            f->frequency > GEMTEK_PCI_RANGE_HIGH)
                return -EINVAL;
@@ -254,6 +256,8 @@
 {
        struct gemtek_pci *card = video_drvdata(file);
 
+       if (f->tuner != 0)
+               return -EINVAL;
        f->type = V4L2_TUNER_RADIO;
        f->frequency = card->current_frequency;
        return 0;
diff -r 309f16461cf4 -r 54755be3ffe9 linux/drivers/media/radio/radio-maestro.c
--- a/linux/drivers/media/radio/radio-maestro.c Sat Dec 05 10:34:21 2009 -0200
+++ b/linux/drivers/media/radio/radio-maestro.c Sat Dec 05 17:39:00 2009 -0200
@@ -201,6 +201,8 @@
 {
        struct maestro *dev = video_drvdata(file);
 
+       if (f->tuner != 0 || f->type != V4L2_TUNER_RADIO)
+               return -EINVAL;
        if (f->frequency < FREQ_LO || f->frequency > FREQ_HI)
                return -EINVAL;
        mutex_lock(&dev->lock);
@@ -214,6 +216,8 @@
 {
        struct maestro *dev = video_drvdata(file);
 
+       if (f->tuner != 0)
+               return -EINVAL;
        f->type = V4L2_TUNER_RADIO;
        mutex_lock(&dev->lock);
        f->frequency = BITS2FREQ(radio_bits_get(dev));
diff -r 309f16461cf4 -r 54755be3ffe9 linux/drivers/media/radio/radio-maxiradio.c
--- a/linux/drivers/media/radio/radio-maxiradio.c       Sat Dec 05 10:34:21 
2009 -0200
+++ b/linux/drivers/media/radio/radio-maxiradio.c       Sat Dec 05 17:39:00 
2009 -0200
@@ -263,6 +263,8 @@
 {
        struct maxiradio *dev = video_drvdata(file);
 
+       if (f->tuner != 0 || f->type != V4L2_TUNER_RADIO)
+               return -EINVAL;
        if (f->frequency < FREQ_LO || f->frequency > FREQ_HI) {
                dprintk(dev, 1, "radio freq (%d.%02d MHz) out of range 
(%d-%d)\n",
                                        f->frequency / 16000,
@@ -286,6 +288,8 @@
 {
        struct maxiradio *dev = video_drvdata(file);
 
+       if (f->tuner != 0)
+               return -EINVAL;
        f->type = V4L2_TUNER_RADIO;
        f->frequency = dev->freq;
 
diff -r 309f16461cf4 -r 54755be3ffe9 linux/drivers/media/radio/radio-mr800.c
--- a/linux/drivers/media/radio/radio-mr800.c   Sat Dec 05 10:34:21 2009 -0200
+++ b/linux/drivers/media/radio/radio-mr800.c   Sat Dec 05 17:39:00 2009 -0200
@@ -377,6 +377,8 @@
 {
        struct amradio_device *radio = file->private_data;
 
+       if (f->tuner != 0 || f->type != V4L2_TUNER_RADIO)
+               return -EINVAL;
        return amradio_setfreq(radio, f->frequency);
 }
 
@@ -386,6 +388,8 @@
 {
        struct amradio_device *radio = file->private_data;
 
+       if (f->tuner != 0)
+               return -EINVAL;
        f->type = V4L2_TUNER_RADIO;
        f->frequency = radio->curfreq;
 
diff -r 309f16461cf4 -r 54755be3ffe9 linux/drivers/media/radio/radio-rtrack2.c
--- a/linux/drivers/media/radio/radio-rtrack2.c Sat Dec 05 10:34:21 2009 -0200
+++ b/linux/drivers/media/radio/radio-rtrack2.c Sat Dec 05 17:39:00 2009 -0200
@@ -168,6 +168,8 @@
 {
        struct rtrack2 *rt = video_drvdata(file);
 
+       if (f->tuner != 0 || f->type != V4L2_TUNER_RADIO)
+               return -EINVAL;
        rt_setfreq(rt, f->frequency);
        return 0;
 }
@@ -177,6 +179,8 @@
 {
        struct rtrack2 *rt = video_drvdata(file);
 
+       if (f->tuner != 0)
+               return -EINVAL;
        f->type = V4L2_TUNER_RADIO;
        f->frequency = rt->curfreq;
        return 0;
diff -r 309f16461cf4 -r 54755be3ffe9 linux/drivers/media/radio/radio-sf16fmi.c
--- a/linux/drivers/media/radio/radio-sf16fmi.c Sat Dec 05 10:34:21 2009 -0200
+++ b/linux/drivers/media/radio/radio-sf16fmi.c Sat Dec 05 17:39:00 2009 -0200
@@ -169,6 +169,8 @@
 {
        struct fmi *fmi = video_drvdata(file);
 
+       if (f->tuner != 0 || f->type != V4L2_TUNER_RADIO)
+               return -EINVAL;
        if (f->frequency < RSF16_MINFREQ ||
                        f->frequency > RSF16_MAXFREQ)
                return -EINVAL;
@@ -183,6 +185,8 @@
 {
        struct fmi *fmi = video_drvdata(file);
 
+       if (f->tuner != 0)
+               return -EINVAL;
        f->type = V4L2_TUNER_RADIO;
        f->frequency = fmi->curfreq;
        return 0;
diff -r 309f16461cf4 -r 54755be3ffe9 linux/drivers/media/radio/radio-sf16fmr2.c
--- a/linux/drivers/media/radio/radio-sf16fmr2.c        Sat Dec 05 10:34:21 
2009 -0200
+++ b/linux/drivers/media/radio/radio-sf16fmr2.c        Sat Dec 05 17:39:00 
2009 -0200
@@ -252,6 +252,8 @@
 {
        struct fmr2 *fmr2 = video_drvdata(file);
 
+       if (f->tuner != 0 || f->type != V4L2_TUNER_RADIO)
+               return -EINVAL;
        if (f->frequency < RSF16_MINFREQ ||
                        f->frequency > RSF16_MAXFREQ)
                return -EINVAL;
@@ -273,6 +275,8 @@
 {
        struct fmr2 *fmr2 = video_drvdata(file);
 
+       if (f->tuner != 0)
+               return -EINVAL;
        f->type = V4L2_TUNER_RADIO;
        f->frequency = fmr2->curfreq;
        return 0;
diff -r 309f16461cf4 -r 54755be3ffe9 linux/drivers/media/radio/radio-tea5764.c
--- a/linux/drivers/media/radio/radio-tea5764.c Sat Dec 05 10:34:21 2009 -0200
+++ b/linux/drivers/media/radio/radio-tea5764.c Sat Dec 05 17:39:00 2009 -0200
@@ -353,7 +353,7 @@
 {
        struct tea5764_device *radio = video_drvdata(file);
 
-       if (f->tuner != 0)
+       if (f->tuner != 0 || f->type != V4L2_TUNER_RADIO)
                return -EINVAL;
        if (f->frequency == 0) {
                /* We special case this as a power down control. */
@@ -374,6 +374,8 @@
        struct tea5764_device *radio = video_drvdata(file);
        struct tea5764_regs *r = &radio->regs;
 
+       if (f->tuner != 0)
+               return -EINVAL;
        tea5764_i2c_read(radio);
        memset(f, 0, sizeof(f));
        f->type = V4L2_TUNER_RADIO;
diff -r 309f16461cf4 -r 54755be3ffe9 linux/drivers/media/radio/radio-terratec.c
--- a/linux/drivers/media/radio/radio-terratec.c        Sat Dec 05 10:34:21 
2009 -0200
+++ b/linux/drivers/media/radio/radio-terratec.c        Sat Dec 05 17:39:00 
2009 -0200
@@ -241,6 +241,8 @@
 {
        struct terratec *tt = video_drvdata(file);
 
+       if (f->tuner != 0 || f->type != V4L2_TUNER_RADIO)
+               return -EINVAL;
        tt_setfreq(tt, f->frequency);
        return 0;
 }
@@ -250,6 +252,8 @@
 {
        struct terratec *tt = video_drvdata(file);
 
+       if (f->tuner != 0)
+               return -EINVAL;
        f->type = V4L2_TUNER_RADIO;
        f->frequency = tt->curfreq;
        return 0;
diff -r 309f16461cf4 -r 54755be3ffe9 linux/drivers/media/radio/radio-trust.c
--- a/linux/drivers/media/radio/radio-trust.c   Sat Dec 05 10:34:21 2009 -0200
+++ b/linux/drivers/media/radio/radio-trust.c   Sat Dec 05 17:39:00 2009 -0200
@@ -240,6 +240,8 @@
 {
        struct trust *tr = video_drvdata(file);
 
+       if (f->tuner != 0 || f->type != V4L2_TUNER_RADIO)
+               return -EINVAL;
        tr_setfreq(tr, f->frequency);
        return 0;
 }
@@ -249,6 +251,8 @@
 {
        struct trust *tr = video_drvdata(file);
 
+       if (f->tuner != 0)
+               return -EINVAL;
        f->type = V4L2_TUNER_RADIO;
        f->frequency = tr->curfreq;
        return 0;
diff -r 309f16461cf4 -r 54755be3ffe9 linux/drivers/media/radio/radio-typhoon.c
--- a/linux/drivers/media/radio/radio-typhoon.c Sat Dec 05 10:34:21 2009 -0200
+++ b/linux/drivers/media/radio/radio-typhoon.c Sat Dec 05 17:39:00 2009 -0200
@@ -208,6 +208,8 @@
 {
        struct typhoon *dev = video_drvdata(file);
 
+       if (f->tuner != 0)
+               return -EINVAL;
        f->type = V4L2_TUNER_RADIO;
        f->frequency = dev->curfreq;
        return 0;
@@ -218,6 +220,8 @@
 {
        struct typhoon *dev = video_drvdata(file);
 
+       if (f->tuner != 0 || f->type != V4L2_TUNER_RADIO)
+               return -EINVAL;
        dev->curfreq = f->frequency;
        typhoon_setfreq(dev, dev->curfreq);
        return 0;
diff -r 309f16461cf4 -r 54755be3ffe9 linux/drivers/media/radio/radio-zoltrix.c
--- a/linux/drivers/media/radio/radio-zoltrix.c Sat Dec 05 10:34:21 2009 -0200
+++ b/linux/drivers/media/radio/radio-zoltrix.c Sat Dec 05 17:39:00 2009 -0200
@@ -267,6 +267,8 @@
 {
        struct zoltrix *zol = video_drvdata(file);
 
+       if (f->tuner != 0 || f->type != V4L2_TUNER_RADIO)
+               return -EINVAL;
        if (zol_setfreq(zol, f->frequency) != 0)
                return -EINVAL;
        return 0;
@@ -277,6 +279,8 @@
 {
        struct zoltrix *zol = video_drvdata(file);
 
+       if (f->tuner != 0)
+               return -EINVAL;
        f->type = V4L2_TUNER_RADIO;
        f->frequency = zol->curfreq;
        return 0;


---

Patch is available at: 
http://linuxtv.org/hg/v4l-dvb/rev/54755be3ffe9da5cd9584fdcd09bc5cbcf12bd95

_______________________________________________
linuxtv-commits mailing list
[email protected]
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linuxtv-commits

Reply via email to