mirror of
https://github.com/torvalds/linux.git
synced 2024-11-19 02:21:47 +00:00
[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: Olli Salonen <olli.salonen@iki.fi> Signed-off-by: Antti Palosaari <crope@iki.fi> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
This commit is contained in:
parent
0e38233d32
commit
4cbf6ed910
@ -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 @@ skip_fw_download:
|
||||
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;
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user