* [PATCH 1/2] si2168: debug printout for firmware version
@ 2014-11-27 19:42 Olli Salonen
2014-11-27 19:42 ` [PATCH 2/2] si2168: add support for firmware files in new format Olli Salonen
2014-11-27 21:49 ` [PATCH 1/2] si2168: debug printout for firmware version Antti Palosaari
0 siblings, 2 replies; 4+ messages in thread
From: Olli Salonen @ 2014-11-27 19:42 UTC (permalink / raw)
To: linux-media; +Cc: Olli Salonen
A debug printout for firmware version.
Signed-off-by: Olli Salonen <olli.salonen@iki.fi>
---
drivers/media/dvb-frontends/si2168.c | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/drivers/media/dvb-frontends/si2168.c b/drivers/media/dvb-frontends/si2168.c
index bec3aa5..6da38e8 100644
--- a/drivers/media/dvb-frontends/si2168.c
+++ b/drivers/media/dvb-frontends/si2168.c
@@ -489,6 +489,17 @@ static int si2168_init(struct dvb_frontend *fe)
if (ret)
goto err;
+ /* query firmware version */
+ memcpy(cmd.args, "\x11", 1);
+ cmd.wlen = 1;
+ cmd.rlen = 10;
+ ret = si2168_cmd_execute(s, &cmd);
+ if (ret)
+ goto err;
+
+ dev_dbg(&s->client->dev, "firmware version: %c.%c.%d\n",
+ cmd.args[6], cmd.args[7], cmd.args[8]);
+
/* set ts mode */
memcpy(cmd.args, "\x14\x00\x01\x10\x10\x00", 6);
cmd.args[4] |= s->ts_mode;
--
1.9.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH 2/2] si2168: add support for firmware files in new format
2014-11-27 19:42 [PATCH 1/2] si2168: debug printout for firmware version Olli Salonen
@ 2014-11-27 19:42 ` Olli Salonen
2014-11-27 22:12 ` Antti Palosaari
2014-11-27 21:49 ` [PATCH 1/2] si2168: debug printout for firmware version Antti Palosaari
1 sibling, 1 reply; 4+ messages in thread
From: Olli Salonen @ 2014-11-27 19:42 UTC (permalink / raw)
To: linux-media; +Cc: Olli Salonen
This patch adds support for new type of firmware versions of Si2168 chip.
Old type: n x 8 bytes (all data, first byte seems to be 04 or 05)
New type: n x 17 bytes (1 byte indicates len and max 16 bytes data)
New version of TechnoTrend CT2-4400 drivers
(http://www.tt-downloads.de/bda-treiber_4.3.0.0.zip) contains newer
firmware for Si2168-B40 that is in the new format. It can be extracted
with the following command:
dd if=ttTVStick4400_64.sys ibs=1 skip=323872 count=6919 of=dvb-demod-si2168-b40-01.fw
Signed-off-by: Olli Salonen <olli.salonen@iki.fi>
---
drivers/media/dvb-frontends/si2168.c | 46 +++++++++++++++++++++++++-----------
1 file changed, 32 insertions(+), 14 deletions(-)
diff --git a/drivers/media/dvb-frontends/si2168.c b/drivers/media/dvb-frontends/si2168.c
index 6da38e8..ce9ab44 100644
--- a/drivers/media/dvb-frontends/si2168.c
+++ b/drivers/media/dvb-frontends/si2168.c
@@ -462,20 +462,38 @@ static int si2168_init(struct dvb_frontend *fe)
dev_info(&s->client->dev, "downloading firmware from file '%s'\n",
fw_file);
- for (remaining = fw->size; remaining > 0; remaining -= i2c_wr_max) {
- len = remaining;
- if (len > i2c_wr_max)
- len = i2c_wr_max;
-
- memcpy(cmd.args, &fw->data[fw->size - remaining], len);
- cmd.wlen = len;
- cmd.rlen = 1;
- ret = si2168_cmd_execute(s, &cmd);
- if (ret) {
- dev_err(&s->client->dev,
- "firmware download failed=%d\n",
- ret);
- goto error_fw_release;
+ if ((fw->size % 17 == 0) && (fw->data[0] > 5)) {
+ /* firmware is in the new format */
+ for (remaining = fw->size; remaining > 0; remaining -= 17) {
+ len = fw->data[fw->size - remaining];
+ memcpy(cmd.args, &fw->data[(fw->size - remaining) + 1], len);
+ cmd.wlen = len;
+ cmd.rlen = 1;
+ ret = si2168_cmd_execute(s, &cmd);
+ if (ret) {
+ dev_err(&s->client->dev,
+ "firmware download failed=%d\n",
+ ret);
+ goto error_fw_release;
+ }
+ }
+ } else {
+ /* firmware is in the old format */
+ for (remaining = fw->size; remaining > 0; remaining -= i2c_wr_max) {
+ len = remaining;
+ if (len > i2c_wr_max)
+ len = i2c_wr_max;
+
+ memcpy(cmd.args, &fw->data[fw->size - remaining], len);
+ cmd.wlen = len;
+ cmd.rlen = 1;
+ ret = si2168_cmd_execute(s, &cmd);
+ if (ret) {
+ dev_err(&s->client->dev,
+ "firmware download failed=%d\n",
+ ret);
+ goto error_fw_release;
+ }
}
}
--
1.9.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH 1/2] si2168: debug printout for firmware version
2014-11-27 19:42 [PATCH 1/2] si2168: debug printout for firmware version Olli Salonen
2014-11-27 19:42 ` [PATCH 2/2] si2168: add support for firmware files in new format Olli Salonen
@ 2014-11-27 21:49 ` Antti Palosaari
1 sibling, 0 replies; 4+ messages in thread
From: Antti Palosaari @ 2014-11-27 21:49 UTC (permalink / raw)
To: Olli Salonen, linux-media
On 11/27/2014 09:42 PM, Olli Salonen wrote:
> A debug printout for firmware version.
>
> Signed-off-by: Olli Salonen <olli.salonen@iki.fi>
Reviewed-by: Antti Palosaari <crope@iki.fi>
regards
Antti
--
http://palosaari.fi/
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH 2/2] si2168: add support for firmware files in new format
2014-11-27 19:42 ` [PATCH 2/2] si2168: add support for firmware files in new format Olli Salonen
@ 2014-11-27 22:12 ` Antti Palosaari
0 siblings, 0 replies; 4+ messages in thread
From: Antti Palosaari @ 2014-11-27 22:12 UTC (permalink / raw)
To: Olli Salonen, linux-media
On 11/27/2014 09:42 PM, Olli Salonen wrote:
> This patch adds support for new type of firmware versions of Si2168 chip.
>
> Old type: n x 8 bytes (all data, first byte seems to be 04 or 05)
> New type: n x 17 bytes (1 byte indicates len and max 16 bytes data)
>
> New version of TechnoTrend CT2-4400 drivers
> (http://www.tt-downloads.de/bda-treiber_4.3.0.0.zip) contains newer
> firmware for Si2168-B40 that is in the new format. It can be extracted
> with the following command:
>
> dd if=ttTVStick4400_64.sys ibs=1 skip=323872 count=6919 of=dvb-demod-si2168-b40-01.fw
>
> Signed-off-by: Olli Salonen <olli.salonen@iki.fi>
Reviewed-by: Antti Palosaari <crope@iki.fi>
That change makes anyhow some headache on case driver is old and does
not support that newer firmware format... On that case it fails and
error is printed, though. But we can live with it as there is no
regression - kernel update is still possible. Only kernel downgrade
could cause problem if new format firmware is installed.
regards
Antti
--
http://palosaari.fi/
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2014-11-27 22:12 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-11-27 19:42 [PATCH 1/2] si2168: debug printout for firmware version Olli Salonen
2014-11-27 19:42 ` [PATCH 2/2] si2168: add support for firmware files in new format Olli Salonen
2014-11-27 22:12 ` Antti Palosaari
2014-11-27 21:49 ` [PATCH 1/2] si2168: debug printout for firmware version Antti Palosaari
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).