[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: Antti Palosaari <crope@iki.fi> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
This commit is contained in:
parent
66f6319936
commit
9e0a976ed6
|
@ -371,7 +371,11 @@ static int it9137_set_params(struct dvb_frontend *fe)
|
|||
static int it913x_sleep(struct dvb_frontend *fe)
|
||||
{
|
||||
struct it913x_state *state = fe->tuner_priv;
|
||||
return it913x_script_loader(state, it9137_tuner_off);
|
||||
|
||||
if (state->chip_ver == 0x01)
|
||||
return it913x_script_loader(state, it9135ax_tuner_off);
|
||||
else
|
||||
return it913x_script_loader(state, it9137_tuner_off);
|
||||
}
|
||||
|
||||
static int it913x_release(struct dvb_frontend *fe)
|
||||
|
|
|
@ -36,6 +36,17 @@ struct it913xset { u32 pro;
|
|||
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) */
|
||||
static struct it913xset it9137_tuner_off[] = {
|
||||
{PRO_DMOD, 0xec40, {0x00}, 0x01}, /* Power Down Tuner */
|
||||
|
|
Loading…
Reference in New Issue