]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
media: si2168: add support for Mygica T230C v2
authorJan Pieter van Woerkom <jp@jpvw.nl>
Thu, 18 Jul 2019 00:36:54 +0000 (20:36 -0400)
committerMauro Carvalho Chehab <mchehab+samsung@kernel.org>
Mon, 22 Jul 2019 19:30:28 +0000 (15:30 -0400)
The T230C v2 hardware needs a mode of the si2168 chip to be
set for which the si2168 driver previously had no support.
This patch uses a specific measure to configure this on the
T230C v2 hardware only - see the flag passed via the ts_mode
attribute and its dependency on USB_PID_MYGICA_T230C2.

Signed-off-by: Jan Pieter van Woerkom <jp@jpvw.nl>
Signed-off-by: Sean Young <sean@mess.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
drivers/media/dvb-frontends/si2168.c
drivers/media/dvb-frontends/si2168.h

index 168c503e9154f97d41642562ffe3a93aea5561c0..a574f1d77c56451ed7eafc44775aefe2cbf9a177 100644 (file)
@@ -82,8 +82,19 @@ static int si2168_ts_bus_ctrl(struct dvb_frontend *fe, int acquire)
 
        dev_dbg(&client->dev, "%s acquire: %d\n", __func__, acquire);
 
+       /* set manual value */
+       if (dev->ts_mode & SI2168_TS_CLK_MANUAL) {
+               memcpy(cmd.args, "\x14\x00\x0d\x10\xe8\x03", 6);
+               cmd.wlen = 6;
+               cmd.rlen = 4;
+               ret = si2168_cmd_execute(client, &cmd);
+               if (ret)
+                       return ret;
+       }
        /* set TS_MODE property */
        memcpy(cmd.args, "\x14\x00\x01\x10\x10\x00", 6);
+       if (dev->ts_mode & SI2168_TS_CLK_MANUAL)
+               cmd.args[4] = SI2168_TS_CLK_MANUAL;
        if (acquire)
                cmd.args[4] |= dev->ts_mode;
        else
index 3b04f84272d9dcc28bf5803c00dbe2d8943c1e62..50dccb394efa646537ec2982ad10de1e2319e0a5 100644 (file)
@@ -30,6 +30,7 @@ struct si2168_config {
 #define SI2168_TS_PARALLEL     0x06
 #define SI2168_TS_SERIAL       0x03
 #define SI2168_TS_TRISTATE     0x00
+#define SI2168_TS_CLK_MANUAL   0x20
        u8 ts_mode;
 
        /* TS clock inverted */