diff options
author | Patrick Boettcher <devnull@localhost> | 2005-05-16 11:21:21 +0000 |
---|---|---|
committer | Patrick Boettcher <devnull@localhost> | 2005-05-16 11:21:21 +0000 |
commit | 66b37ff828afed808bddb816a2edfdbe3fc8f794 (patch) | |
tree | 365bd49b2395503a4d622c6c1e9ccf64b362443b /linux/drivers/media/dvb/frontends/bcm3510.c | |
parent | 296d38d57b95ab75d2ab872fcd0f972fda99b8c5 (diff) | |
download | mediapointer-dvb-s2-66b37ff828afed808bddb816a2edfdbe3fc8f794.tar.gz mediapointer-dvb-s2-66b37ff828afed808bddb816a2edfdbe3fc8f794.tar.bz2 |
clearing busy state of the HAB if something went wrong
added a small tuning delay
Signed-off-by: Patrick Boettcher <pb@linuxtv.org>
Diffstat (limited to 'linux/drivers/media/dvb/frontends/bcm3510.c')
-rw-r--r-- | linux/drivers/media/dvb/frontends/bcm3510.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/linux/drivers/media/dvb/frontends/bcm3510.c b/linux/drivers/media/dvb/frontends/bcm3510.c index 5589c94e9..41b40d532 100644 --- a/linux/drivers/media/dvb/frontends/bcm3510.c +++ b/linux/drivers/media/dvb/frontends/bcm3510.c @@ -157,8 +157,10 @@ static int bcm3510_hab_send_request(struct bcm3510_state *st, u8 *buf, int len) if ((ret = bcm3510_readB(st,0xa8,&v)) < 0) return ret; if (v.HABSTAT_a8.HABR) { - deb_info("HAB is running already."); - return -EBUSY; + deb_info("HAB is running already - clearing it.\n"); + v.HABSTAT_a8.HABR = 0; + bcm3510_writeB(st,0xa8,v); +// return -EBUSY; } /* Send the start HAB Address (automatically incremented after write of @@ -538,7 +540,7 @@ static int bcm3510_set_frontend(struct dvb_frontend* fe, } */ bcm3510_do_hab_cmd(st, CMD_ACQUIRE, MSGID_EXT_TUNER_ACQUIRE, (u8 *) &cmd, sizeof(cmd), NULL, 0); - /* doing it with different MSGIDs, data book and source differs */ +/* doing it with different MSGIDs, data book and source differs */ bert.BE = 0; bert.unused = 0; bcm3510_do_hab_cmd(st, CMD_STATE_CONTROL, MSGID_BERT_CONTROL, (u8 *) &bert, sizeof(bert), NULL, 0); @@ -553,6 +555,9 @@ static int bcm3510_set_frontend(struct dvb_frontend* fe, memset(&st->status2,0,sizeof(st->status2)); st->status_check_interval = 500; +/* Give the AP some time */ + msleep(200); + return 0; } |