Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

[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
Loading
Loading
Loading
Loading
+9 −2
Original line number Diff line number Diff line
@@ -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 */
+1 −0
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@ struct si2157 {
	struct i2c_client *client;
	struct dvb_frontend *fe;
	bool active;
	bool fw_loaded;
	bool inversion;
};