Let the msi001 tuner driver report its frequency bands.

Signed-off-by: Antti Palosaari <cr...@iki.fi>
---
 drivers/staging/media/msi3101/sdr-msi3101.c | 48 +++++++++--------------------
 1 file changed, 15 insertions(+), 33 deletions(-)

diff --git a/drivers/staging/media/msi3101/sdr-msi3101.c 
b/drivers/staging/media/msi3101/sdr-msi3101.c
index 36990cb..6bd7b67 100644
--- a/drivers/staging/media/msi3101/sdr-msi3101.c
+++ b/drivers/staging/media/msi3101/sdr-msi3101.c
@@ -57,7 +57,7 @@
 #define V4L2_PIX_FMT_SDR_S14    v4l2_fourcc('D', 'S', '1', '4') /* signed 
14-bit */
 #define V4L2_PIX_FMT_SDR_MSI2500_384 v4l2_fourcc('M', '3', '8', '4') /* Mirics 
MSi2500 format 384 */
 
-static const struct v4l2_frequency_band bands_adc[] = {
+static const struct v4l2_frequency_band bands[] = {
        {
                .tuner = 0,
                .type = V4L2_TUNER_ADC,
@@ -68,24 +68,6 @@ static const struct v4l2_frequency_band bands_adc[] = {
        },
 };
 
-static const struct v4l2_frequency_band bands_rf[] = {
-       {
-               .tuner = 1,
-               .type = V4L2_TUNER_RF,
-               .index = 0,
-               .capability = V4L2_TUNER_CAP_1HZ | V4L2_TUNER_CAP_FREQ_BANDS,
-               .rangelow   =   49000000,
-               .rangehigh  =  263000000,
-       }, {
-               .tuner = 1,
-               .type = V4L2_TUNER_RF,
-               .index = 1,
-               .capability = V4L2_TUNER_CAP_1HZ | V4L2_TUNER_CAP_FREQ_BANDS,
-               .rangelow   =  390000000,
-               .rangehigh  =  960000000,
-       },
-};
-
 /* stream formats */
 struct msi3101_format {
        char    *name;
@@ -1268,8 +1250,8 @@ static int msi3101_s_frequency(struct file *file, void 
*priv,
 
        if (f->tuner == 0) {
                s->f_adc = clamp_t(unsigned int, f->frequency,
-                               bands_adc[0].rangelow,
-                               bands_adc[0].rangehigh);
+                               bands[0].rangelow,
+                               bands[0].rangehigh);
                dev_dbg(&s->udev->dev, "%s: ADC frequency=%u Hz\n",
                                __func__, s->f_adc);
                ret = msi3101_set_usb_adc(s);
@@ -1286,25 +1268,25 @@ static int msi3101_enum_freq_bands(struct file *file, 
void *priv,
                struct v4l2_frequency_band *band)
 {
        struct msi3101_state *s = video_drvdata(file);
+       int ret;
        dev_dbg(&s->udev->dev, "%s: tuner=%d type=%d index=%d\n",
                        __func__, band->tuner, band->type, band->index);
 
        if (band->tuner == 0) {
-               if (band->index >= ARRAY_SIZE(bands_adc))
-                       return -EINVAL;
-
-               *band = bands_adc[band->index];
+               if (band->index >= ARRAY_SIZE(bands)) {
+                       ret = -EINVAL;
+               } else {
+                       *band = bands[band->index];
+                       ret = 0;
+               }
        } else if (band->tuner == 1) {
-               /* TODO: add that to v4l2_subdev_tuner_ops */
-               if (band->index >= ARRAY_SIZE(bands_rf))
-                       return -EINVAL;
-
-               *band = bands_rf[band->index];
+               ret = v4l2_subdev_call(s->v4l2_subdev, tuner,
+                               enum_freq_bands, band);
        } else {
-               return -EINVAL;
+               ret = -EINVAL;
        }
 
-       return 0;
+       return ret;
 }
 
 static const struct v4l2_ioctl_ops msi3101_ioctl_ops = {
@@ -1413,7 +1395,7 @@ static int msi3101_probe(struct usb_interface *intf,
        spin_lock_init(&s->queued_bufs_lock);
        INIT_LIST_HEAD(&s->queued_bufs);
        s->udev = udev;
-       s->f_adc = bands_adc[0].rangelow;
+       s->f_adc = bands[0].rangelow;
        s->pixelformat = V4L2_SDR_FMT_CU8;
 
        /* Init videobuf2 queue structure */
-- 
1.8.5.3

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to