mirror of
https://github.com/edk2-porting/linux-next.git
synced 2025-01-27 08:05:27 +08:00
V4L/DVB (6612): Allow RESET_CLK callback and avoids unneeded loading
TM5600/TM6000 needs clock reset during firmware load. This patch adds the capability of caling a callback method for this. Also, avoids uneeded firmware loads. Signed-off-by: Michel Ludwig <michel.ludwig@gmail.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
This commit is contained in:
parent
a37b4c9bc8
commit
5403bbae9b
@ -461,6 +461,23 @@ static int load_firmware(struct dvb_frontend *fe, unsigned int type,
|
||||
}
|
||||
continue;
|
||||
}
|
||||
if (size >= 0xff00) {
|
||||
switch (size) {
|
||||
case 0xff00:
|
||||
rc = priv->tuner_callback(priv->video_dev,
|
||||
XC2028_RESET_CLK, 0);
|
||||
if (rc < 0) {
|
||||
tuner_err("Error at RESET code %d\n",
|
||||
(*p) & 0x7f);
|
||||
return -EINVAL;
|
||||
}
|
||||
default:
|
||||
tuner_info("Invalid RESET code %d\n",
|
||||
size & 0x7f);
|
||||
return -EINVAL;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/* Checks for a sleep command */
|
||||
if (size & 0x8000) {
|
||||
@ -627,6 +644,9 @@ static int check_firmware(struct dvb_frontend *fe, enum tuner_mode new_mode,
|
||||
priv->bandwidth = bandwidth;
|
||||
}
|
||||
|
||||
if (!change_digital_bandwidth && priv->mode == T_DIGITAL_TV)
|
||||
return 0;
|
||||
|
||||
/* Load INIT1, if needed */
|
||||
tuner_dbg("Load init1 firmware, if exists\n");
|
||||
type0 = BASE | INIT1;
|
||||
|
Loading…
Reference in New Issue
Block a user