linux-media.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] [media] si2157: Improve support Si2158-A20 tuner
@ 2016-08-04  7:54 Oleh Kravchenko
       [not found] ` <CAAZRmGxM8U+PBfP4RWfnLDH0gdw+2oSuMAivzYBxRqSqTPM4FQ@mail.gmail.com>
  2016-10-24 15:54 ` [PATCH] [media] si2157: Improve support Si2158-A20 tuner Mauro Carvalho Chehab
  0 siblings, 2 replies; 6+ messages in thread
From: Oleh Kravchenko @ 2016-08-04  7:54 UTC (permalink / raw)
  To: linux-media, crope; +Cc: Oleh Kravchenko

Signed-off-by: Oleh Kravchenko <oleg@kaa.org.ua>
---
 drivers/media/tuners/si2157.c      | 34 +++++++++++++++++++++++++++-------
 drivers/media/tuners/si2157_priv.h |  1 +
 2 files changed, 28 insertions(+), 7 deletions(-)

diff --git a/drivers/media/tuners/si2157.c b/drivers/media/tuners/si2157.c
index 57b2508..d7035a5 100644
--- a/drivers/media/tuners/si2157.c
+++ b/drivers/media/tuners/si2157.c
@@ -103,12 +103,21 @@ static int si2157_init(struct dvb_frontend *fe)
 		goto warm;
 
 	/* power up */
-	if (dev->chiptype == SI2157_CHIPTYPE_SI2146) {
-		memcpy(cmd.args, "\xc0\x05\x01\x00\x00\x0b\x00\x00\x01", 9);
-		cmd.wlen = 9;
-	} else {
-		memcpy(cmd.args, "\xc0\x00\x0c\x00\x00\x01\x01\x01\x01\x01\x01\x02\x00\x00\x01", 15);
-		cmd.wlen = 15;
+	switch (dev->chiptype) {
+		case SI2157_CHIPTYPE_SI2146:
+			memcpy(cmd.args, "\xc0\x05\x01\x00\x00\x0b\x00\x00\x01", 9);
+			cmd.wlen = 9;
+			break;
+
+		case SI2157_CHIPTYPE_SI2158:
+			memcpy(cmd.args, "\xC0\x00\x00\x00\x00\x01\x01\x01\x01\x01\x01\x02\x00\x00\x01", 15);
+			cmd.wlen = 15;
+			break;
+
+		default:
+			memcpy(cmd.args, "\xc0\x00\x0c\x00\x00\x01\x01\x01\x01\x01\x01\x02\x00\x00\x01", 15);
+			cmd.wlen = 15;
+			break;
 	}
 	cmd.rlen = 1;
 	ret = si2157_cmd_execute(client, &cmd);
@@ -204,6 +213,16 @@ skip_fw_download:
 	if (ret)
 		goto err;
 
+	/* start tuner? */
+	if (SI2157_CHIPTYPE_SI2158 == dev->chiptype) {
+		memcpy(cmd.args, "\xC0\x00\x0C", 3);
+		cmd.wlen = 3;
+		cmd.rlen = 1;
+		ret = si2157_cmd_execute(client, &cmd);
+		if (ret)
+			goto err;
+	}
+
 	/* query firmware version */
 	memcpy(cmd.args, "\x11", 1);
 	cmd.wlen = 1;
@@ -506,8 +525,9 @@ static int si2157_remove(struct i2c_client *client)
 }
 
 static const struct i2c_device_id si2157_id_table[] = {
-	{"si2157", SI2157_CHIPTYPE_SI2157},
 	{"si2146", SI2157_CHIPTYPE_SI2146},
+	{"si2157", SI2157_CHIPTYPE_SI2157},
+	{"si2158", SI2157_CHIPTYPE_SI2158},
 	{}
 };
 MODULE_DEVICE_TABLE(i2c, si2157_id_table);
diff --git a/drivers/media/tuners/si2157_priv.h b/drivers/media/tuners/si2157_priv.h
index d6b2c7b..677fa00 100644
--- a/drivers/media/tuners/si2157_priv.h
+++ b/drivers/media/tuners/si2157_priv.h
@@ -42,6 +42,7 @@ struct si2157_dev {
 
 #define SI2157_CHIPTYPE_SI2157 0
 #define SI2157_CHIPTYPE_SI2146 1
+#define SI2157_CHIPTYPE_SI2158 2
 
 /* firmware command struct */
 #define SI2157_ARGLEN      30
-- 
2.7.3


^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2016-10-24 15:54 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-08-04  7:54 [PATCH] [media] si2157: Improve support Si2158-A20 tuner Oleh Kravchenko
     [not found] ` <CAAZRmGxM8U+PBfP4RWfnLDH0gdw+2oSuMAivzYBxRqSqTPM4FQ@mail.gmail.com>
2016-08-04 10:26   ` Oleh Kravchenko
     [not found]     ` <CAAZRmGykv5LOmBxKYNUgi07+Rt=OTN3_+Cdu7BUGT0KbY0LPiA@mail.gmail.com>
2016-08-04 12:03       ` Oleh Kravchenko
2016-08-04 14:11         ` Oleh Kravchenko
2016-08-04 20:46           ` Evromedia USB Full Hybrid Full HD works!!! Oleh Kravchenko
2016-10-24 15:54 ` [PATCH] [media] si2157: Improve support Si2158-A20 tuner Mauro Carvalho Chehab

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).