Skip to content

Commit

Permalink
V4L/DVB (6612): Allow RESET_CLK callback and avoids unneeded loading
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Michel Ludwig authored and Mauro Carvalho Chehab committed Jan 25, 2008
1 parent a37b4c9 commit 5403bba
Showing 1 changed file with 20 additions and 0 deletions.
20 changes: 20 additions & 0 deletions drivers/media/video/tuner-xc2028.c
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand Down Expand Up @@ -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;
Expand Down

0 comments on commit 5403bba

Please sign in to comment.