aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/tuners
diff options
context:
space:
mode:
authorOlli Salonen <olli.salonen@iki.fi>2014-09-11 16:01:38 -0400
committerMauro Carvalho Chehab <mchehab@osg.samsung.com>2014-09-23 15:13:39 -0400
commitd87a50586dbeb2b6019b9e695799838401f21db6 (patch)
tree4d7a842079bb7a8f60fc2b2263e3d2d712048e56 /drivers/media/tuners
parent7ac95cf59d59473e680937319594ce0719497e98 (diff)
[media] si2157: Add support for Si2147-A30 tuner
This patch adds support for Si2147-A30 tuner. Fairly trivial, no firmware needed for this tuner. However, command 14 00 02 07 01 00 seems to be mandatory. On Si2157 and Si2158 the value 0x0100 is the default value, so this patch does not impact the existing tuners/devices. On Si2147 the default is 0x0000 and I can't get a lock with that value. While here, fix the return length of the previous set command to 4 bytes. Signed-off-by: Olli Salonen <olli.salonen@iki.fi> Acked-by: Antti Palosaari <crope@iki.fi> Reviewed-by: Antti Palosaari <crope@iki.fi> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
Diffstat (limited to 'drivers/media/tuners')
-rw-r--r--drivers/media/tuners/si2157.c13
-rw-r--r--drivers/media/tuners/si2157.h2
-rw-r--r--drivers/media/tuners/si2157_priv.h2
3 files changed, 13 insertions, 4 deletions
diff --git a/drivers/media/tuners/si2157.c b/drivers/media/tuners/si2157.c
index 5901484011b9..cf97142e01e6 100644
--- a/drivers/media/tuners/si2157.c
+++ b/drivers/media/tuners/si2157.c
@@ -1,5 +1,5 @@
1/* 1/*
2 * Silicon Labs Si2157/2158 silicon tuner driver 2 * Silicon Labs Si2147/2157/2158 silicon tuner driver
3 * 3 *
4 * Copyright (C) 2014 Antti Palosaari <crope@iki.fi> 4 * Copyright (C) 2014 Antti Palosaari <crope@iki.fi>
5 * 5 *
@@ -113,12 +113,14 @@ static int si2157_init(struct dvb_frontend *fe)
113 113
114 #define SI2158_A20 ('A' << 24 | 58 << 16 | '2' << 8 | '0' << 0) 114 #define SI2158_A20 ('A' << 24 | 58 << 16 | '2' << 8 | '0' << 0)
115 #define SI2157_A30 ('A' << 24 | 57 << 16 | '3' << 8 | '0' << 0) 115 #define SI2157_A30 ('A' << 24 | 57 << 16 | '3' << 8 | '0' << 0)
116 #define SI2147_A30 ('A' << 24 | 47 << 16 | '3' << 8 | '0' << 0)
116 117
117 switch (chip_id) { 118 switch (chip_id) {
118 case SI2158_A20: 119 case SI2158_A20:
119 fw_file = SI2158_A20_FIRMWARE; 120 fw_file = SI2158_A20_FIRMWARE;
120 break; 121 break;
121 case SI2157_A30: 122 case SI2157_A30:
123 case SI2147_A30:
122 goto skip_fw_download; 124 goto skip_fw_download;
123 break; 125 break;
124 default: 126 default:
@@ -265,7 +267,14 @@ static int si2157_set_params(struct dvb_frontend *fe)
265 if (s->inversion) 267 if (s->inversion)
266 cmd.args[5] = 0x01; 268 cmd.args[5] = 0x01;
267 cmd.wlen = 6; 269 cmd.wlen = 6;
268 cmd.rlen = 1; 270 cmd.rlen = 4;
271 ret = si2157_cmd_execute(s, &cmd);
272 if (ret)
273 goto err;
274
275 memcpy(cmd.args, "\x14\x00\x02\x07\x01\x00", 6);
276 cmd.wlen = 6;
277 cmd.rlen = 4;
269 ret = si2157_cmd_execute(s, &cmd); 278 ret = si2157_cmd_execute(s, &cmd);
270 if (ret) 279 if (ret)
271 goto err; 280 goto err;
diff --git a/drivers/media/tuners/si2157.h b/drivers/media/tuners/si2157.h
index 6da4d5d1c817..d3b19cadb4a1 100644
--- a/drivers/media/tuners/si2157.h
+++ b/drivers/media/tuners/si2157.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Silicon Labs Si2157/2158 silicon tuner driver 2 * Silicon Labs Si2147/2157/2158 silicon tuner driver
3 * 3 *
4 * Copyright (C) 2014 Antti Palosaari <crope@iki.fi> 4 * Copyright (C) 2014 Antti Palosaari <crope@iki.fi>
5 * 5 *
diff --git a/drivers/media/tuners/si2157_priv.h b/drivers/media/tuners/si2157_priv.h
index 4080a57962f0..e71ffafed951 100644
--- a/drivers/media/tuners/si2157_priv.h
+++ b/drivers/media/tuners/si2157_priv.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Silicon Labs Si2157/2158 silicon tuner driver 2 * Silicon Labs Si2147/2157/2158 silicon tuner driver
3 * 3 *
4 * Copyright (C) 2014 Antti Palosaari <crope@iki.fi> 4 * Copyright (C) 2014 Antti Palosaari <crope@iki.fi>
5 * 5 *