Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 76470
b: refs/heads/master
c: 2800ae9
h: refs/heads/master
v: v3
  • Loading branch information
Mauro Carvalho Chehab committed Jan 25, 2008
1 parent a0da38e commit f340666
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 6 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 71a2ee37e8851f430d72daea0722908512d57f79
refs/heads/master: 2800ae9cd669db0fc9993cbefae02f181343c295
15 changes: 10 additions & 5 deletions trunk/drivers/media/video/tuner-xc2028.c
Original file line number Diff line number Diff line change
Expand Up @@ -850,16 +850,21 @@ static int generic_set_tv_freq(struct dvb_frontend *fe, u32 freq /* in Hz */ ,

mutex_lock(&priv->lock);

/* HACK: It seems that specific firmware need to be reloaded
when watching analog TV and freq is changed */
if (new_mode != T_DIGITAL_TV)
priv->cur_fw.type = 0;

tuner_dbg("should set frequency %d kHz\n", freq / 1000);

if (check_firmware(fe, new_mode, std, bandwidth) < 0)
goto ret;

/* On some cases xc2028 can disable video output, if
* very weak signals are received. By sending a soft
* reset, this is re-enabled. So, it is better to always
* send a soft reset before changing channels, to be sure
* that xc2028 will be in a safe state.
* Maybe this might also be needed for DTV.
*/
if (new_mode != T_DIGITAL_TV)
rc = send_seq(priv, {0x00, 0x00});

if (new_mode == T_DIGITAL_TV) {
offset = 2750000;
if (priv->cur_fw.type & DTV7)
Expand Down

0 comments on commit f340666

Please sign in to comment.