V4L/DVB (12217): radio-cadet: conform to the RDS spec.
Hans Verkuil [Sat, 20 Jun 2009 09:19:09 +0000 (06:19 -0300)]
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>

drivers/media/radio/radio-cadet.c

index d30fc0c..8b14401 100644 (file)
@@ -359,7 +359,8 @@ static int vidioc_querycap(struct file *file, void *priv,
        strlcpy(v->card, "ADS Cadet", sizeof(v->card));
        strlcpy(v->bus_info, "ISA", sizeof(v->bus_info));
        v->version = CADET_VERSION;
-       v->capabilities = V4L2_CAP_TUNER | V4L2_CAP_RADIO | V4L2_CAP_READWRITE;
+       v->capabilities = V4L2_CAP_TUNER | V4L2_CAP_RADIO |
+                         V4L2_CAP_READWRITE | V4L2_CAP_RDS_CAPTURE;
        return 0;
 }
 
@@ -372,7 +373,7 @@ static int vidioc_g_tuner(struct file *file, void *priv,
        switch (v->index) {
        case 0:
                strlcpy(v->name, "FM", sizeof(v->name));
-               v->capability = V4L2_TUNER_CAP_STEREO;
+               v->capability = V4L2_TUNER_CAP_STEREO | V4L2_TUNER_CAP_RDS;
                v->rangelow = 1400;     /* 87.5 MHz */
                v->rangehigh = 1728;    /* 108.0 MHz */
                v->rxsubchans = cadet_getstereo(dev);
@@ -386,6 +387,7 @@ static int vidioc_g_tuner(struct file *file, void *priv,
                default:
                        break;
                }
+               v->rxsubchans |= V4L2_TUNER_SUB_RDS;
                break;
        case 1:
                strlcpy(v->name, "AM", sizeof(v->name));