[media] si2168: TS clock inversion control
authorCrazyCat <crazycat69@narod.ru>
Fri, 14 Nov 2014 21:22:10 +0000 (18:22 -0300)
committerMauro Carvalho Chehab <mchehab@osg.samsung.com>
Tue, 25 Nov 2014 11:14:41 +0000 (09:14 -0200)
TS clock polarity control implemented.

[Antti: Resolved simple conflict]

Signed-off-by: Evgeny Plehov <EvgenyPlehov@ukr.net>
Reviewed-by: Olli Salonen <olli.salonen@iki.fi>
Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
drivers/media/dvb-frontends/si2168.c
drivers/media/dvb-frontends/si2168.h
drivers/media/dvb-frontends/si2168_priv.h

index 7bac748..16a347a 100644 (file)
@@ -308,14 +308,16 @@ static int si2168_set_frontend(struct dvb_frontend *fe)
        if (ret)
                goto err;
 
-       memcpy(cmd.args, "\x14\x00\x09\x10\xe3\x18", 6);
+       memcpy(cmd.args, "\x14\x00\x09\x10\xe3\x08", 6);
+       cmd.args[5] |= s->ts_clock_inv ? 0x00 : 0x10;
        cmd.wlen = 6;
        cmd.rlen = 4;
        ret = si2168_cmd_execute(s, &cmd);
        if (ret)
                goto err;
 
-       memcpy(cmd.args, "\x14\x00\x08\x10\xd7\x15", 6);
+       memcpy(cmd.args, "\x14\x00\x08\x10\xd7\x05", 6);
+       cmd.args[5] |= s->ts_clock_inv ? 0x00 : 0x10;
        cmd.wlen = 6;
        cmd.rlen = 4;
        ret = si2168_cmd_execute(s, &cmd);
@@ -669,6 +671,7 @@ static int si2168_probe(struct i2c_client *client,
        *config->i2c_adapter = s->adapter;
        *config->fe = &s->fe;
        s->ts_mode = config->ts_mode;
+       s->ts_clock_inv = config->ts_clock_inv;
        s->fw_loaded = false;
 
        i2c_set_clientdata(client, s);
index e086d67..87bc121 100644 (file)
@@ -37,6 +37,10 @@ struct si2168_config {
 
        /* TS mode */
        u8 ts_mode;
+
+       /* TS clock inverted */
+       bool ts_clock_inv;
+
 };
 
 #define SI2168_TS_PARALLEL     0x06
index e13983e..60bc334 100644 (file)
@@ -38,6 +38,7 @@ struct si2168 {
        bool active;
        bool fw_loaded;
        u8 ts_mode;
+       bool ts_clock_inv;
 };
 
 /* firmare command struct */