[media] radio-bcm2048: Fix region selection
authorJan Roemisch <maxx@spaceboyz.net>
Tue, 9 Jun 2015 11:44:33 +0000 (08:44 -0300)
committerMauro Carvalho Chehab <mchehab@osg.samsung.com>
Mon, 6 Jul 2015 11:25:47 +0000 (08:25 -0300)
This patch fixes region selection for lower bottom_frequency in BCM2048 FM
receiver. It also removes "Japan wide band" region since this is impossible
to do just like that.

Signed-off-by: Jan Roemisch <maxx@spaceboyz.net>
Acked-by: Pali Rohár <pali.rohar@gmail.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
drivers/staging/media/bcm2048/radio-bcm2048.c

index 8bc68e2b4052be951bb41ef67068e8da3bc10f40..fb55e5941445a9c10600bfdd796bc9ee448e3625 100644 (file)
@@ -342,14 +342,6 @@ static struct region_info region_configs[] = {
                .deemphasis             = 50,
                .region                 = 3,
        },
-       /* Japan wide band */
-       {
-               .channel_spacing        = 10,
-               .bottom_frequency       = 76000,
-               .top_frequency          = 108000,
-               .deemphasis             = 50,
-               .region                 = 4,
-       },
 };
 
 /*
@@ -741,6 +733,18 @@ static int bcm2048_set_region(struct bcm2048_device *bdev, u8 region)
 
        mutex_lock(&bdev->mutex);
        bdev->region_info = region_configs[region];
+
+       if (region_configs[region].bottom_frequency < 87500)
+               bdev->cache_fm_ctrl |= BCM2048_BAND_SELECT;
+       else
+               bdev->cache_fm_ctrl &= ~BCM2048_BAND_SELECT;
+
+       err = bcm2048_send_command(bdev, BCM2048_I2C_FM_CTRL,
+                                       bdev->cache_fm_ctrl);
+       if (err) {
+               mutex_unlock(&bdev->mutex);
+               goto done;
+       }
        mutex_unlock(&bdev->mutex);
 
        if (bdev->frequency < region_configs[region].bottom_frequency ||