V4L/DVB (9413): Bug: Set Auxilliary Clock Register correctly
authorManu Abraham <abraham.manu@gmail.com>
Fri, 5 Oct 2007 12:04:32 +0000 (09:04 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Mon, 29 Dec 2008 19:53:17 +0000 (17:53 -0200)
Signed-off-by: Manu Abraham <manu@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/dvb/frontends/stb0899_drv.c
drivers/media/dvb/frontends/stb0899_reg.h

index 80791006d16842d63b11243276bf410d445c6deb..fe298654b34bbd34abc7da0c40fee73726fa3553 100644 (file)
@@ -1145,7 +1145,7 @@ static int stb0899_set_tone(struct dvb_frontend *fe, fe_sec_tone_mode_t tone)
        struct stb0899_state *state = fe->demodulator_priv;
        struct stb0899_internal *internal = &state->internal;
 
-       u8 div;
+       u8 div, reg;
 
        /* wait for diseqc idle */
        if (stb0899_wait_diseqc_txidle(state, 100) < 0)
@@ -1156,7 +1156,9 @@ static int stb0899_set_tone(struct dvb_frontend *fe, fe_sec_tone_mode_t tone)
                div = (internal->master_clk / 100) / 5632;
                div = (div + 5) / 10;
                stb0899_write_reg(state, STB0899_DISEQCOCFG, 0x66);
-               stb0899_write_reg(state, STB0899_ACRPRESC, 0x31);
+               reg = stb0899_read_reg(state, STB0899_ACRPRESC);
+               STB0899_SETFIELD_VAL(ACRPRESC, reg, 0x03);
+               stb0899_write_reg(state, STB0899_ACRPRESC, reg);
                stb0899_write_reg(state, STB0899_ACRDIV1, div);
                break;
        case SEC_TONE_OFF:
index cc65e08f9142e62f6fdfa75913d6d12a27b7e7a1..d2e9217c767a556083853b16bbf7d9b588099582 100644 (file)
 /*     General Purpose */
 #define STB0899_SYSREG                         0xf101
 #define STB0899_ACRPRESC                       0xf110
+#define STB0899_OFFST_RSVD2                    7
+#define STB0899_WIDTH_RSVD2                    1
+#define STB0899_OFFST_ACRPRESC                 4
+#define STB0899_WIDTH_ACRPRESC                 3
+#define STB0899_OFFST_RSVD1                    3
+#define STB0899_WIDTH_RSVD1                    1
+#define STB0899_OFFST_ACRPRESC2                        0
+#define STB0899_WIDTH_ACRPRESC2                        3
+
 #define STB0899_ACRDIV1                                0xf111
 #define STB0899_ACRDIV2                                0xf112
 #define STB0899_DACR1                          0xf113