[media] radio-aztech: Implement signal strength detection and fix stereo detection
authorOndrej Zary <linux@rainbow-software.org>
Fri, 19 Jul 2013 16:46:18 +0000 (13:46 -0300)
committerMauro Carvalho Chehab <m.chehab@samsung.com>
Fri, 26 Jul 2013 16:34:09 +0000 (13:34 -0300)
Current stereo detection code is wrong - it reads TUNED bit instead of STEREO bit.
Fix that and implement signal strength detection too.
Also remove useless s_stereo functionn.

Signed-off-by: Ondrej Zary <linux@rainbow-software.org>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
drivers/media/radio/radio-aztech.c

index 2f5671f2e17e35a5497a5a0560867efc2f572068..705dd6f9162c019b55ee0ab987bbf04d7c0df59f 100644 (file)
@@ -94,21 +94,16 @@ static int aztech_s_frequency(struct radio_isa_card *isa, u32 freq)
        return 0;
 }
 
-/* thanks to Michael Dwyer for giving me a dose of clues in
- * the signal strength department..
- *
- * This card has a stereo bit - bit 0 set = mono, not set = stereo
- */
 static u32 aztech_g_rxsubchans(struct radio_isa_card *isa)
 {
-       if (inb(isa->io) & 1)
+       if (inb(isa->io) & AZTECH_BIT_MONO)
                return V4L2_TUNER_SUB_MONO;
        return V4L2_TUNER_SUB_STEREO;
 }
 
-static int aztech_s_stereo(struct radio_isa_card *isa, bool stereo)
+static u32 aztech_g_signal(struct radio_isa_card *isa)
 {
-       return aztech_s_frequency(isa, isa->freq);
+       return (inb(isa->io) & AZTECH_BIT_NOT_TUNED) ? 0 : 0xffff;
 }
 
 static int aztech_s_mute_volume(struct radio_isa_card *isa, bool mute, int vol)
@@ -126,8 +121,8 @@ static const struct radio_isa_ops aztech_ops = {
        .alloc = aztech_alloc,
        .s_mute_volume = aztech_s_mute_volume,
        .s_frequency = aztech_s_frequency,
-       .s_stereo = aztech_s_stereo,
        .g_rxsubchans = aztech_g_rxsubchans,
+       .g_signal = aztech_g_signal,
 };
 
 static const int aztech_ioports[] = { 0x350, 0x358 };