Commit 4cbf6ed9 authored by Olli Salonen's avatar Olli Salonen Committed by Mauro Carvalho Chehab

[media] si2157: avoid firmware loading if it has been loaded previously

Add a variable into state to keep track if firmware has been loaded or not.
Skip firmware loading in case it is already loaded (resume from sleep).
Signed-off-by: default avatarOlli Salonen <olli.salonen@iki.fi>
Signed-off-by: default avatarAntti Palosaari <crope@iki.fi>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
parent 0e38233d
......@@ -89,7 +89,10 @@ static int si2157_init(struct dvb_frontend *fe)
dev_dbg(&s->client->dev, "\n");
/* configure? */
if (s->fw_loaded)
goto warm;
/* power up */
memcpy(cmd.args, "\xc0\x00\x0c\x00\x00\x01\x01\x01\x01\x01\x01\x02\x00\x00\x01", 15);
cmd.wlen = 15;
cmd.rlen = 1;
......@@ -176,9 +179,12 @@ static int si2157_init(struct dvb_frontend *fe)
if (ret)
goto err;
s->active = true;
s->fw_loaded = true;
warm:
s->active = true;
return 0;
err:
if (fw)
release_firmware(fw);
......@@ -320,6 +326,7 @@ static int si2157_probe(struct i2c_client *client,
s->client = client;
s->fe = cfg->fe;
s->inversion = cfg->inversion;
s->fw_loaded = false;
mutex_init(&s->i2c_mutex);
/* check if the tuner is there */
......
......@@ -26,6 +26,7 @@ struct si2157 {
struct i2c_client *client;
struct dvb_frontend *fe;
bool active;
bool fw_loaded;
bool inversion;
};
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment