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

Commit f6942944 authored by Antti Palosaari's avatar Antti Palosaari Committed by Mauro Carvalho Chehab
Browse files

[media] it913x: fix tuner sleep power leak



IT913x tuner driver disables own clock, provided by demod core, as
very a first operation when tuner is put on *sleep*. That likely
causes failure of all the rest commands on sleep sequence, which
leads situation where tuner is not actually on sleep, but consuming
a lot of power.

I measured 102mA current consumption from the USB before change
and after change it was only 32mA. Used device was single tuner
IT9135 BX.

Second reason to remove that register from tuner driver is reason
it is simply on wrong driver (demod vs. tuner), breaking the
principle of correct driver.

Clock is now provided more correctly af9033 demod driver as a
config option.

Cc: Bimow Chen <Bimow.Chen@ite.com.tw>
Signed-off-by: default avatarAntti Palosaari <crope@iki.fi>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
parent 15ba8202
Loading
Loading
Loading
Loading
+0 −1
Original line number Original line Diff line number Diff line
@@ -202,7 +202,6 @@ static int it913x_init(struct dvb_frontend *fe)


	/* Power Up Tuner - common all versions */
	/* Power Up Tuner - common all versions */
	ret = it913x_wr_reg(state, PRO_DMOD, 0xec40, 0x1);
	ret = it913x_wr_reg(state, PRO_DMOD, 0xec40, 0x1);
	ret |= it913x_wr_reg(state, PRO_DMOD, 0xfba8, 0x0);
	ret |= it913x_wr_reg(state, PRO_DMOD, 0xec57, 0x0);
	ret |= it913x_wr_reg(state, PRO_DMOD, 0xec57, 0x0);
	ret |= it913x_wr_reg(state, PRO_DMOD, 0xec58, 0x0);
	ret |= it913x_wr_reg(state, PRO_DMOD, 0xec58, 0x0);


+0 −1
Original line number Original line Diff line number Diff line
@@ -38,7 +38,6 @@ struct it913xset { u32 pro;


/* Tuner setting scripts (still keeping it9137) */
/* Tuner setting scripts (still keeping it9137) */
static struct it913xset it9137_tuner_off[] = {
static struct it913xset it9137_tuner_off[] = {
	{PRO_DMOD, 0xfba8, {0x01}, 0x01}, /* Tuner Clock Off  */
	{PRO_DMOD, 0xec40, {0x00}, 0x01}, /* Power Down Tuner */
	{PRO_DMOD, 0xec40, {0x00}, 0x01}, /* Power Down Tuner */
	{PRO_DMOD, 0xec02, {0x3f, 0x1f, 0x3f, 0x3f}, 0x04},
	{PRO_DMOD, 0xec02, {0x3f, 0x1f, 0x3f, 0x3f}, 0x04},
	{PRO_DMOD, 0xec06, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	{PRO_DMOD, 0xec06, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,