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

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

[media] it913x: fix IT9135 AX sleep



Old IT9135 AX needs a little bit different register settings for
sleep than newer IT9135 BX. This has been broken always, as power
management of the whole driver, but it started to be problem as I
fixed clock. Earlier clock was disabled very first on sleep and
rest of the commands were skipped by the chip as no clock, leaving
tuner full power state. When I fixed clocks these PM bugs started
raising out as I/O errors.

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 66f63199
Loading
Loading
Loading
Loading
+5 −1
Original line number Original line Diff line number Diff line
@@ -371,6 +371,10 @@ static int it9137_set_params(struct dvb_frontend *fe)
static int it913x_sleep(struct dvb_frontend *fe)
static int it913x_sleep(struct dvb_frontend *fe)
{
{
	struct it913x_state *state = fe->tuner_priv;
	struct it913x_state *state = fe->tuner_priv;

	if (state->chip_ver == 0x01)
		return it913x_script_loader(state, it9135ax_tuner_off);
	else
		return it913x_script_loader(state, it9137_tuner_off);
		return it913x_script_loader(state, it9137_tuner_off);
}
}


+11 −0
Original line number Original line Diff line number Diff line
@@ -36,6 +36,17 @@ struct it913xset { u32 pro;
			u8 count;
			u8 count;
};
};


/* Tuner setting scripts for IT9135 AX */
static struct it913xset it9135ax_tuner_off[] = {
	{PRO_DMOD, 0xec40, {0x00}, 0x01}, /* Power Down Tuner */
	{PRO_DMOD, 0xec02, {0x3f}, 0x01},
	{PRO_DMOD, 0xec03, {0x1f}, 0x01},
	{PRO_DMOD, 0xec04, {0x3f}, 0x01},
	{PRO_DMOD, 0xec05, {0x3f}, 0x01},
	{PRO_DMOD, 0xec3f, {0x01}, 0x01},
	{0xff, 0x0000, {0x00}, 0x00}, /* Terminating Entry */
};

/* 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, 0xec40, {0x00}, 0x01}, /* Power Down Tuner */
	{PRO_DMOD, 0xec40, {0x00}, 0x01}, /* Power Down Tuner */