From: Issa Gorissen <flop.m@usa.net>
To: Lutz Sammer <johns98@gmx.net>
Cc: linux-media@vger.kernel.org
Subject: [PATCH] Fixes stb0899 not locking
Date: Sat, 23 Apr 2011 21:32:22 +0200 [thread overview]
Message-ID: <4DB32946.1080803@usa.net> (raw)
> Fixes stb0899 not locking.
> See http://www.spinics.net/lists/linux-media/msg30486.html ...
>
> When stb0899_check_data is entered, it could happen, that the data is
> already locked and the data search looped. stb0899_check_data fails to
> lock on a good frequency. stb0899_search_data uses an extrem big search
> step and fails to lock.
>
> The new code checks for lock before starting a new search.
> The first read ignores the loop bit, for the case that the loop bit is
> set during the search setup. I also added the msleep to reduce the
> traffic on the i2c bus.
>
> Johns
>
> Signed-off-by: Lutz Sammer <johns98 <at> gmx.net>
> diff --git a/drivers/media/dvb/frontends/stb0899_algo.c
> b/drivers/media/dvb/frontends/stb0899_algo.c
> index 2da55ec..55f0c4e 100644
> --- a/drivers/media/dvb/frontends/stb0899_algo.c
> +++ b/drivers/media/dvb/frontends/stb0899_algo.c
> @@ -338,36 +338,42 @@ static enum stb0899_status
> stb0899_check_data(struct stb0899_state *state)
> int lock = 0, index = 0, dataTime = 500, loop;
> u8 reg;
>
> - internal->status = NODATA;
> + reg = stb0899_read_reg(state, STB0899_VSTATUS);
> + lock = STB0899_GETFIELD(VSTATUS_LOCKEDVIT, reg);
> + if ( !lock ) {
>
> - /* RESET FEC */
> - reg = stb0899_read_reg(state, STB0899_TSTRES);
> - STB0899_SETFIELD_VAL(FRESACS, reg, 1);
> - stb0899_write_reg(state, STB0899_TSTRES, reg);
> - msleep(1);
> - reg = stb0899_read_reg(state, STB0899_TSTRES);
> - STB0899_SETFIELD_VAL(FRESACS, reg, 0);
> - stb0899_write_reg(state, STB0899_TSTRES, reg);
> + internal->status = NODATA;
>
> - if (params->srate <= 2000000)
> - dataTime = 2000;
> - else if (params->srate <= 5000000)
> - dataTime = 1500;
> - else if (params->srate <= 15000000)
> - dataTime = 1000;
> - else
> - dataTime = 500;
> -
> - stb0899_write_reg(state, STB0899_DSTATUS2, 0x00); /* force
> search loop */
> - while (1) {
> - /* WARNING! VIT LOCKED has to be tested before
> VIT_END_LOOOP */
> - reg = stb0899_read_reg(state, STB0899_VSTATUS);
> - lock = STB0899_GETFIELD(VSTATUS_LOCKEDVIT, reg);
> - loop = STB0899_GETFIELD(VSTATUS_END_LOOPVIT, reg);
> + /* RESET FEC */
> + reg = stb0899_read_reg(state, STB0899_TSTRES);
> + STB0899_SETFIELD_VAL(FRESACS, reg, 1);
> + stb0899_write_reg(state, STB0899_TSTRES, reg);
> + msleep(1);
> + reg = stb0899_read_reg(state, STB0899_TSTRES);
> + STB0899_SETFIELD_VAL(FRESACS, reg, 0);
> + stb0899_write_reg(state, STB0899_TSTRES, reg);
>
> - if (lock || loop || (index > dataTime))
> - break;
> - index++;
> + msleep(1);
> + }
> }
>
> if (lock) { /* DATA LOCK indicator */
Hi Johns,
I've tried your path but I had to remove the last } that you added after
the msleep(1);
The patch had not make any better the tuning of transponders on HB13E
for me.
Thanks anyway.
--
Issa
next reply other threads:[~2011-04-23 19:32 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-04-23 19:32 Issa Gorissen [this message]
-- strict thread matches above, loose matches on Subject: below --
2011-04-04 12:02 [PATCH] Fixes stb0899 not locking Lutz Sammer
2011-04-18 5:48 ` Steffen Barszus
2011-04-21 21:02 ` Steffen Barszus
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4DB32946.1080803@usa.net \
--to=flop.m@usa.net \
--cc=johns98@gmx.net \
--cc=linux-media@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.