mb86a20s: Add a few more register settings at the init seq
authorMauro Carvalho Chehab <mchehab@redhat.com>
Wed, 11 Jan 2012 13:00:28 +0000 (11:00 -0200)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Wed, 11 Jan 2012 13:15:38 +0000 (11:15 -0200)
Some time ago, Manoel sent us a patch adding more stuff
to the init sequence. However, his patch were also doing
non-related stuff, by changing the init logic without
any good reason. So, it was asked for him to submit a
patch with just the data that has changed, in order to
allow us to better analyze it.

As he didn't what it was requested, I finally found some
time to dig into his init sequence and add it here.

Basically, new stuff is added there. There are a few changes:

1) The removal of the extra (duplicated) logic that puts
   the chip into the serial mode;
2) Some Viterbi VBER measurement init data was changed from
   0x00 to 0xff for layer A, to match what was done for
   layers B and C.

None of those caused any regressions and both make sense
on my eyes.

The other parameters additions actually increased the
tuning quality for some channels. Yet, some channels that
were previously discovered with scan disappered, while
others appeared instead. This were tested in Brasilia,
with an external antena.

At the overall, it is now a little better. So, better to
add these, and then try to figure out a configuration that
would get even better scanning results.

Reported-by: Manoel Pinheiro <pinusdtv@hotmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/dvb/frontends/mb86a20s.c

index 011a106bd07c06d43bbf7781cacd776d4de57fe1..7fa3e472cdcaf40e0af6d97a4515a6b383dea0dd 100644 (file)
@@ -66,6 +66,7 @@ static struct regdata mb86a20s_init[] = {
        { 0x71, 0x00 },
        { 0x28, 0x2a }, { 0x29, 0x00 }, { 0x2a, 0xff }, { 0x2b, 0x80 },
        { 0x28, 0x20 }, { 0x29, 0x33 }, { 0x2a, 0xdf }, { 0x2b, 0xa9 },
+       { 0x28, 0x22 }, { 0x29, 0x00 }, { 0x2a, 0x1f }, { 0x2b, 0xf0 },
        { 0x3b, 0x21 },
        { 0x3c, 0x3a },
        { 0x01, 0x0d },
@@ -91,14 +92,16 @@ static struct regdata mb86a20s_init[] = {
        { 0x04, 0x07 }, { 0x05, 0xd8 },
        { 0x04, 0x12 }, { 0x05, 0x00 },
        { 0x04, 0x13 }, { 0x05, 0xff },
+       { 0x04, 0x15 }, { 0x05, 0x4e },
+       { 0x04, 0x16 }, { 0x05, 0x20 },
        { 0x52, 0x01 },
-       { 0x50, 0xa7 }, { 0x51, 0x00 },
+       { 0x50, 0xa7 }, { 0x51, 0xff },
        { 0x50, 0xa8 }, { 0x51, 0xff },
        { 0x50, 0xa9 }, { 0x51, 0xff },
-       { 0x50, 0xaa }, { 0x51, 0x00 },
+       { 0x50, 0xaa }, { 0x51, 0xff },
        { 0x50, 0xab }, { 0x51, 0xff },
        { 0x50, 0xac }, { 0x51, 0xff },
-       { 0x50, 0xad }, { 0x51, 0x00 },
+       { 0x50, 0xad }, { 0x51, 0xff },
        { 0x50, 0xae }, { 0x51, 0xff },
        { 0x50, 0xaf }, { 0x51, 0xff },
        { 0x5e, 0x07 },
@@ -123,6 +126,11 @@ static struct regdata mb86a20s_init[] = {
        { 0x50, 0xd6 }, { 0x51, 0x1f },
        { 0x50, 0xd2 }, { 0x51, 0x03 },
        { 0x50, 0xd7 }, { 0x51, 0x3f },
+       { 0x28, 0x74 }, { 0x29, 0x00 }, { 0x28, 0x74 }, { 0x29, 0x40 },
+       { 0x28, 0x46 }, { 0x29, 0x2c }, { 0x28, 0x46 }, { 0x29, 0x0c },
+       { 0x04, 0x40 }, { 0x05, 0x01 },
+       { 0x28, 0x00 }, { 0x29, 0x10 },
+       { 0x28, 0x05 }, { 0x29, 0x02 },
        { 0x1c, 0x01 },
        { 0x28, 0x06 }, { 0x29, 0x00 }, { 0x2a, 0x00 }, { 0x2b, 0x03 },
        { 0x28, 0x07 }, { 0x29, 0x00 }, { 0x2a, 0x00 }, { 0x2b, 0x0d },
@@ -157,7 +165,7 @@ static struct regdata mb86a20s_init[] = {
        { 0x50, 0x26 }, { 0x51, 0x00 },
        { 0x50, 0x27 }, { 0x51, 0xc3 },
        { 0x50, 0x39 }, { 0x51, 0x02 },
-       { 0x50, 0xd5 }, { 0x51, 0x01 },
+       { 0x28, 0x6a }, { 0x29, 0x00 }, { 0x2a, 0x00 }, { 0x2b, 0x00 },
        { 0xd0, 0x00 },
 };