Skip to contentSkip to conversation

stb0899: Fix slow and not locking DVB-S transponder(s)

PATCH Superseded Lutz Sammer 3 participants 9 messages Sep 29, 2011 – Oct 7, 2011 Media (V4L/DVB)

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 stb0899: Fix slow and not locking DVB-S transponder(s)

Another version of
http://patchwork.linuxtv.org/patch/6307
http://patchwork.linuxtv.org/patch/6510
which was superseded or rejected, but it don't know why.

In stb0899_status stb0899_check_data the first read of STB0899_VSTATUS could read old (from previous search) status bits and the search fails on a good frequency.

With the patch more transponder could be locked and locks about 2* faster.

---
 drivers/media/dvb/frontends/stb0899_algo.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)
drivers/media/dvb/frontends/stb0899_algo.c +1 -0
index d70eee0..8eca419 100644
@@ -358,6 +358,7 @@ static enum stb0899_status stb0899_check_data(struct stb0899  _state *state)
        else
                dataTime = 500;
 
+       stb0899_read_reg(state, STB0899_VSTATUS); /* clear old status bits */
        stb0899_write_reg(state, STB0899_DSTATUS2, 0x00); /* force search loop *  /
        while (1) {
                /* WARNING! VIT LOCKED has to be tested before VIT_END_LOOOP   *  /
Signature · 1 line
1.7.6.1
#1 lore raw

PATCH v2 1/1 stb0899: Fix slow and not locking DVB-S transponder(s)

Another version of
http://patchwork.linuxtv.org/patch/6307
http://patchwork.linuxtv.org/patch/6510
which was superseded or rejected, but I don't know why.

In stb0899_status stb0899_check_data the first read of STB0899_VSTATUS could read old (from previous search) status bits and the search fails on a good frequency.

With the patch more transponder could be locked and locks about 2* faster.

---
 drivers/media/dvb/frontends/stb0899_algo.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)
drivers/media/dvb/frontends/stb0899_algo.c +1 -0
index d70eee0..8eca419 100644
@@ -358,6 +358,7 @@ static enum stb0899_status stb0899_check_data(struct stb0899_state *state)
        else
                dataTime = 500;
 
+       stb0899_read_reg(state, STB0899_VSTATUS); /* clear old status bits */
        stb0899_write_reg(state, STB0899_DSTATUS2, 0x00); /* force search loop */
        while (1) {
                /* WARNING! VIT LOCKED has to be tested before VIT_END_LOOOP   */
Signature · 1 line
1.7.6.1
#2 lore raw

Em 29-09-2011 18:22, Lutz Sammer escreveu:

Quoted 4 lines

Another version of
http://patchwork.linuxtv.org/patch/6307
http://patchwork.linuxtv.org/patch/6510
which was superseded or rejected, but I don't know why.

Probably because of the same reason of this patch [1]:

patch -p1 -i patches/lmml_8023_v2_stb0899_fix_slow_and_not_locking_dvb_s_transponder_s.patch --dry-run -t -N patching file drivers/media/dvb/frontends/stb0899_algo.c
Hunk #1 FAILED at 358.
1 out of 1 hunk FAILED -- saving rejects to file drivers/media/dvb/frontends/stb0899_algo.c.rej

 drivers/media/dvb/frontends/stb0899_algo.c |    1 +
 1 file changed, 1 insertion(+)

I'll mark this one as rejected, as it doesn't apply upstream[2].

[1] http://patchwork.linuxtv.org/patch/8023/
[2] at tree/branch: git://linuxtv.org/media_tree.git staging/for_v3.2

Please test if the changes made upstream to solve a similar trouble fixes your issue. If not, please rebase your patch on the top of it and resend.

Thanks,
Mauro

Quoted 24 lines

In stb0899_status stb0899_check_data the first read of STB0899_VSTATUS could read old (from previous search) status bits and the search fails on a good frequency.

With the patch more transponder could be locked and locks about 2* faster.

---
 drivers/media/dvb/frontends/stb0899_algo.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)
drivers/media/dvb/frontends/stb0899_algo.c +1 -0
index d70eee0..8eca419 100644
@@ -358,6 +358,7 @@ static enum stb0899_status stb0899_check_data(struct stb0899_state *state)
        else
                dataTime = 500;
 
+       stb0899_read_reg(state, STB0899_VSTATUS); /* clear old status bits */
        stb0899_write_reg(state, STB0899_DSTATUS2, 0x00); /* force search loop */
        while (1) {
                /* WARNING! VIT LOCKED has to be tested before VIT_END_LOOOP   */
#3 lore raw
Quoted 45 lines · Mauro Carvalho Chehab

Em 29-09-2011 18:22, Lutz Sammer escreveu:

Quoted 4 lines

Another version of
http://patchwork.linuxtv.org/patch/6307
http://patchwork.linuxtv.org/patch/6510
which was superseded or rejected, but I don't know why.

Probably because of the same reason of this patch [1]:

patch -p1 -i patches/lmml_8023_v2_stb0899_fix_slow_and_not_locking_dvb_s_transponder_s.patch --dry-run -t -N patching file drivers/media/dvb/frontends/stb0899_algo.c
Hunk #1 FAILED at 358.
1 out of 1 hunk FAILED -- saving rejects to file drivers/media/dvb/frontends/stb0899_algo.c.rej

  drivers/media/dvb/frontends/stb0899_algo.c |    1 +
  1 file changed, 1 insertion(+)

I'll mark this one as rejected, as it doesn't apply upstream[2].

[1] http://patchwork.linuxtv.org/patch/8023/
[2] at tree/branch: git://linuxtv.org/media_tree.git staging/for_v3.2

Please test if the changes made upstream to solve a similar trouble fixes your issue. If not, please rebase your patch on the top of it and resend.

Thanks,
Mauro

Quoted 20 lines

In stb0899_status stb0899_check_data the first read of STB0899_VSTATUS could read old (from previous search) status bits and the search fails on a good frequency.

With the patch more transponder could be locked and locks about 2* faster.

---
  drivers/media/dvb/frontends/stb0899_algo.c |    1 +
  1 files changed, 1 insertions(+), 0 deletions(-)
drivers/media/dvb/frontends/stb0899_algo.c +0 -0
index d70eee0..8eca419 100644
@@ -358,6 +358,7 @@ static enum stb0899_status stb0899_check_data(struct stb0899_state *state)
         else
                 dataTime = 500;
 
Quoted 6 lines

drivers/media/dvb/frontends/stb0899_algo.c static enum stb0899_status stb0899_check_data(struct stb0899_state *state) · line 364

Quoted 4 lines
drivers/media/dvb/frontends/stb0899_algo.c +1 -0
+       stb0899_read_reg(state, STB0899_VSTATUS); /* clear old status bits */
         stb0899_write_reg(state, STB0899_DSTATUS2, 0x00); /* force search loop */
         while (1) {
                 /* WARNING! VIT LOCKED has to be tested before VIT_END_LOOOP   */

Sorry this fucking thunderbird eats the patches. I have followed the README.patches and installed thunderbird plugin.

Johns

drivers/media/dvb/frontends/stb0899_algo.c +1 -0
index d70eee0..8eca419 100644
@@ -358,6 +358,7 @@ static enum stb0899_status stb0899_check_data(struct stb0899_state *state)
 	else
 		dataTime = 500;
 
+	stb0899_read_reg(state, STB0899_VSTATUS); /* clear old status bits */
 	stb0899_write_reg(state, STB0899_DSTATUS2, 0x00); /* force search loop	*/
 	while (1) {
 		/* WARNING! VIT LOCKED has to be tested before VIT_END_LOOOP	*/
#4 lore raw

Em 30-09-2011 15:41, Lutz Sammer escreveu:

Quoted 24 lines · Mauro Carvalho Chehab
Quoted 23 lines

Em 29-09-2011 18:22, Lutz Sammer escreveu:

Quoted 4 lines

Another version of
http://patchwork.linuxtv.org/patch/6307
http://patchwork.linuxtv.org/patch/6510
which was superseded or rejected, but I don't know why.

Probably because of the same reason of this patch [1]:

patch -p1 -i patches/lmml_8023_v2_stb0899_fix_slow_and_not_locking_dvb_s_transponder_s.patch --dry-run -t -N patching file drivers/media/dvb/frontends/stb0899_algo.c
Hunk #1 FAILED at 358.
1 out of 1 hunk FAILED -- saving rejects to file drivers/media/dvb/frontends/stb0899_algo.c.rej

  drivers/media/dvb/frontends/stb0899_algo.c |    1 +
  1 file changed, 1 insertion(+)

I'll mark this one as rejected, as it doesn't apply upstream[2].

[1] http://patchwork.linuxtv.org/patch/8023/
[2] at tree/branch: git://linuxtv.org/media_tree.git staging/for_v3.2

Please test if the changes made upstream to solve a similar trouble fixes your issue. If not, please rebase your patch on the top of it and resend.

Quoted 8 lines
Quoted 8 lines

Thanks,
Mauro

Quoted 6 lines

In stb0899_status stb0899_check_data the first read of STB0899_VSTATUS could read old (from previous search) status bits and the search fails on a good frequency.

With the patch more transponder could be locked and locks about 2* faster.

Manu,

Could you please review this one-line patch?

Quoted 14 lines
Quoted 14 lines
Quoted 14 lines
---
  drivers/media/dvb/frontends/stb0899_algo.c |    1 +
  1 files changed, 1 insertions(+), 0 deletions(-)
drivers/media/dvb/frontends/stb0899_algo.c +0 -0
index d70eee0..8eca419 100644
@@ -358,6 +358,7 @@ static enum stb0899_status stb0899_check_data(struct stb0899_state *state)
         else
                 dataTime = 500;
 
Quoted 4 lines
Quoted 4 lines

drivers/media/dvb/frontends/stb0899_algo.c static enum stb0899_status stb0899_check_data(struct stb0899_state *state) · line 364

Quoted 4 lines
drivers/media/dvb/frontends/stb0899_algo.c +1 -0
+       stb0899_read_reg(state, STB0899_VSTATUS); /* clear old status bits */
         stb0899_write_reg(state, STB0899_DSTATUS2, 0x00); /* force search loop */
         while (1) {
                 /* WARNING! VIT LOCKED has to be tested before VIT_END_LOOOP   */

Thanks!
Mauro

Quoted 5 lines
Quoted 2 lines

Sorry this fucking thunderbird eats the patches. I have followed the README.patches and installed thunderbird plugin.

Yes, thunderbird hates patches ;)

Quoted 4 lines

Johns

Acked-by
#5 lore raw

Mauro,

comments in-line.

Quoted 53 lines · Mauro Carvalho Chehab

Em 30-09-2011 15:41, Lutz Sammer escreveu:

Quoted 24 lines · Mauro Carvalho Chehab
Quoted 23 lines

Em 29-09-2011 18:22, Lutz Sammer escreveu:

Quoted 4 lines

Another version of
http://patchwork.linuxtv.org/patch/6307
http://patchwork.linuxtv.org/patch/6510
which was superseded or rejected, but I don't know why.

Probably because of the same reason of this patch [1]:

patch -p1 -i patches/lmml_8023_v2_stb0899_fix_slow_and_not_locking_dvb_s_transponder_s.patch --dry-run -t -N patching file drivers/media/dvb/frontends/stb0899_algo.c
Hunk #1 FAILED at 358.
1 out of 1 hunk FAILED -- saving rejects to file drivers/media/dvb/frontends/stb0899_algo.c.rej drivers/media/dvb/frontends/stb0899_algo.c |    1 +

  1 file changed, 1 insertion(+)

I'll mark this one as rejected, as it doesn't apply upstream[2].

[1] http://patchwork.linuxtv.org/patch/8023/
[2] at tree/branch: git://linuxtv.org/media_tree.git staging/for_v3.2

Please test if the changes made upstream to solve a similar trouble fixes your issue. If not, please rebase your patch on the top of it and resend.

Quoted 8 lines
Quoted 8 lines

Thanks,
Mauro

Quoted 6 lines

In stb0899_status stb0899_check_data the first read of STB0899_VSTATUS could read old (from previous search) status bits and the search fails on a good frequency.

With the patch more transponder could be locked and locks about 2* faster.

Manu,

Could you please review this one-line patch?

Quoted 14 lines
Quoted 14 lines
Quoted 14 lines

---
  drivers/media/dvb/frontends/stb0899_algo.c |    1 +

  1 files changed, 1 insertions(+), 0 deletions(-)
drivers/media/dvb/frontends/stb0899_algo.c +0 -0
index d70eee0..8eca419 100644
@@ -358,6 +358,7 @@ static enum stb0899_status stb0899_check_data(struct stb0899_state *state)

         else
                 dataTime = 500;

Quoted 5 lines
Quoted 4 lines
Quoted 4 lines
Quoted 4 lines

+       stb0899_read_reg(state, STB0899_VSTATUS); /* clear old status bits */ stb0899_write_reg(state, STB0899_DSTATUS2, 0x00); /* force search loop */ while (1) {
                 /* WARNING! VIT LOCKED has to be tested before VIT_END_LOOOP   */

Please add in these comments, in case you want to apply the change. I am neither for the patch, nor against it.

- In fact, it doesn't hurt to read STATUS just before LOCK test.
- I wasn't able to find any noticeable difference in LOCK acquisition.
- Nowhere, I was able to find that reading VSTATUS, clears the Read-Only bits set by the onchip microcontroller. The above comment could be wrong at least, as far as I can say.

But that said, if the change does really help (thinking of strange issues with some Silicon cuts)

Regards,
Manu

#6 lore raw
Quoted 74 lines · Manu Abraham

Mauro,

comments in-line.

Quoted 53 lines · Mauro Carvalho Chehab

Em 30-09-2011 15:41, Lutz Sammer escreveu:

Quoted 24 lines · Mauro Carvalho Chehab
Quoted 23 lines

Em 29-09-2011 18:22, Lutz Sammer escreveu:

Quoted 4 lines

Another version of
http://patchwork.linuxtv.org/patch/6307
http://patchwork.linuxtv.org/patch/6510
which was superseded or rejected, but I don't know why.

Probably because of the same reason of this patch [1]:

patch -p1 -i patches/lmml_8023_v2_stb0899_fix_slow_and_not_locking_dvb_s_transponder_s.patch --dry-run -t -N patching file drivers/media/dvb/frontends/stb0899_algo.c
Hunk #1 FAILED at 358.
1 out of 1 hunk FAILED -- saving rejects to file drivers/media/dvb/frontends/stb0899_algo.c.rej

   drivers/media/dvb/frontends/stb0899_algo.c |    1 +
   1 file changed, 1 insertion(+)

I'll mark this one as rejected, as it doesn't apply upstream[2].

[1] http://patchwork.linuxtv.org/patch/8023/
[2] at tree/branch: git://linuxtv.org/media_tree.git staging/for_v3.2

Please test if the changes made upstream to solve a similar trouble fixes your issue. If not, please rebase your patch on the top of it and resend.

Quoted 8 lines
Quoted 8 lines

Thanks,
Mauro

Quoted 6 lines

In stb0899_status stb0899_check_data the first read of STB0899_VSTATUS could read old (from previous search) status bits and the search fails on a good frequency.

With the patch more transponder could be locked and locks about 2* faster.

Manu,

Could you please review this one-line patch?

Quoted 14 lines
Quoted 14 lines
Quoted 14 lines
---
   drivers/media/dvb/frontends/stb0899_algo.c |    1 +
   1 files changed, 1 insertions(+), 0 deletions(-)
drivers/media/dvb/frontends/stb0899_algo.c +0 -0
index d70eee0..8eca419 100644
@@ -358,6 +358,7 @@ static enum stb0899_status stb0899_check_data(struct stb0899_state *state)
          else
                  dataTime = 500;
 
Quoted 5 lines
Quoted 4 lines
Quoted 4 lines

drivers/media/dvb/frontends/stb0899_algo.c static enum stb0899_status stb0899_check_data(struct stb0899_state *state) · line 364

Quoted 4 lines
drivers/media/dvb/frontends/stb0899_algo.c +1 -0
+       stb0899_read_reg(state, STB0899_VSTATUS); /* clear old status bits */
          stb0899_write_reg(state, STB0899_DSTATUS2, 0x00); /* force search loop */
          while (1) {
                  /* WARNING! VIT LOCKED has to be tested before VIT_END_LOOOP   */

Please add in these comments, in case you want to apply the change. I am neither for the patch, nor against it.

- In fact, it doesn't hurt to read STATUS just before LOCK test.
- I wasn't able to find any noticeable difference in LOCK acquisition.
- Nowhere, I was able to find that reading VSTATUS, clears the Read-Only bits set by the onchip microcontroller. The above comment could be wrong at least, as far as I can say.

Quoted 8 lines

But that said, if the change does really help (thinking of strange issues with some Silicon cuts)

Regards,
Manu

To be exact only the loop bit is reset by the read:

kernel: [62791.427869] stb0899: vstatus 40 00 40 00
kernel: [62791.597609] stb0899: vstatus 00 00 18 18

Printed twice before and after the loop. I tested this with the tt-3600 and tt-3650.

Johns

Reviewed-by
#7 lore raw
Quoted 99 lines · Lutz Sammer
Quoted 89 lines · Manu Abraham

Mauro,

comments in-line.

Quoted 64 lines · Mauro Carvalho Chehab

Em 30-09-2011 15:41, Lutz Sammer escreveu:

Quoted 34 lines · Mauro Carvalho Chehab
Quoted 32 lines

Em 29-09-2011 18:22, Lutz Sammer escreveu:

Quoted 5 lines

Another version of
http://patchwork.linuxtv.org/patch/6307
http://patchwork.linuxtv.org/patch/6510
which was superseded or rejected, but I don't know why.

Probably because of the same reason of this patch [1]:

patch -p1 -i patches/lmml_8023_v2_stb0899_fix_slow_and_not_locking_dvb_s_transponder_s.patch --dry-run -t -N
patching file drivers/media/dvb/frontends/stb0899_algo.c
Hunk #1 FAILED at 358.
1 out of 1 hunk FAILED -- saving rejects to file drivers/media/dvb/frontends/stb0899_algo.c.rej drivers/media/dvb/frontends/stb0899_algo.c |    1 +

  1 file changed, 1 insertion(+)

I'll mark this one as rejected, as it doesn't apply upstream[2].

[1] http://patchwork.linuxtv.org/patch/8023/
[2] at tree/branch: git://linuxtv.org/media_tree.git staging/for_v3.2

Please test if the changes made upstream to solve a similar trouble fixes your issue.
If not, please rebase your patch on the top of it and resend.

Thanks,
Mauro

Quoted 1 line
Quoted 6 lines
Quoted 6 lines
Quoted 6 lines

In stb0899_status stb0899_check_data the first read of STB0899_VSTATUS could read old (from previous search) status bits and the search fails on a good frequency.

With the patch more transponder could be locked and locks about 2* faster.

Manu,

Could you please review this one-line patch?

Quoted 16 lines
Quoted 16 lines
Quoted 16 lines

---
  drivers/media/dvb/frontends/stb0899_algo.c |    1 +

  1 files changed, 1 insertions(+), 0 deletions(-)
drivers/media/dvb/frontends/stb0899_algo.c +0 -0
index d70eee0..8eca419 100644
@@ -358,6 +358,7 @@ static enum stb0899_status
 stb0899_check_data(struct stb0899_state *state)

         else
                 dataTime = 500;

Quoted 8 lines
Quoted 7 lines
Quoted 7 lines
Quoted 7 lines

+       stb0899_read_reg(state, STB0899_VSTATUS); /* clear old status bits */
         stb0899_write_reg(state, STB0899_DSTATUS2, 0x00); /* force search loop */
         while (1) {
                 /* WARNING! VIT LOCKED has to be tested before VIT_END_LOOOP   */

Please add in these comments, in case you want to apply the change. I am neither for the patch, nor against it.

- In fact, it doesn't hurt to read STATUS just before LOCK test.
- I wasn't able to find any noticeable difference in LOCK acquisition.
- Nowhere, I was able to find that reading VSTATUS, clears the Read-Only bits set by the onchip microcontroller. The above comment could be wrong at least, as far as I can say.

Quoted 8 lines

But that said, if the change does really help (thinking of strange issues with some Silicon cuts)

Regards,
Manu

Quoted 7 lines

To be exact only the loop bit is reset by the read:

kernel: [62791.427869] stb0899: vstatus 40 00 40 00
kernel: [62791.597609] stb0899: vstatus 00 00 18 18

Printed twice before and after the loop. I tested this with the tt-3600 and tt-3650.

Ok, reading VSTATUS might force the VIT_END_LOOP to be refreshed (cached copy) in some cases where it probably never cleared due to some internal error. In fact, actually it should be automatically be cleared, surprised that it didn't.

Can you please adjust the comment to state: Clear previous failed END_LOOPVIT ?

Mauro,

The following patch can be applied, with a modified comment similar to the above.

Thanks,
Manu

#8 lore raw
Quoted 115 lines · Manu Abraham
Quoted 99 lines · Lutz Sammer
Quoted 89 lines · Manu Abraham

Mauro,

comments in-line.

Quoted 64 lines · Mauro Carvalho Chehab

Em 30-09-2011 15:41, Lutz Sammer escreveu:

Quoted 34 lines · Mauro Carvalho Chehab
Quoted 32 lines

Em 29-09-2011 18:22, Lutz Sammer escreveu:

Quoted 5 lines

Another version of
http://patchwork.linuxtv.org/patch/6307
http://patchwork.linuxtv.org/patch/6510
which was superseded or rejected, but I don't know why.

Probably because of the same reason of this patch [1]:

patch -p1 -i patches/lmml_8023_v2_stb0899_fix_slow_and_not_locking_dvb_s_transponder_s.patch --dry-run -t -N
patching file drivers/media/dvb/frontends/stb0899_algo.c
Hunk #1 FAILED at 358.
1 out of 1 hunk FAILED -- saving rejects to file drivers/media/dvb/frontends/stb0899_algo.c.rej

   drivers/media/dvb/frontends/stb0899_algo.c |    1 +
   1 file changed, 1 insertion(+)

I'll mark this one as rejected, as it doesn't apply upstream[2].

[1] http://patchwork.linuxtv.org/patch/8023/
[2] at tree/branch: git://linuxtv.org/media_tree.git staging/for_v3.2

Please test if the changes made upstream to solve a similar trouble fixes your issue.
If not, please rebase your patch on the top of it and resend.

Thanks,
Mauro

Quoted 1 line
Quoted 6 lines
Quoted 6 lines
Quoted 6 lines

In stb0899_status stb0899_check_data the first read of STB0899_VSTATUS could read old (from previous search) status bits and the search fails on a good frequency.

With the patch more transponder could be locked and locks about 2* faster.

Manu,

Could you please review this one-line patch?

Quoted 16 lines
Quoted 16 lines
Quoted 16 lines
---
   drivers/media/dvb/frontends/stb0899_algo.c |    1 +
   1 files changed, 1 insertions(+), 0 deletions(-)
drivers/media/dvb/frontends/stb0899_algo.c +0 -0
index d70eee0..8eca419 100644
@@ -358,6 +358,7 @@ static enum stb0899_status
 stb0899_check_data(struct stb0899_state *state)
          else
                  dataTime = 500;
 
Quoted 8 lines
Quoted 7 lines
Quoted 7 lines
Quoted 7 lines
drivers/media/dvb/frontends/stb0899_algo.c +1 -0
+       stb0899_read_reg(state, STB0899_VSTATUS); /* clear old status

bits */

          stb0899_write_reg(state, STB0899_DSTATUS2, 0x00); /* force
search loop */
          while (1) {
                  /* WARNING! VIT LOCKED has to be tested before

VIT_END_LOOOP */

Please add in these comments, in case you want to apply the change. I am neither for the patch, nor against it.

- In fact, it doesn't hurt to read STATUS just before LOCK test.
- I wasn't able to find any noticeable difference in LOCK acquisition.
- Nowhere, I was able to find that reading VSTATUS, clears the Read-Only bits set by the onchip microcontroller. The above comment could be wrong at least, as far as I can say.

Quoted 8 lines

But that said, if the change does really help (thinking of strange issues with some Silicon cuts)

Regards,
Manu

Quoted 7 lines

To be exact only the loop bit is reset by the read:

kernel: [62791.427869] stb0899: vstatus 40 00 40 00
kernel: [62791.597609] stb0899: vstatus 00 00 18 18

Printed twice before and after the loop. I tested this with the tt-3600 and tt-3650.

Ok, reading VSTATUS might force the VIT_END_LOOP to be refreshed (cached copy) in some cases where it probably never cleared due to some internal error. In fact, actually it should be automatically be cleared, surprised that it didn't.

Can you please adjust the comment to state: Clear previous failed END_LOOPVIT ?

Quoted 9 lines

Mauro,

The following patch can be applied, with a modified comment similar to the above.

Thanks,
Manu

In stb0899_status stb0899_check_data the first read of STB0899_VSTATUS could read old (from previous search) LOOP status bit and the search fails on a good frequency.

With the patch more transponder could be locked and locks about 2* faster.

drivers/media/dvb/frontends/stb0899_algo.c +3 -0
index d70eee0..117a569 100644
@@ -358,6 +358,9 @@ static enum stb0899_status stb0899_check_data(struct stb0899_state *state)
 	else
 		dataTime = 500;
 
+	/* clear previous failed END_LOOPVIT */
+	stb0899_read_reg(state, STB0899_VSTATUS);
+
 	stb0899_write_reg(state, STB0899_DSTATUS2, 0x00); /* force search loop	*/
 	while (1) {
 		/* WARNING! VIT LOCKED has to be tested before VIT_END_LOOOP	*/