[GIT,PULL,FOR,3.10] DiBxxxx: fixes and improvements

Message ID C73E570AC040D442A4DD326F39F0F00E2AE21490DA@SAPHIR.xi-lite.lan (mailing list archive)
State Changes Requested, archived
Delegated to: Michael Krufky
Headers

Commit Message

Olivier GRENIE May 4, 2013, 4:05 a.m. UTC
  Hello Mauro,
can you apply the attached patch. This patch correct the proposed patch by Patrick for the dib807x. Sorry to not have seen it before.

regards,
Olivier
  

Comments

Michael Ira Krufky June 2, 2013, 5:03 p.m. UTC | #1
Olivier,

I have regenerated your patch against the most recent codebase, as
your patch no longer applies.  (There were changes merged on the 29th
of April that broke it.)

The new patch is attached, but I am reluctant to merge it, as I do not
have any description of the patch, and it lacks a sign-off.

Please test this patch and confirm that it produces the desired
effect, then resubmit with a short description and your sign-off.

Best regards,

Mike Krufky

On Sat, May 4, 2013 at 12:05 AM, Olivier GRENIE
<olivier.grenie@parrot.com> wrote:
> Hello Mauro,
> can you apply the attached patch. This patch correct the proposed patch by Patrick for the dib807x. Sorry to not have seen it before.
>
> regards,
> Olivier
>
> ________________________________________
> From: Mauro Carvalho Chehab [mchehab@redhat.com]
> Sent: Saturday, April 27, 2013 4:28 PM
> To: Patrick Boettcher
> Cc: linux-media@vger.kernel.org; Olivier GRENIE; Patrick BOETTCHER
> Subject: Re: [GIT PULL FOR 3.10] DiBxxxx: fixes and improvements
>
> Hi Patrick,
>
> Em Mon, 22 Apr 2013 10:12:34 +0200
> Patrick Boettcher <pboettcher@kernellabs.com> escreveu:
>
>> Hi Mauro,
>>
>> These patches contains some fixes and changes for the DiBcom demods and
>> SIPs.
>>
>> Please merge for 3.10 if possible.
>>
>>
>> The following changes since commit 60d509fa6a9c4653a86ad830e4c4b30360b23f0e:
>>
>>   Linux 3.9-rc8 (2013-04-21 14:38:45 -0700)
>>
>> are available in the git repository at:
>>
>>   git://git.linuxtv.org/pb/media_tree.git/ master
>
> Hmm... I suspect that there's something wrong with those changes.
>
> Testing it with a dib8076 usb stick seems that the code is worse than
> before, as it is now harder to get a lock here.
>
> With the previous code:
>
> INFO     Scanning frequency #1 725142857
> Carrier(0x03) Signal= 67.46% C/N= 0.00% UCB= 0 postBER= 0
> Viterbi(0x05) Signal= 67.08% C/N= 0.00% UCB= 0 postBER= 2097151
> Viterbi(0x07) Signal= 67.54% C/N= 0.25% UCB= 165 postBER= 0
> Sync   (0x0f) Signal= 67.06% C/N= 0.23% UCB= 151 postBER= 0
> Lock   (0x1f) Signal= 67.58% C/N= 0.24% UCB= 160 postBER= 338688
> Service #0 (60320) BAND HD channel 57.1.0
> Service #1 (60345) BAND 1SEG channel 57.1.1
>
> With the new code:
>
> INFO     Scanning frequency #1 725142857
>        (0x00) Signal= 68.80% C/N= 0.00% UCB= 0 postBER= 0
> RF     (0x01) Signal= 68.78% C/N= 0.00% UCB= 0 postBER= 0
> RF     (0x01) Signal= 68.69% C/N= 0.00% UCB= 0 postBER= 0
> RF     (0x01) Signal= 69.82% C/N= 0.00% UCB= 0 postBER= 0
> RF     (0x01) Signal= 69.29% C/N= 0.00% UCB= 0 postBER= 0
> RF     (0x01) Signal= 69.27% C/N= 0.00% UCB= 0 postBER= 0
> RF     (0x01) Signal= 69.28% C/N= 0.00% UCB= 0 postBER= 0
> RF     (0x01) Signal= 69.27% C/N= 0.00% UCB= 0 postBER= 0
> RF     (0x01) Signal= 68.55% C/N= 0.00% UCB= 0 postBER= 0
> RF     (0x01) Signal= 68.50% C/N= 0.00% UCB= 0 postBER= 0
> RF     (0x01) Signal= 68.43% C/N= 0.00% UCB= 0 postBER= 0
> RF     (0x01) Signal= 68.65% C/N= 0.00% UCB= 0 postBER= 0
> RF     (0x01) Signal= 69.75% C/N= 0.00% UCB= 0 postBER= 0
> RF     (0x01) Signal= 69.29% C/N= 0.00% UCB= 0 postBER= 0
> RF     (0x01) Signal= 69.28% C/N= 0.00% UCB= 0 postBER= 0
> RF     (0x01) Signal= 69.25% C/N= 0.00% UCB= 0 postBER= 0
> RF     (0x01) Signal= 68.43% C/N= 0.00% UCB= 0 postBER= 0
> RF     (0x01) Signal= 68.46% C/N= 0.00% UCB= 0 postBER= 0
> RF     (0x01) Signal= 68.43% C/N= 0.00% UCB= 0 postBER= 0
> RF     (0x01) Signal= 68.90% C/N= 0.00% UCB= 0 postBER= 0
> RF     (0x01) Signal= 69.50% C/N= 0.00% UCB= 0 postBER= 0
> RF     (0x01) Signal= 69.28% C/N= 0.00% UCB= 0 postBER= 0
> RF     (0x01) Signal= 69.22% C/N= 0.00% UCB= 0 postBER= 0
> RF     (0x01) Signal= 69.22% C/N= 0.00% UCB= 0 postBER= 0
> RF     (0x01) Signal= 68.43% C/N= 0.00% UCB= 0 postBER= 0
> RF     (0x01) Signal= 68.41% C/N= 0.00% UCB= 0 postBER= 0
> RF     (0x01) Signal= 68.41% C/N= 0.00% UCB= 0 postBER= 0
> RF     (0x01) Signal= 68.96% C/N= 0.00% UCB= 0 postBER= 0
> RF     (0x01) Signal= 69.42% C/N= 0.00% UCB= 0 postBER= 0
> RF     (0x01) Signal= 69.24% C/N= 0.00% UCB= 0 postBER= 0
> RF     (0x01) Signal= 69.22% C/N= 0.00% UCB= 0 postBER= 0
> RF     (0x01) Signal= 69.25% C/N= 0.00% UCB= 0 postBER= 0
>
> So, it seems that the changes broke something.
>
> Regards,
> Mauro
  

Patch

From 6d5679558aa99d9763fb2d638de771a8f52c94fa Mon Sep 17 00:00:00 2001
From: Olivier Grenie <olivier.grenie@parrot.com>
Date: Thu, 2 May 2013 16:11:14 +0200
Subject: [PATCH] [media] dib8000: correct previous commit The intend of this
 patch is to correct a previous commit. This commit corrects
 the behavior of the dib807x.

Signed-off-by: Olivier Grenie <olivier.grenie@parrot.com>
---
 drivers/media/dvb-frontends/dib8000.c |    6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/media/dvb-frontends/dib8000.c b/drivers/media/dvb-frontends/dib8000.c
index 4ba7c90..a57926b 100644
--- a/drivers/media/dvb-frontends/dib8000.c
+++ b/drivers/media/dvb-frontends/dib8000.c
@@ -2439,7 +2439,7 @@  static int dib8000_autosearch_start(struct dvb_frontend *fe)
 	if (state->revision == 0x8090)
 		internal = dib8000_read32(state, 23) / 1000;
 
-	if (state->autosearch_state == AS_SEARCHING_FFT) {
+	if ((state->revision >= 0x8002) && (state->autosearch_state == AS_SEARCHING_FFT)) {
 		dib8000_write_word(state,  37, 0x0065); /* P_ctrl_pha_off_max default values */
 		dib8000_write_word(state, 116, 0x0000); /* P_ana_gain to 0 */
 
@@ -2475,7 +2475,7 @@  static int dib8000_autosearch_start(struct dvb_frontend *fe)
 		dib8000_write_word(state, 770, (dib8000_read_word(state, 770) & 0xdfff) | (1 << 13)); /* P_restart_ccg = 1 */
 		dib8000_write_word(state, 770, (dib8000_read_word(state, 770) & 0xdfff) | (0 << 13)); /* P_restart_ccg = 0 */
 		dib8000_write_word(state, 0, (dib8000_read_word(state, 0) & 0x7ff) | (0 << 15) | (1 << 13)); /* P_restart_search = 0; */
-	} else if (state->autosearch_state == AS_SEARCHING_GUARD) {
+	} else if ((state->revision >= 0x8002) && (state->autosearch_state == AS_SEARCHING_GUARD)) {
 		state->fe[0]->dtv_property_cache.transmission_mode = TRANSMISSION_MODE_8K;
 		state->fe[0]->dtv_property_cache.guard_interval = GUARD_INTERVAL_1_8;
 		state->fe[0]->dtv_property_cache.inversion = 0;
@@ -2577,7 +2577,7 @@  static int dib8000_autosearch_irq(struct dvb_frontend *fe)
 	struct dib8000_state *state = fe->demodulator_priv;
 	u16 irq_pending = dib8000_read_word(state, 1284);
 
-	if (state->autosearch_state == AS_SEARCHING_FFT) {
+	if ((state->revision >= 0x8002) && (state->autosearch_state == AS_SEARCHING_FFT)) {
 		if (irq_pending & 0x1) {
 			dprintk("dib8000_autosearch_irq: max correlation result available");
 			return 3;
-- 
1.7.10.4