This is an automatic generated email to let you know that the following patch 
were queued at the 
http://git.linuxtv.org/media_tree.git tree:

Subject: [media] mb86a20s: add support for serial streams
Author:  Mauro Carvalho Chehab <[email protected]>
Date:    Sun Oct 3 16:48:49 2010 -0300

By comparing the traffic between Pixelview (cx23102-based and Kworld
(saa7134-based), the only difference is at register 0xd5. After some
tests, It seems that it is used to change mode between serial and parallel.

Signed-off-by: Mauro Carvalho Chehab <[email protected]>

 drivers/media/dvb/frontends/mb86a20s.c    |   18 +++++++++++++-----
 drivers/media/dvb/frontends/mb86a20s.h    |    1 +
 drivers/media/video/cx231xx/cx231xx-dvb.c |    1 +
 3 files changed, 15 insertions(+), 5 deletions(-)

---

http://git.linuxtv.org/media_tree.git?a=commitdiff;h=2d1b6c2a1905bea923c30d0d7ae47a240c16ee8a

diff --git a/drivers/media/dvb/frontends/mb86a20s.c 
b/drivers/media/dvb/frontends/mb86a20s.c
index 1e6bec6..b4de8f1 100644
--- a/drivers/media/dvb/frontends/mb86a20s.c
+++ b/drivers/media/dvb/frontends/mb86a20s.c
@@ -43,10 +43,6 @@ struct mb86a20s_state {
        const struct mb86a20s_config *config;
 
        struct dvb_frontend frontend;
-
-
-
-
 };
 
 struct regdata {
@@ -175,7 +171,7 @@ static struct regdata mb86a20s_init[] = {
        { 0x45, 0x04 },
        { 0x48, 0x04 },
        { 0x50, 0xd5 },
-       { 0x51, 0x01 },
+       { 0x51, 0x01 },         /* Serial */
        { 0x50, 0xd6 },
        { 0x51, 0x1f },
        { 0x50, 0xd2 },
@@ -376,6 +372,7 @@ static int mb86a20s_initfe(struct dvb_frontend *fe)
 {
        struct mb86a20s_state *state = fe->demodulator_priv;
        int rc;
+       u8  regD5 = 1;
 
        dprintk("\n");
 
@@ -384,6 +381,17 @@ static int mb86a20s_initfe(struct dvb_frontend *fe)
        if (rc < 0)
                return rc;
 
+       if (!state->config->is_serial) {
+               regD5 &= ~1;
+
+               rc = mb86a20s_writereg(state, 0x50, 0xd5);
+               if (rc < 0)
+                       return rc;
+               rc = mb86a20s_writereg(state, 0x51, regD5);
+               if (rc < 0)
+                       return rc;
+       }
+
        return 0;
 }
 
diff --git a/drivers/media/dvb/frontends/mb86a20s.h 
b/drivers/media/dvb/frontends/mb86a20s.h
index e346198..bf22e77 100644
--- a/drivers/media/dvb/frontends/mb86a20s.h
+++ b/drivers/media/dvb/frontends/mb86a20s.h
@@ -26,6 +26,7 @@
 
 struct mb86a20s_config {
        u8 demod_address;
+       bool is_serial;
 };
 
 #if defined(CONFIG_DVB_MB86A20S) || (defined(CONFIG_DVB_MB86A20S_MODULE) \
diff --git a/drivers/media/video/cx231xx/cx231xx-dvb.c 
b/drivers/media/video/cx231xx/cx231xx-dvb.c
index b55e7e0..fe59a1c 100644
--- a/drivers/media/video/cx231xx/cx231xx-dvb.c
+++ b/drivers/media/video/cx231xx/cx231xx-dvb.c
@@ -143,6 +143,7 @@ static struct tda18271_config hcw_tda18271_config = {
 
 static const struct mb86a20s_config pv_mb86a20s_config = {
        .demod_address = 0x10,
+       .is_serial = true,
 };
 
 static struct tda18271_config pv_tda18271_config = {

_______________________________________________
linuxtv-commits mailing list
[email protected]
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linuxtv-commits

Reply via email to