V4L/DVB (8598): au8522: clean up function au8522_set_if
authorMichael Krufky <mkrufky@linuxtv.org>
Wed, 3 Sep 2008 19:46:40 +0000 (16:46 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Wed, 3 Sep 2008 21:36:20 +0000 (18:36 -0300)
re-write this function to make it simpler

Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
drivers/media/dvb/frontends/au8522.c

index 5741bc9..92c8fbe 100644 (file)
@@ -304,67 +304,40 @@ static int au8522_mse2snr_lookup(struct mse2snr_tab *tab, int sz, int mse,
        return ret;
 }
 
-/* 3.25 MHz IF Frequency table */
-static struct {
-       u16 reg;
-       u16 data;
-} if_3_25_mhz_tab[] = {
-       { 0x80b5, 0x00 },
-       { 0x80b6, 0x3d },
-       { 0x80b7, 0xa0 },
-};
-
-/* 4.00 MHz IF Frequency table */
-static struct {
-       u16 reg;
-       u16 data;
-} if_4_mhz_tab[] = {
-       { 0x80b5, 0x00 },
-       { 0x80b6, 0x4b },
-       { 0x80b7, 0xd9 },
-};
-
-/* 6.00 MHz IF Frequency table */
-static struct {
-       u16 reg;
-       u16 data;
-} if_6_mhz_tab[] = {
-       { 0x80b5, 0xfb },
-       { 0x80b6, 0x8e },
-       { 0x80b7, 0x39 },
-};
-
 static int au8522_set_if(struct dvb_frontend *fe, enum au8522_if_freq if_freq)
 {
        struct au8522_state *state = fe->demodulator_priv;
-       int i;
+       u8 r0b5, r0b6, r0b7;
+       char *ifmhz;
 
        switch (if_freq) {
        case AU8522_IF_3_25MHZ:
-               dprintk("%s() 3.25 MHz\n", __func__);
-               for (i = 0; i < ARRAY_SIZE(if_3_25_mhz_tab); i++)
-                       au8522_writereg(state,
-                                       if_3_25_mhz_tab[i].reg,
-                                       if_3_25_mhz_tab[i].data);
+               ifmhz = "3.25";
+               r0b5 = 0x00;
+               r0b6 = 0x3d;
+               r0b7 = 0xa0;
                break;
        case AU8522_IF_4MHZ:
-               dprintk("%s() 4.00 MHz\n", __func__);
-               for (i = 0; i < ARRAY_SIZE(if_4_mhz_tab); i++)
-                       au8522_writereg(state,
-                                       if_4_mhz_tab[i].reg,
-                                       if_4_mhz_tab[i].data);
+               ifmhz = "4.00";
+               r0b5 = 0x00;
+               r0b6 = 0x4b;
+               r0b7 = 0xd9;
                break;
        case AU8522_IF_6MHZ:
-               dprintk("%s() 6.00 MHz\n", __func__);
-               for (i = 0; i < ARRAY_SIZE(if_6_mhz_tab); i++)
-                       au8522_writereg(state,
-                                       if_6_mhz_tab[i].reg,
-                                       if_6_mhz_tab[i].data);
+               ifmhz = "6.00";
+               r0b5 = 0xfb;
+               r0b6 = 0x8e;
+               r0b7 = 0x39;
                break;
        default:
                dprintk("%s() IF Frequency not supported\n", __func__);
                return -EINVAL;
        }
+       dprintk("%s() %s MHz\n", __func__, ifmhz);
+       au8522_writereg(state, 0x80b5, r0b5);
+       au8522_writereg(state, 0x80b6, r0b6);
+       au8522_writereg(state, 0x80b7, r0b7);
+
        return 0;
 }