|
@@ -1,5 +1,5 @@
|
|
|
/*
|
|
|
- * Silicon Labs Si2157/2158 silicon tuner driver
|
|
|
+ * Silicon Labs Si2147/2157/2158 silicon tuner driver
|
|
|
*
|
|
|
* Copyright (C) 2014 Antti Palosaari <crope@iki.fi>
|
|
|
*
|
|
@@ -113,12 +113,14 @@ static int si2157_init(struct dvb_frontend *fe)
|
|
|
|
|
|
#define SI2158_A20 ('A' << 24 | 58 << 16 | '2' << 8 | '0' << 0)
|
|
|
#define SI2157_A30 ('A' << 24 | 57 << 16 | '3' << 8 | '0' << 0)
|
|
|
+ #define SI2147_A30 ('A' << 24 | 47 << 16 | '3' << 8 | '0' << 0)
|
|
|
|
|
|
switch (chip_id) {
|
|
|
case SI2158_A20:
|
|
|
fw_file = SI2158_A20_FIRMWARE;
|
|
|
break;
|
|
|
case SI2157_A30:
|
|
|
+ case SI2147_A30:
|
|
|
goto skip_fw_download;
|
|
|
break;
|
|
|
default:
|
|
@@ -265,7 +267,14 @@ static int si2157_set_params(struct dvb_frontend *fe)
|
|
|
if (s->inversion)
|
|
|
cmd.args[5] = 0x01;
|
|
|
cmd.wlen = 6;
|
|
|
- cmd.rlen = 1;
|
|
|
+ cmd.rlen = 4;
|
|
|
+ ret = si2157_cmd_execute(s, &cmd);
|
|
|
+ if (ret)
|
|
|
+ goto err;
|
|
|
+
|
|
|
+ memcpy(cmd.args, "\x14\x00\x02\x07\x01\x00", 6);
|
|
|
+ cmd.wlen = 6;
|
|
|
+ cmd.rlen = 4;
|
|
|
ret = si2157_cmd_execute(s, &cmd);
|
|
|
if (ret)
|
|
|
goto err;
|