All of lore.kernel.org
 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.