diff mbox

Hauppauge Nova-S-Plus DVB-S works for one channel, but cannot tune in others

Message ID 2164572.6O2J60F4uN@xrated (mailing list archive)
State New, archived
Headers show

Commit Message

Hans-Peter Jansen April 6, 2013, 10:20 a.m. UTC
Dear Mauro,

first of all, thank you for providing a proper fix that quickly.

On Freitag, 5. April 2013 13:18:54 Mauro Carvalho Chehab wrote:
> Em Fri, 05 Apr 2013 13:25:01 +0100
> 
> Adam Sampson <ats@offog.org> escreveu:
> > Hans-Peter Jansen <hpj@urpla.net> writes:
> > > In one of my systems, I've used a
> > > Hauppauge Nova-S-Plus DVB-S card successfully, but after a system
> > > upgrade to openSUSE 12.2, it cannot tune in all but one channel.
> > 
> > [...]
> > 
> > > initial transponder 12551500 V 22000000 5
> > > 
> > >>>> tune to: 12551:v:0:22000
> > > 
> > > DVB-S IF freq is 1951500
> > > WARNING: >>> tuning failed!!!
> > 
> > I suspect you might be running into this problem:
> >   https://bugzilla.kernel.org/show_bug.cgi?id=9476
> > 
> > The bug title is misleading -- the problem is actually that the card
> > doesn't get configured properly to send the 22kHz tone for high-band
> > transponders, like the one in your error above.
> > 
> > Applying this patch makes my Nova-S-Plus work with recent kernels:
> >   https://bugzilla.kernel.org/attachment.cgi?id=21905&action=edit
> 
> Applying that patch would break support for all other devices with
> isl6421.
> 
> Could you please test the enclosed patch? It allows the bridge
> driver to tell if the set_tone should be overrided by isl6421 or
> not. The code only changes it for Hauppauge model 92001.

Unfortunately, it appears to be more problematic. While the fix allows to scan 
the channel list, it is not complete (in another setup at the same dish (via 
multiswitch), vdrs channel list has about 1600 channels, while scan does 
collect 1138 only.

More importantly, a single channel (arte) is received with 0 BER and a S/N 
ratio of 99%, while all other channels produce more BER, eg. "Das Erste" with 
about 320 BER (SNR 99%, a few artifacts/distortions occasionally), 
"ZDF" about 6400 BER, (SNR drops down to 75%, constant distortions, and many 
channels doesn't produce anything beyond distortions with a video stream  
below 0.3 MBit/s and about 160000 BER. (measured using vdr femon plugin v. 
1.6.7)

So, still no cigar, sorry.

I've tested both patches, just to be sure, with the same result. I had to 
relocate and refresh yours in order to apply it to 3.4, since the paths 
changed, result attached.

> If it works, please answer this email with a:
> 	Tested-by: your name <your@email>
> 
> For me to add it when merging the patch upstream.
> 
> Regards,
> Mauro.

It looks like the idea is sound, but the logic is still missing something that 
prevents it from tuning most channels properly.

Cheers,
Pete

Comments

Mauro Carvalho Chehab April 6, 2013, 1:37 p.m. UTC | #1
Em Sat, 06 Apr 2013 12:20:41 +0200
Hans-Peter Jansen <hpj@urpla.net> escreveu:

> Dear Mauro,
> 
> first of all, thank you for providing a proper fix that quickly.
> 
> On Freitag, 5. April 2013 13:18:54 Mauro Carvalho Chehab wrote:
> > Em Fri, 05 Apr 2013 13:25:01 +0100
> > 
> > Adam Sampson <ats@offog.org> escreveu:
> > > Hans-Peter Jansen <hpj@urpla.net> writes:
> > > > In one of my systems, I've used a
> > > > Hauppauge Nova-S-Plus DVB-S card successfully, but after a system
> > > > upgrade to openSUSE 12.2, it cannot tune in all but one channel.
> > > 
> > > [...]
> > > 
> > > > initial transponder 12551500 V 22000000 5
> > > > 
> > > >>>> tune to: 12551:v:0:22000
> > > > 
> > > > DVB-S IF freq is 1951500
> > > > WARNING: >>> tuning failed!!!
> > > 
> > > I suspect you might be running into this problem:
> > >   https://bugzilla.kernel.org/show_bug.cgi?id=9476
> > > 
> > > The bug title is misleading -- the problem is actually that the card
> > > doesn't get configured properly to send the 22kHz tone for high-band
> > > transponders, like the one in your error above.
> > > 
> > > Applying this patch makes my Nova-S-Plus work with recent kernels:
> > >   https://bugzilla.kernel.org/attachment.cgi?id=21905&action=edit
> > 
> > Applying that patch would break support for all other devices with
> > isl6421.
> > 
> > Could you please test the enclosed patch? It allows the bridge
> > driver to tell if the set_tone should be overrided by isl6421 or
> > not. The code only changes it for Hauppauge model 92001.
> 
> Unfortunately, it appears to be more problematic. While the fix allows to scan 
> the channel list, it is not complete (in another setup at the same dish (via 
> multiswitch), vdrs channel list has about 1600 channels, while scan does 
> collect 1138 only.
> 
> More importantly, a single channel (arte) is received with 0 BER and a S/N 
> ratio of 99%, while all other channels produce more BER, eg. "Das Erste" with 
> about 320 BER (SNR 99%, a few artifacts/distortions occasionally), 
> "ZDF" about 6400 BER, (SNR drops down to 75%, constant distortions, and many 
> channels doesn't produce anything beyond distortions with a video stream  
> below 0.3 MBit/s and about 160000 BER. (measured using vdr femon plugin v. 
> 1.6.7)
> 
> So, still no cigar, sorry.
> 
> I've tested both patches, just to be sure, with the same result. I had to 
> relocate and refresh yours in order to apply it to 3.4, since the paths 
> changed, result attached.
> 
> > If it works, please answer this email with a:
> > 	Tested-by: your name <your@email>
> > 
> > For me to add it when merging the patch upstream.
> > 
> > Regards,
> > Mauro.
> 
> It looks like the idea is sound, but the logic is still missing something that 
> prevents it from tuning most channels properly.

Well, what it is expected from this patch is to be able of seeing
channels with H and V polarization. Nothing more, nothing less.

From what I understood, you're now seeing more than just one channel,
so, it is likely part of the fix, right?

If are there any other issues, then it it would require other fixes,
likely at cx24123 frontend. My guess is that it could be due to some
precision loss maybe at cx24123_set_symbolrate(). It helps if you could
check if the channels that are more problematic have a higher or a
lower bit rate. It probably makes sense to change the code there to
use u64 and asm/div64.h, in order to allow the calculus to have more
precision. I'll try to write such patch.

With regards to this fix, could you please confirm that you can
now get channels with both polarizations?

Thanks,
Mauro
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Hans-Peter Jansen April 6, 2013, 5:26 p.m. UTC | #2
On Samstag, 6. April 2013 10:37:52 you wrote:
> Em Sat, 06 Apr 2013 12:20:41 +0200
> 
> Hans-Peter Jansen <hpj@urpla.net> escreveu:
> > Dear Mauro,
> > 
> > first of all, thank you for providing a proper fix that quickly.
> > 
> > On Freitag, 5. April 2013 13:18:54 Mauro Carvalho Chehab wrote:
> > > Em Fri, 05 Apr 2013 13:25:01 +0100
> > > 
> > > Adam Sampson <ats@offog.org> escreveu:
> > > > Hans-Peter Jansen <hpj@urpla.net> writes:
> > > > > In one of my systems, I've used a
> > > > > Hauppauge Nova-S-Plus DVB-S card successfully, but after a system
> > > > > upgrade to openSUSE 12.2, it cannot tune in all but one channel.
> > > > 
> > > > [...]
> > > > 
> > > > > initial transponder 12551500 V 22000000 5
> > > > > 
> > > > >>>> tune to: 12551:v:0:22000
> > > > > 
> > > > > DVB-S IF freq is 1951500
> > > > > WARNING: >>> tuning failed!!!
> > > > 
> > > > I suspect you might be running into this problem:
> > > >   https://bugzilla.kernel.org/show_bug.cgi?id=9476
> > > > 
> > > > The bug title is misleading -- the problem is actually that the card
> > > > doesn't get configured properly to send the 22kHz tone for high-band
> > > > transponders, like the one in your error above.
> > > > 
> > > > Applying this patch makes my Nova-S-Plus work with recent kernels:
> > > >   https://bugzilla.kernel.org/attachment.cgi?id=21905&action=edit
> > > 
> > > Applying that patch would break support for all other devices with
> > > isl6421.
> > > 
> > > Could you please test the enclosed patch? It allows the bridge
> > > driver to tell if the set_tone should be overrided by isl6421 or
> > > not. The code only changes it for Hauppauge model 92001.
> > 
> > Unfortunately, it appears to be more problematic. While the fix allows to
> > scan the channel list, it is not complete (in another setup at the same
> > dish (via multiswitch), vdrs channel list has about 1600 channels, while
> > scan does collect 1138 only.
> > 
> > More importantly, a single channel (arte) is received with 0 BER and a S/N
> > ratio of 99%, while all other channels produce more BER, eg. "Das Erste"
> > with about 320 BER (SNR 99%, a few artifacts/distortions occasionally),
> > "ZDF" about 6400 BER, (SNR drops down to 75%, constant distortions, and
> > many channels doesn't produce anything beyond distortions with a video
> > stream below 0.3 MBit/s and about 160000 BER. (measured using vdr femon
> > plugin v. 1.6.7)
> > 
> > So, still no cigar, sorry.
> > 
> > I've tested both patches, just to be sure, with the same result. I had to
> > relocate and refresh yours in order to apply it to 3.4, since the paths
> > changed, result attached.
> > 
> > > If it works, please answer this email with a:
> > > 	Tested-by: your name <your@email>
> > > 
> > > For me to add it when merging the patch upstream.
> > > 
> > > Regards,
> > > Mauro.
> > 
> > It looks like the idea is sound, but the logic is still missing something
> > that prevents it from tuning most channels properly.
> 
> Well, what it is expected from this patch is to be able of seeing
> channels with H and V polarization. Nothing more, nothing less.

Okay. Yes, I do.

> From what I understood, you're now seeing more than just one channel,
> so, it is likely part of the fix, right?

Yes.

> If are there any other issues, then it it would require other fixes,
> likely at cx24123 frontend. My guess is that it could be due to some
> precision loss maybe at cx24123_set_symbolrate(). It helps if you could
> check if the channels that are more problematic have a higher or a
> lower bit rate. It probably makes sense to change the code there to
> use u64 and asm/div64.h, in order to allow the calculus to have more
> precision. I'll try to write such patch.

..that I'm testing right now. Build is on the way.

You wrote and published the fix in less then 8 minutes. Wow, unbelievable.

Since I use a rpm build of an otherwise unchanged distribution kernel, the 
build will take slightly longer, unfortunately..

> With regards to this fix, could you please confirm that you can
> now get channels with both polarizations?

Yes, confirmed.

Tested-by: Hans-Peter Jansen <hpj@urpla.net>

Thanks Mauro for the great support.

Cheers,
Pete
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Mauro Carvalho Chehab April 6, 2013, 7:26 p.m. UTC | #3
Em Sat, 06 Apr 2013 19:26:23 +0200
Hans-Peter Jansen <hpj@urpla.net> escreveu:

> On Samstag, 6. April 2013 10:37:52 you wrote:
> > Em Sat, 06 Apr 2013 12:20:41 +0200
> > 
> > Hans-Peter Jansen <hpj@urpla.net> escreveu:
> > > Dear Mauro,
> > > 
> > > first of all, thank you for providing a proper fix that quickly.
> > > 
> > > On Freitag, 5. April 2013 13:18:54 Mauro Carvalho Chehab wrote:
> > > > Em Fri, 05 Apr 2013 13:25:01 +0100
> > > > 
> > > > Adam Sampson <ats@offog.org> escreveu:
> > > > > Hans-Peter Jansen <hpj@urpla.net> writes:
> > > > > > In one of my systems, I've used a
> > > > > > Hauppauge Nova-S-Plus DVB-S card successfully, but after a system
> > > > > > upgrade to openSUSE 12.2, it cannot tune in all but one channel.
> > > > > 
> > > > > [...]
> > > > > 
> > > > > > initial transponder 12551500 V 22000000 5
> > > > > > 
> > > > > >>>> tune to: 12551:v:0:22000
> > > > > > 
> > > > > > DVB-S IF freq is 1951500
> > > > > > WARNING: >>> tuning failed!!!
> > > > > 
> > > > > I suspect you might be running into this problem:
> > > > >   https://bugzilla.kernel.org/show_bug.cgi?id=9476
> > > > > 
> > > > > The bug title is misleading -- the problem is actually that the card
> > > > > doesn't get configured properly to send the 22kHz tone for high-band
> > > > > transponders, like the one in your error above.
> > > > > 
> > > > > Applying this patch makes my Nova-S-Plus work with recent kernels:
> > > > >   https://bugzilla.kernel.org/attachment.cgi?id=21905&action=edit
> > > > 
> > > > Applying that patch would break support for all other devices with
> > > > isl6421.
> > > > 
> > > > Could you please test the enclosed patch? It allows the bridge
> > > > driver to tell if the set_tone should be overrided by isl6421 or
> > > > not. The code only changes it for Hauppauge model 92001.
> > > 
> > > Unfortunately, it appears to be more problematic. While the fix allows to
> > > scan the channel list, it is not complete (in another setup at the same
> > > dish (via multiswitch), vdrs channel list has about 1600 channels, while
> > > scan does collect 1138 only.
> > > 
> > > More importantly, a single channel (arte) is received with 0 BER and a S/N
> > > ratio of 99%, while all other channels produce more BER, eg. "Das Erste"
> > > with about 320 BER (SNR 99%, a few artifacts/distortions occasionally),
> > > "ZDF" about 6400 BER, (SNR drops down to 75%, constant distortions, and
> > > many channels doesn't produce anything beyond distortions with a video
> > > stream below 0.3 MBit/s and about 160000 BER. (measured using vdr femon
> > > plugin v. 1.6.7)
> > > 
> > > So, still no cigar, sorry.
> > > 
> > > I've tested both patches, just to be sure, with the same result. I had to
> > > relocate and refresh yours in order to apply it to 3.4, since the paths
> > > changed, result attached.
> > > 
> > > > If it works, please answer this email with a:
> > > > 	Tested-by: your name <your@email>
> > > > 
> > > > For me to add it when merging the patch upstream.
> > > > 
> > > > Regards,
> > > > Mauro.
> > > 
> > > It looks like the idea is sound, but the logic is still missing something
> > > that prevents it from tuning most channels properly.
> > 
> > Well, what it is expected from this patch is to be able of seeing
> > channels with H and V polarization. Nothing more, nothing less.
> 
> Okay. Yes, I do.
> 
> > From what I understood, you're now seeing more than just one channel,
> > so, it is likely part of the fix, right?
> 
> Yes.

Ok, I'll likely be merging it by Monday.
> 
> > If are there any other issues, then it it would require other fixes,
> > likely at cx24123 frontend. My guess is that it could be due to some
> > precision loss maybe at cx24123_set_symbolrate(). It helps if you could
> > check if the channels that are more problematic have a higher or a
> > lower bit rate. It probably makes sense to change the code there to
> > use u64 and asm/div64.h, in order to allow the calculus to have more
> > precision. I'll try to write such patch.
> 
> ..that I'm testing right now. Build is on the way.
> 
> You wrote and published the fix in less then 8 minutes. Wow, unbelievable.

Well, the patch is really trivial. If it works or not, only the tests can
tell ;) I have one Nova-S model here, but unfortunately I don't have a
satellite dish anymore, so I can't test.

> Since I use a rpm build of an otherwise unchanged distribution kernel, the 
> build will take slightly longer, unfortunately..

Yeah, rebuilding the entire kernel with rpm takes some time ;)

> > With regards to this fix, could you please confirm that you can
> > now get channels with both polarizations?
> 
> Yes, confirmed.
> 
> Tested-by: Hans-Peter Jansen <hpj@urpla.net>
> 
> Thanks Mauro for the great support.

Thanks for testing it!

Regards,
Mauro
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Hans-Peter Jansen April 6, 2013, 8:20 p.m. UTC | #4
On Samstag, 6. April 2013 16:26:32 Mauro Carvalho Chehab wrote:
> Em Sat, 06 Apr 2013 19:26:23 +0200
> 
> Hans-Peter Jansen <hpj@urpla.net> escreveu:
> > On Samstag, 6. April 2013 10:37:52 you wrote:
> > > Em Sat, 06 Apr 2013 12:20:41 +0200
> > > 
> > > Hans-Peter Jansen <hpj@urpla.net> escreveu:
> > > > Dear Mauro,
> > > > 
> > > > first of all, thank you for providing a proper fix that quickly.
> > > > 
> > > > On Freitag, 5. April 2013 13:18:54 Mauro Carvalho Chehab wrote:
> > > > > Em Fri, 05 Apr 2013 13:25:01 +0100
> > > > > 
> > > > > Adam Sampson <ats@offog.org> escreveu:
> > > > > > Hans-Peter Jansen <hpj@urpla.net> writes:
> > > > > > > In one of my systems, I've used a
> > > > > > > Hauppauge Nova-S-Plus DVB-S card successfully, but after a
> > > > > > > system
> > > > > > > upgrade to openSUSE 12.2, it cannot tune in all but one channel.
> > > > > > 
> > > > > > [...]
> > > > > > 
> > > > > > > initial transponder 12551500 V 22000000 5
> > > > > > > 
> > > > > > >>>> tune to: 12551:v:0:22000
> > > > > > > 
> > > > > > > DVB-S IF freq is 1951500
> > > > > > > WARNING: >>> tuning failed!!!
> > > > > > 
> > > > > > I suspect you might be running into this problem:
> > > > > >   https://bugzilla.kernel.org/show_bug.cgi?id=9476
> > > > > > 
> > > > > > The bug title is misleading -- the problem is actually that the
> > > > > > card
> > > > > > doesn't get configured properly to send the 22kHz tone for
> > > > > > high-band
> > > > > > transponders, like the one in your error above.
> > > > > > 
> > > > > > Applying this patch makes my Nova-S-Plus work with recent kernels:
> > > > > >   https://bugzilla.kernel.org/attachment.cgi?id=21905&action=edit
> > > > > 
> > > > > Applying that patch would break support for all other devices with
> > > > > isl6421.
> > > > > 
> > > > > Could you please test the enclosed patch? It allows the bridge
> > > > > driver to tell if the set_tone should be overrided by isl6421 or
> > > > > not. The code only changes it for Hauppauge model 92001.
> > > > 
> > > > Unfortunately, it appears to be more problematic. While the fix allows
> > > > to
> > > > scan the channel list, it is not complete (in another setup at the
> > > > same
> > > > dish (via multiswitch), vdrs channel list has about 1600 channels,
> > > > while
> > > > scan does collect 1138 only.
> > > > 
> > > > More importantly, a single channel (arte) is received with 0 BER and a
> > > > S/N
> > > > ratio of 99%, while all other channels produce more BER, eg. "Das
> > > > Erste"
> > > > with about 320 BER (SNR 99%, a few artifacts/distortions
> > > > occasionally),
> > > > "ZDF" about 6400 BER, (SNR drops down to 75%, constant distortions,
> > > > and
> > > > many channels doesn't produce anything beyond distortions with a video
> > > > stream below 0.3 MBit/s and about 160000 BER. (measured using vdr
> > > > femon
> > > > plugin v. 1.6.7)
> > > > 
> > > > So, still no cigar, sorry.
> > > > 
> > > > I've tested both patches, just to be sure, with the same result. I had
> > > > to
> > > > relocate and refresh yours in order to apply it to 3.4, since the
> > > > paths
> > > > changed, result attached.
> > > > 
> > > > > If it works, please answer this email with a:
> > > > > 	Tested-by: your name <your@email>
> > > > > 
> > > > > For me to add it when merging the patch upstream.
> > > > > 
> > > > > Regards,
> > > > > Mauro.
> > > > 
> > > > It looks like the idea is sound, but the logic is still missing
> > > > something
> > > > that prevents it from tuning most channels properly.
> > > 
> > > Well, what it is expected from this patch is to be able of seeing
> > > channels with H and V polarization. Nothing more, nothing less.
> > 
> > Okay. Yes, I do.
> > 
> > > From what I understood, you're now seeing more than just one channel,
> > > so, it is likely part of the fix, right?
> > 
> > Yes.
> 
> Ok, I'll likely be merging it by Monday.

Since it fixes the Nova-S-Plus 92001 model for some users, that's great.

> > > If are there any other issues, then it it would require other fixes,
> > > likely at cx24123 frontend. My guess is that it could be due to some
> > > precision loss maybe at cx24123_set_symbolrate(). It helps if you could
> > > check if the channels that are more problematic have a higher or a
> > > lower bit rate. It probably makes sense to change the code there to
> > > use u64 and asm/div64.h, in order to allow the calculus to have more
> > > precision. I'll try to write such patch.
> > 
> > ..that I'm testing right now. Build is on the way.
> > 
> > You wrote and published the fix in less then 8 minutes. Wow, unbelievable.
> 
> Well, the patch is really trivial. If it works or not, only the tests can
> tell ;) I have one Nova-S model here, but unfortunately I don't have a
> satellite dish anymore, so I can't test.

That's a pity. Bad news: no changes. I double checked, that the new cx24123 
patch was applied. Unfortunately it doesn't help. The behavior is unchanged
from what I can see.

Here's the debugging output of the cx24123 module with comments:

# tune in the good channel (arte):

Apr  6 22:04:48 xrated kernel: [ 5385.768351] cx88[0]/2-dvb: cx8802_dvb_advise_release
Apr  6 22:04:48 xrated kernel: [ 5385.768410] cx88[0]/2-dvb: cx8802_dvb_advise_acquire
Apr  6 22:04:48 xrated kernel: [ 5385.784365] CX24123: cx24123_send_diseqc_msg: 
Apr  6 22:04:48 xrated kernel: [ 5385.923227] CX24123: cx24123_initfe: init frontend
Apr  6 22:04:48 xrated kernel: [ 5385.947033] CX24123: cx24123_diseqc_send_burst: 
Apr  6 22:04:48 xrated kernel: [ 5386.054894] CX24123: cx24123_set_frontend: 
Apr  6 22:04:48 xrated kernel: [ 5386.056399] CX24123: cx24123_set_inversion: inversion auto
Apr  6 22:04:48 xrated kernel: [ 5386.058834] CX24123: cx24123_set_fec: set FEC to 5/6
Apr  6 22:04:48 xrated kernel: [ 5386.063176] CX24123: cx24123_set_symbolrate: srate=22000000, ratio=0x0037b3a3, sample_rate=50555000 sample_gain=1
Apr  6 22:04:48 xrated kernel: [ 5386.063179] CX24123: cx24123_pll_tune: frequency=993750
Apr  6 22:04:48 xrated kernel: [ 5386.063181] CX24123: cx24123_pll_writereg: pll writereg called, data=0x00100e3f
Apr  6 22:04:48 xrated kernel: [ 5386.070035] CX24123: cx24123_pll_writereg: pll writereg called, data=0x000a0180
Apr  6 22:04:48 xrated kernel: [ 5386.081737] CX24123: cx24123_pll_writereg: pll writereg called, data=0x00000040
Apr  6 22:04:48 xrated kernel: [ 5386.088353] CX24123: cx24123_pll_writereg: pll writereg called, data=0x001f47ad
Apr  6 22:04:48 xrated kernel: [ 5386.096649] CX24123: cx24123_pll_tune: pll tune VCA=1052223, band=64, pll=2049965
Apr  6 22:04:48 xrated kernel: [ 5386.201464] CX24123: cx24123_get_frontend: 
Apr  6 22:04:48 xrated kernel: [ 5386.202165] CX24123: cx24123_get_inversion: read inversion on

# everything is fine, show a perfect stream for 17 sec, now switch to "Das Erste"
# the second best channel:

Apr  6 22:05:05 xrated kernel: [ 5402.838345] cx88[0]/2-dvb: cx8802_dvb_advise_release
Apr  6 22:05:05 xrated kernel: [ 5402.838364] cx88[0]/2-dvb: cx8802_dvb_advise_acquire
Apr  6 22:05:05 xrated kernel: [ 5402.844995] CX24123: cx24123_initfe: init frontend
Apr  6 22:05:05 xrated kernel: [ 5402.868926] CX24123: cx24123_send_diseqc_msg: 
Apr  6 22:05:05 xrated kernel: [ 5403.022665] CX24123: cx24123_diseqc_send_burst: 
Apr  6 22:05:05 xrated kernel: [ 5403.130032] CX24123: cx24123_set_frontend: 
Apr  6 22:05:05 xrated kernel: [ 5403.131587] CX24123: cx24123_set_inversion: inversion auto
Apr  6 22:05:05 xrated kernel: [ 5403.134147] CX24123: cx24123_set_fec: set FEC to 3/4
Apr  6 22:05:05 xrated kernel: [ 5403.138527] CX24123: cx24123_set_symbolrate: srate=27500000, ratio=0x003a05ca, sample_rate=60666000 sample_gain=1
Apr  6 22:05:05 xrated kernel: [ 5403.138587] CX24123: cx24123_pll_tune: frequency=1236500
Apr  6 22:05:05 xrated kernel: [ 5403.138639] CX24123: cx24123_pll_writereg: pll writereg called, data=0x00100e3f
Apr  6 22:05:05 xrated kernel: [ 5403.145421] CX24123: cx24123_pll_writereg: pll writereg called, data=0x000a0180
Apr  6 22:05:05 xrated kernel: [ 5403.152203] CX24123: cx24123_pll_writereg: pll writereg called, data=0x00000201
Apr  6 22:05:05 xrated kernel: [ 5403.158857] CX24123: cx24123_pll_writereg: pll writereg called, data=0x001f44c6
Apr  6 22:05:05 xrated kernel: [ 5403.167529] CX24123: cx24123_pll_tune: pll tune VCA=1052223, band=513, pll=2049222
Apr  6 22:05:05 xrated kernel: [ 5403.274309] CX24123: cx24123_get_frontend: 
Apr  6 22:05:05 xrated kernel: [ 5403.275020] CX24123: cx24123_get_inversion: read inversion on
Apr  6 22:05:08 xrated kernel: [ 5406.606664] CX24123: cx24123_get_frontend: 
Apr  6 22:05:08 xrated kernel: [ 5406.607375] CX24123: cx24123_get_inversion: read inversion on
Apr  6 22:05:12 xrated kernel: [ 5409.935414] CX24123: cx24123_get_frontend: 
Apr  6 22:05:12 xrated kernel: [ 5409.936213] CX24123: cx24123_get_inversion: read inversion on
Apr  6 22:05:13 xrated kernel: [ 5411.148546] CX24123: cx24123_get_frontend: 
Apr  6 22:05:13 xrated kernel: [ 5411.149258] CX24123: cx24123_get_inversion: read inversion on
Apr  6 22:05:14 xrated kernel: [ 5412.059054] CX24123: cx24123_get_frontend: 
Apr  6 22:05:14 xrated kernel: [ 5412.059817] CX24123: cx24123_get_inversion: read inversion on
Apr  6 22:05:14 xrated kernel: [ 5412.463575] CX24123: cx24123_get_frontend: 
Apr  6 22:05:14 xrated kernel: [ 5412.464279] CX24123: cx24123_get_inversion: read inversion on
Apr  6 22:05:17 xrated kernel: [ 5414.885746] CX24123: cx24123_get_frontend: 
Apr  6 22:05:17 xrated kernel: [ 5414.886509] CX24123: cx24123_get_inversion: read inversion on
Apr  6 22:05:18 xrated kernel: [ 5415.997814] CX24123: cx24123_get_frontend: 
Apr  6 22:05:18 xrated kernel: [ 5415.998610] CX24123: cx24123_get_inversion: read inversion on
Apr  6 22:05:18 xrated kernel: [ 5416.604004] CX24123: cx24123_get_frontend: 
Apr  6 22:05:18 xrated kernel: [ 5416.604773] CX24123: cx24123_get_inversion: read inversion on
Apr  6 22:05:19 xrated kernel: [ 5417.513528] CX24123: cx24123_get_frontend: 
Apr  6 22:05:19 xrated kernel: [ 5417.514234] CX24123: cx24123_get_inversion: read inversion on
Apr  6 22:05:21 xrated kernel: [ 5418.825570] CX24123: cx24123_get_frontend: 
Apr  6 22:05:21 xrated kernel: [ 5418.826270] CX24123: cx24123_get_inversion: read inversion on
Apr  6 22:05:21 xrated kernel: [ 5419.533488] CX24123: cx24123_get_frontend: 
Apr  6 22:05:21 xrated kernel: [ 5419.534201] CX24123: cx24123_get_inversion: read inversion on
Apr  6 22:05:23 xrated kernel: [ 5420.846369] CX24123: cx24123_get_frontend: 
Apr  6 22:05:23 xrated kernel: [ 5420.847081] CX24123: cx24123_get_inversion: read inversion on
Apr  6 22:05:23 xrated kernel: [ 5421.050152] CX24123: cx24123_get_frontend: 
Apr  6 22:05:23 xrated kernel: [ 5421.050888] CX24123: cx24123_get_inversion: read inversion on
Apr  6 22:05:23 xrated kernel: [ 5421.354549] CX24123: cx24123_get_frontend: 
Apr  6 22:05:23 xrated kernel: [ 5421.355253] CX24123: cx24123_get_inversion: read inversion on

# the distortion is visible here by the repeated cx24123_get_frontend/cx24123_get_inversion
# invocations, some visible distortions, switch to a damaged one (ZDF):

Apr  6 22:05:23 xrated kernel: [ 5421.454611] cx88[0]/2-dvb: cx8802_dvb_advise_release
Apr  6 22:05:23 xrated kernel: [ 5421.454639] cx88[0]/2-dvb: cx8802_dvb_advise_acquire
Apr  6 22:05:23 xrated kernel: [ 5421.455336] CX24123: cx24123_initfe: init frontend
Apr  6 22:05:23 xrated kernel: [ 5421.492320] CX24123: cx24123_send_diseqc_msg: 
Apr  6 22:05:23 xrated kernel: [ 5421.647452] CX24123: cx24123_diseqc_send_burst: 
Apr  6 22:05:24 xrated kernel: [ 5421.754847] CX24123: cx24123_set_frontend: 
Apr  6 22:05:24 xrated kernel: [ 5421.756322] CX24123: cx24123_set_inversion: inversion auto
Apr  6 22:05:24 xrated kernel: [ 5421.758759] CX24123: cx24123_set_fec: set FEC to 3/4
Apr  6 22:05:24 xrated kernel: [ 5421.763023] CX24123: cx24123_set_symbolrate: srate=27500000, ratio=0x003a05ca, sample_rate=60666000 sample_gain=1
Apr  6 22:05:24 xrated kernel: [ 5421.763026] CX24123: cx24123_pll_tune: frequency=1353500
Apr  6 22:05:24 xrated kernel: [ 5421.763027] CX24123: cx24123_pll_writereg: pll writereg called, data=0x00100e3f
Apr  6 22:05:24 xrated kernel: [ 5421.769560] CX24123: cx24123_pll_writereg: pll writereg called, data=0x000a0180
Apr  6 22:05:24 xrated kernel: [ 5421.775971] CX24123: cx24123_pll_writereg: pll writereg called, data=0x00000202
Apr  6 22:05:24 xrated kernel: [ 5421.782794] CX24123: cx24123_pll_writereg: pll writereg called, data=0x001f453a
Apr  6 22:05:24 xrated kernel: [ 5421.791368] CX24123: cx24123_pll_tune: pll tune VCA=1052223, band=514, pll=2049338
Apr  6 22:05:24 xrated kernel: [ 5421.895674] CX24123: cx24123_get_frontend: 
Apr  6 22:05:24 xrated kernel: [ 5421.896426] CX24123: cx24123_get_inversion: read inversion on
Apr  6 22:05:24 xrated kernel: [ 5422.099346] CX24123: cx24123_get_frontend: 
Apr  6 22:05:24 xrated kernel: [ 5422.100121] CX24123: cx24123_get_inversion: read inversion on
Apr  6 22:05:24 xrated kernel: [ 5422.504649] CX24123: cx24123_get_frontend: 
Apr  6 22:05:24 xrated kernel: [ 5422.505463] CX24123: cx24123_get_inversion: read inversion on
Apr  6 22:05:25 xrated kernel: [ 5423.211648] CX24123: cx24123_get_frontend: 
Apr  6 22:05:25 xrated kernel: [ 5423.212380] CX24123: cx24123_get_inversion: read inversion on
Apr  6 22:05:25 xrated kernel: [ 5423.415355] CX24123: cx24123_get_frontend: 
Apr  6 22:05:25 xrated kernel: [ 5423.416159] CX24123: cx24123_get_inversion: read inversion on
Apr  6 22:05:25 xrated kernel: [ 5423.619044] CX24123: cx24123_get_frontend: 
Apr  6 22:05:25 xrated kernel: [ 5423.619807] CX24123: cx24123_get_inversion: read inversion on
Apr  6 22:05:26 xrated kernel: [ 5424.326841] CX24123: cx24123_get_frontend: 
Apr  6 22:05:26 xrated kernel: [ 5424.327649] CX24123: cx24123_get_inversion: read inversion on
Apr  6 22:05:27 xrated kernel: [ 5425.338309] CX24123: cx24123_get_frontend: 
Apr  6 22:05:27 xrated kernel: [ 5425.339021] CX24123: cx24123_get_inversion: read inversion on
Apr  6 22:05:28 xrated kernel: [ 5425.742663] CX24123: cx24123_get_frontend: 
Apr  6 22:05:28 xrated kernel: [ 5425.743429] CX24123: cx24123_get_inversion: read inversion on
Apr  6 22:05:28 xrated kernel: [ 5426.148028] CX24123: cx24123_get_frontend: 
Apr  6 22:05:28 xrated kernel: [ 5426.148735] CX24123: cx24123_get_inversion: read inversion on
Apr  6 22:05:28 xrated kernel: [ 5426.653281] CX24123: cx24123_get_frontend: 
Apr  6 22:05:28 xrated kernel: [ 5426.653996] CX24123: cx24123_get_inversion: read inversion on
Apr  6 22:05:29 xrated kernel: [ 5426.857045] CX24123: cx24123_get_frontend: 
Apr  6 22:05:29 xrated kernel: [ 5426.858245] CX24123: cx24123_get_inversion: read inversion on
Apr  6 22:05:29 xrated kernel: [ 5427.061556] CX24123: cx24123_get_frontend: 
Apr  6 22:05:29 xrated kernel: [ 5427.062310] CX24123: cx24123_get_inversion: read inversion on
Apr  6 22:05:29 xrated kernel: [ 5427.365074] CX24123: cx24123_get_frontend: 
Apr  6 22:05:29 xrated kernel: [ 5427.365795] CX24123: cx24123_get_inversion: read inversion on
Apr  6 22:05:30 xrated kernel: [ 5427.870355] CX24123: cx24123_get_frontend: 
Apr  6 22:05:30 xrated kernel: [ 5427.871059] CX24123: cx24123_get_inversion: read inversion on
Apr  6 22:05:31 xrated kernel: [ 5428.678088] CX24123: cx24123_get_frontend: 
Apr  6 22:05:31 xrated kernel: [ 5428.678827] CX24123: cx24123_get_inversion: read inversion on
Apr  6 22:05:31 xrated kernel: [ 5428.982453] CX24123: cx24123_get_frontend: 
Apr  6 22:05:31 xrated kernel: [ 5428.983162] CX24123: cx24123_get_inversion: read inversion on
Apr  6 22:05:31 xrated kernel: [ 5429.387082] CX24123: cx24123_get_frontend: 
Apr  6 22:05:31 xrated kernel: [ 5429.387844] CX24123: cx24123_get_inversion: read inversion on
Apr  6 22:05:32 xrated kernel: [ 5429.792367] CX24123: cx24123_get_frontend: 
Apr  6 22:05:32 xrated kernel: [ 5429.793081] CX24123: cx24123_get_inversion: read inversion on
Apr  6 22:05:32 xrated kernel: [ 5430.097632] CX24123: cx24123_get_frontend: 
Apr  6 22:05:32 xrated kernel: [ 5430.098404] CX24123: cx24123_get_inversion: read inversion on
Apr  6 22:05:33 xrated kernel: [ 5430.804750] CX24123: cx24123_get_frontend: 
Apr  6 22:05:33 xrated kernel: [ 5430.805466] CX24123: cx24123_get_inversion: read inversion on
Apr  6 22:05:33 xrated kernel: [ 5431.210089] CX24123: cx24123_get_frontend: 
Apr  6 22:05:33 xrated kernel: [ 5431.210855] CX24123: cx24123_get_inversion: read inversion on

# the about 2-3 cx24123_get_frontend/cx24123_get_inversion invocations per 
# second document the heavy distortions here, now 3sat, a little less 
# distortion, compared to above

Apr  6 22:06:04 xrated kernel: [ 5462.126946] cx88[0]/2-dvb: cx8802_dvb_advise_release
Apr  6 22:06:04 xrated kernel: [ 5462.126975] cx88[0]/2-dvb: cx8802_dvb_advise_acquire
Apr  6 22:06:04 xrated kernel: [ 5462.142941] CX24123: cx24123_send_diseqc_msg: 
Apr  6 22:06:04 xrated kernel: [ 5462.282574] CX24123: cx24123_initfe: init frontend
Apr  6 22:06:04 xrated kernel: [ 5462.306488] CX24123: cx24123_diseqc_send_burst: 
Apr  6 22:06:04 xrated kernel: [ 5462.413161] CX24123: cx24123_set_frontend: 
Apr  6 22:06:04 xrated kernel: [ 5462.414665] CX24123: cx24123_set_inversion: inversion auto
Apr  6 22:06:04 xrated kernel: [ 5462.417157] CX24123: cx24123_set_fec: set FEC to 5/6
Apr  6 22:06:04 xrated kernel: [ 5462.421438] CX24123: cx24123_set_symbolrate: srate=22000000, ratio=0x0037b3a3, sample_rate=50555000 sample_gain=1
Apr  6 22:06:04 xrated kernel: [ 5462.421445] CX24123: cx24123_pll_tune: frequency=1944750
Apr  6 22:06:04 xrated kernel: [ 5462.421449] CX24123: cx24123_pll_writereg: pll writereg called, data=0x00100e3f
Apr  6 22:06:04 xrated kernel: [ 5462.427984] CX24123: cx24123_pll_writereg: pll writereg called, data=0x000a0180
Apr  6 22:06:04 xrated kernel: [ 5462.434758] CX24123: cx24123_pll_writereg: pll writereg called, data=0x00000220
Apr  6 22:06:04 xrated kernel: [ 5462.441438] CX24123: cx24123_pll_writereg: pll writereg called, data=0x001f4783
Apr  6 22:06:04 xrated kernel: [ 5462.450134] CX24123: cx24123_pll_tune: pll tune VCA=1052223, band=544, pll=2049923
Apr  6 22:06:05 xrated kernel: [ 5462.655630] CX24123: cx24123_get_frontend: 
Apr  6 22:06:05 xrated kernel: [ 5462.656353] CX24123: cx24123_get_inversion: read inversion on
Apr  6 22:06:06 xrated kernel: [ 5464.572700] CX24123: cx24123_get_frontend: 
Apr  6 22:06:06 xrated kernel: [ 5464.573454] CX24123: cx24123_get_inversion: read inversion on
Apr  6 22:06:07 xrated kernel: [ 5465.482194] CX24123: cx24123_get_frontend: 
Apr  6 22:06:07 xrated kernel: [ 5465.482915] CX24123: cx24123_get_inversion: read inversion on
Apr  6 22:06:09 xrated kernel: [ 5466.894964] CX24123: cx24123_get_frontend: 
Apr  6 22:06:09 xrated kernel: [ 5466.895661] CX24123: cx24123_get_inversion: read inversion on
Apr  6 22:06:09 xrated kernel: [ 5467.602031] CX24123: cx24123_get_frontend: 
Apr  6 22:06:09 xrated kernel: [ 5467.602777] CX24123: cx24123_get_inversion: read inversion on
Apr  6 22:06:12 xrated kernel: [ 5470.427373] CX24123: cx24123_get_frontend: 
Apr  6 22:06:12 xrated kernel: [ 5470.428140] CX24123: cx24123_get_inversion: read inversion on
Apr  6 22:06:13 xrated kernel: [ 5470.831789] CX24123: cx24123_get_frontend: 
Apr  6 22:06:13 xrated kernel: [ 5470.832564] CX24123: cx24123_get_inversion: read inversion on
Apr  6 22:06:14 xrated kernel: [ 5471.740377] CX24123: cx24123_get_frontend: 
Apr  6 22:06:14 xrated kernel: [ 5471.741140] CX24123: cx24123_get_inversion: read inversion on
Apr  6 22:06:14 xrated kernel: [ 5472.245570] CX24123: cx24123_get_frontend: 
Apr  6 22:06:14 xrated kernel: [ 5472.246308] CX24123: cx24123_get_inversion: read inversion on
Apr  6 22:06:15 xrated kernel: [ 5472.952418] CX24123: cx24123_get_frontend: 
Apr  6 22:06:15 xrated kernel: [ 5472.953120] CX24123: cx24123_get_inversion: read inversion on
Apr  6 22:06:16 xrated kernel: [ 5474.566970] CX24123: cx24123_get_frontend: 
Apr  6 22:06:16 xrated kernel: [ 5474.567703] CX24123: cx24123_get_inversion: read inversion on
Apr  6 22:06:17 xrated kernel: [ 5475.174042] CX24123: cx24123_get_frontend: 
Apr  6 22:06:17 xrated kernel: [ 5475.174853] CX24123: cx24123_get_inversion: read inversion on
Apr  6 22:06:19 xrated kernel: [ 5477.495375] CX24123: cx24123_get_frontend: 
Apr  6 22:06:19 xrated kernel: [ 5477.496075] CX24123: cx24123_get_inversion: read inversion on
Apr  6 22:06:21 xrated kernel: [ 5478.605643] CX24123: cx24123_get_frontend: 
Apr  6 22:06:21 xrated kernel: [ 5478.606343] CX24123: cx24123_get_inversion: read inversion on
Apr  6 22:06:21 xrated kernel: [ 5479.010892] CX24123: cx24123_get_frontend: 
Apr  6 22:06:21 xrated kernel: [ 5479.011598] CX24123: cx24123_get_inversion: read inversion on

# now pro7, even without a stable "picture"

Apr  6 22:06:55 xrated kernel: [ 5513.057158] cx88[0]/2-dvb: cx8802_dvb_advise_release
Apr  6 22:06:55 xrated kernel: [ 5513.057189] cx88[0]/2-dvb: cx8802_dvb_advise_acquire
Apr  6 22:06:55 xrated kernel: [ 5513.073138] CX24123: cx24123_send_diseqc_msg: 
Apr  6 22:06:55 xrated kernel: [ 5513.211377] CX24123: cx24123_initfe: init frontend
Apr  6 22:06:55 xrated kernel: [ 5513.235097] CX24123: cx24123_diseqc_send_burst: 
Apr  6 22:06:55 xrated kernel: [ 5513.342913] CX24123: cx24123_set_frontend: 
Apr  6 22:06:55 xrated kernel: [ 5513.344382] CX24123: cx24123_set_inversion: inversion auto
Apr  6 22:06:55 xrated kernel: [ 5513.346830] CX24123: cx24123_set_fec: set FEC to 5/6
Apr  6 22:06:55 xrated kernel: [ 5513.351155] CX24123: cx24123_set_symbolrate: srate=22000000, ratio=0x0037b3a3, sample_rate=50555000 sample_gain=1
Apr  6 22:06:55 xrated kernel: [ 5513.351162] CX24123: cx24123_pll_tune: frequency=1944750
Apr  6 22:06:55 xrated kernel: [ 5513.351166] CX24123: cx24123_pll_writereg: pll writereg called, data=0x00100e3f
Apr  6 22:06:55 xrated kernel: [ 5513.359274] CX24123: cx24123_pll_writereg: pll writereg called, data=0x000a0180
Apr  6 22:06:55 xrated kernel: [ 5513.369254] CX24123: cx24123_pll_writereg: pll writereg called, data=0x00000220
Apr  6 22:06:55 xrated kernel: [ 5513.375809] CX24123: cx24123_pll_writereg: pll writereg called, data=0x001f4783
Apr  6 22:06:55 xrated kernel: [ 5513.384081] CX24123: cx24123_pll_tune: pll tune VCA=1052223, band=544, pll=2049923
Apr  6 22:06:56 xrated kernel: [ 5513.589444] CX24123: cx24123_get_frontend: 
Apr  6 22:06:56 xrated kernel: [ 5513.590141] CX24123: cx24123_get_inversion: read inversion on
Apr  6 22:06:58 xrated kernel: [ 5515.607237] CX24123: cx24123_get_frontend: 
Apr  6 22:06:58 xrated kernel: [ 5515.607998] CX24123: cx24123_get_inversion: read inversion on
Apr  6 22:06:59 xrated kernel: [ 5516.717685] CX24123: cx24123_get_frontend: 
Apr  6 22:06:59 xrated kernel: [ 5516.718438] CX24123: cx24123_get_inversion: read inversion on
Apr  6 22:06:59 xrated kernel: [ 5517.425431] CX24123: cx24123_get_frontend: 
Apr  6 22:06:59 xrated kernel: [ 5517.426190] CX24123: cx24123_get_inversion: read inversion on
Apr  6 22:07:01 xrated kernel: [ 5519.343437] CX24123: cx24123_get_frontend: 
Apr  6 22:07:01 xrated kernel: [ 5519.344197] CX24123: cx24123_get_inversion: read inversion on
Apr  6 22:07:04 xrated kernel: [ 5522.068048] CX24123: cx24123_get_frontend: 
Apr  6 22:07:04 xrated kernel: [ 5522.068760] CX24123: cx24123_get_inversion: read inversion on
Apr  6 22:07:04 xrated kernel: [ 5522.270712] CX24123: cx24123_get_frontend: 
Apr  6 22:07:04 xrated kernel: [ 5522.271420] CX24123: cx24123_get_inversion: read inversion on
Apr  6 22:07:04 xrated kernel: [ 5522.473496] CX24123: cx24123_get_frontend: 
Apr  6 22:07:04 xrated kernel: [ 5522.474195] CX24123: cx24123_get_inversion: read inversion on
Apr  6 22:07:06 xrated kernel: [ 5523.887241] CX24123: cx24123_get_frontend: 
Apr  6 22:07:06 xrated kernel: [ 5523.888018] CX24123: cx24123_get_inversion: read inversion on
Apr  6 22:07:06 xrated kernel: [ 5524.292603] CX24123: cx24123_get_frontend: 
Apr  6 22:07:06 xrated kernel: [ 5524.293306] CX24123: cx24123_get_inversion: read inversion on
Apr  6 22:07:07 xrated kernel: [ 5524.899625] CX24123: cx24123_get_frontend: 
Apr  6 22:07:07 xrated kernel: [ 5524.900335] CX24123: cx24123_get_inversion: read inversion on
Apr  6 22:07:07 xrated kernel: [ 5525.102312] CX24123: cx24123_get_frontend: 
Apr  6 22:07:07 xrated kernel: [ 5525.103013] CX24123: cx24123_get_inversion: read inversion on
Apr  6 22:07:09 xrated kernel: [ 5527.422783] CX24123: cx24123_get_frontend: 
Apr  6 22:07:09 xrated kernel: [ 5527.423543] CX24123: cx24123_get_inversion: read inversion on
Apr  6 22:07:10 xrated kernel: [ 5528.332169] CX24123: cx24123_get_frontend: 
Apr  6 22:07:10 xrated kernel: [ 5528.332878] CX24123: cx24123_get_inversion: read inversion on

Does this help you in some way?

Thanks,
Pete
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Mauro Carvalho Chehab April 7, 2013, 5:03 p.m. UTC | #5
Em Sat, 06 Apr 2013 22:20:19 +0200
Hans-Peter Jansen <hpj@urpla.net> escreveu:

> On Samstag, 6. April 2013 16:26:32 Mauro Carvalho Chehab wrote:
> > Em Sat, 06 Apr 2013 19:26:23 +0200
> > 
> > Hans-Peter Jansen <hpj@urpla.net> escreveu:
> > > On Samstag, 6. April 2013 10:37:52 you wrote:
> > > > Em Sat, 06 Apr 2013 12:20:41 +0200
> > > > 
> > > > Hans-Peter Jansen <hpj@urpla.net> escreveu:
> > > > > Dear Mauro,
> > > > > 
> > > > > first of all, thank you for providing a proper fix that quickly.
> > > > > 
> > > > > On Freitag, 5. April 2013 13:18:54 Mauro Carvalho Chehab wrote:
> > > > > > Em Fri, 05 Apr 2013 13:25:01 +0100
> > > > > > 
> > > > > > Adam Sampson <ats@offog.org> escreveu:
> > > > > > > Hans-Peter Jansen <hpj@urpla.net> writes:
> > > > > > > > In one of my systems, I've used a
> > > > > > > > Hauppauge Nova-S-Plus DVB-S card successfully, but after a
> > > > > > > > system
> > > > > > > > upgrade to openSUSE 12.2, it cannot tune in all but one channel.
> > > > > > > 
> > > > > > > [...]
> > > > > > > 
> > > > > > > > initial transponder 12551500 V 22000000 5
> > > > > > > > 
> > > > > > > >>>> tune to: 12551:v:0:22000
> > > > > > > > 
> > > > > > > > DVB-S IF freq is 1951500
> > > > > > > > WARNING: >>> tuning failed!!!
> > > > > > > 
> > > > > > > I suspect you might be running into this problem:
> > > > > > >   https://bugzilla.kernel.org/show_bug.cgi?id=9476
> > > > > > > 
> > > > > > > The bug title is misleading -- the problem is actually that the
> > > > > > > card
> > > > > > > doesn't get configured properly to send the 22kHz tone for
> > > > > > > high-band
> > > > > > > transponders, like the one in your error above.
> > > > > > > 
> > > > > > > Applying this patch makes my Nova-S-Plus work with recent kernels:
> > > > > > >   https://bugzilla.kernel.org/attachment.cgi?id=21905&action=edit
> > > > > > 
> > > > > > Applying that patch would break support for all other devices with
> > > > > > isl6421.
> > > > > > 
> > > > > > Could you please test the enclosed patch? It allows the bridge
> > > > > > driver to tell if the set_tone should be overrided by isl6421 or
> > > > > > not. The code only changes it for Hauppauge model 92001.
> > > > > 
> > > > > Unfortunately, it appears to be more problematic. While the fix allows
> > > > > to
> > > > > scan the channel list, it is not complete (in another setup at the
> > > > > same
> > > > > dish (via multiswitch), vdrs channel list has about 1600 channels,
> > > > > while
> > > > > scan does collect 1138 only.
> > > > > 
> > > > > More importantly, a single channel (arte) is received with 0 BER and a
> > > > > S/N
> > > > > ratio of 99%, while all other channels produce more BER, eg. "Das
> > > > > Erste"
> > > > > with about 320 BER (SNR 99%, a few artifacts/distortions
> > > > > occasionally),
> > > > > "ZDF" about 6400 BER, (SNR drops down to 75%, constant distortions,
> > > > > and
> > > > > many channels doesn't produce anything beyond distortions with a video
> > > > > stream below 0.3 MBit/s and about 160000 BER. (measured using vdr
> > > > > femon
> > > > > plugin v. 1.6.7)
> > > > > 
> > > > > So, still no cigar, sorry.
> > > > > 
> > > > > I've tested both patches, just to be sure, with the same result. I had
> > > > > to
> > > > > relocate and refresh yours in order to apply it to 3.4, since the
> > > > > paths
> > > > > changed, result attached.
> > > > > 
> > > > > > If it works, please answer this email with a:
> > > > > > 	Tested-by: your name <your@email>
> > > > > > 
> > > > > > For me to add it when merging the patch upstream.
> > > > > > 
> > > > > > Regards,
> > > > > > Mauro.
> > > > > 
> > > > > It looks like the idea is sound, but the logic is still missing
> > > > > something
> > > > > that prevents it from tuning most channels properly.
> > > > 
> > > > Well, what it is expected from this patch is to be able of seeing
> > > > channels with H and V polarization. Nothing more, nothing less.
> > > 
> > > Okay. Yes, I do.
> > > 
> > > > From what I understood, you're now seeing more than just one channel,
> > > > so, it is likely part of the fix, right?
> > > 
> > > Yes.
> > 
> > Ok, I'll likely be merging it by Monday.
> 
> Since it fixes the Nova-S-Plus 92001 model for some users, that's great.
> 
> > > > If are there any other issues, then it it would require other fixes,
> > > > likely at cx24123 frontend. My guess is that it could be due to some
> > > > precision loss maybe at cx24123_set_symbolrate(). It helps if you could
> > > > check if the channels that are more problematic have a higher or a
> > > > lower bit rate. It probably makes sense to change the code there to
> > > > use u64 and asm/div64.h, in order to allow the calculus to have more
> > > > precision. I'll try to write such patch.
> > > 
> > > ..that I'm testing right now. Build is on the way.
> > > 
> > > You wrote and published the fix in less then 8 minutes. Wow, unbelievable.
> > 
> > Well, the patch is really trivial. If it works or not, only the tests can
> > tell ;) I have one Nova-S model here, but unfortunately I don't have a
> > satellite dish anymore, so I can't test.
> 
> That's a pity. Bad news: no changes. I double checked, that the new cx24123 
> patch was applied. Unfortunately it doesn't help. The behavior is unchanged
> from what I can see.

Ok. As you're getting signals with high symbol rate, it were less likely to
have troubles there.

That also means that the patch didn't introduce any bugs, so I'll likely
apply it, as this way is better than before.

As you said that you weren't experiencing any issue with a previous kernel,
I suggest you to do a diff between cx24123 on the version where everything
is OK with the current one, and post here. We can then try to detect where
the issue was introduced.

Regards,
Mauro.

> 
> Here's the debugging output of the cx24123 module with comments:
> 
> # tune in the good channel (arte):
> 
> Apr  6 22:04:48 xrated kernel: [ 5385.768351] cx88[0]/2-dvb: cx8802_dvb_advise_release
> Apr  6 22:04:48 xrated kernel: [ 5385.768410] cx88[0]/2-dvb: cx8802_dvb_advise_acquire
> Apr  6 22:04:48 xrated kernel: [ 5385.784365] CX24123: cx24123_send_diseqc_msg: 
> Apr  6 22:04:48 xrated kernel: [ 5385.923227] CX24123: cx24123_initfe: init frontend
> Apr  6 22:04:48 xrated kernel: [ 5385.947033] CX24123: cx24123_diseqc_send_burst: 
> Apr  6 22:04:48 xrated kernel: [ 5386.054894] CX24123: cx24123_set_frontend: 
> Apr  6 22:04:48 xrated kernel: [ 5386.056399] CX24123: cx24123_set_inversion: inversion auto
> Apr  6 22:04:48 xrated kernel: [ 5386.058834] CX24123: cx24123_set_fec: set FEC to 5/6
> Apr  6 22:04:48 xrated kernel: [ 5386.063176] CX24123: cx24123_set_symbolrate: srate=22000000, ratio=0x0037b3a3, sample_rate=50555000 sample_gain=1
> Apr  6 22:04:48 xrated kernel: [ 5386.063179] CX24123: cx24123_pll_tune: frequency=993750
> Apr  6 22:04:48 xrated kernel: [ 5386.063181] CX24123: cx24123_pll_writereg: pll writereg called, data=0x00100e3f
> Apr  6 22:04:48 xrated kernel: [ 5386.070035] CX24123: cx24123_pll_writereg: pll writereg called, data=0x000a0180
> Apr  6 22:04:48 xrated kernel: [ 5386.081737] CX24123: cx24123_pll_writereg: pll writereg called, data=0x00000040
> Apr  6 22:04:48 xrated kernel: [ 5386.088353] CX24123: cx24123_pll_writereg: pll writereg called, data=0x001f47ad
> Apr  6 22:04:48 xrated kernel: [ 5386.096649] CX24123: cx24123_pll_tune: pll tune VCA=1052223, band=64, pll=2049965
> Apr  6 22:04:48 xrated kernel: [ 5386.201464] CX24123: cx24123_get_frontend: 
> Apr  6 22:04:48 xrated kernel: [ 5386.202165] CX24123: cx24123_get_inversion: read inversion on
> 
> # everything is fine, show a perfect stream for 17 sec, now switch to "Das Erste"
> # the second best channel:
> 
> Apr  6 22:05:05 xrated kernel: [ 5402.838345] cx88[0]/2-dvb: cx8802_dvb_advise_release
> Apr  6 22:05:05 xrated kernel: [ 5402.838364] cx88[0]/2-dvb: cx8802_dvb_advise_acquire
> Apr  6 22:05:05 xrated kernel: [ 5402.844995] CX24123: cx24123_initfe: init frontend
> Apr  6 22:05:05 xrated kernel: [ 5402.868926] CX24123: cx24123_send_diseqc_msg: 
> Apr  6 22:05:05 xrated kernel: [ 5403.022665] CX24123: cx24123_diseqc_send_burst: 
> Apr  6 22:05:05 xrated kernel: [ 5403.130032] CX24123: cx24123_set_frontend: 
> Apr  6 22:05:05 xrated kernel: [ 5403.131587] CX24123: cx24123_set_inversion: inversion auto
> Apr  6 22:05:05 xrated kernel: [ 5403.134147] CX24123: cx24123_set_fec: set FEC to 3/4
> Apr  6 22:05:05 xrated kernel: [ 5403.138527] CX24123: cx24123_set_symbolrate: srate=27500000, ratio=0x003a05ca, sample_rate=60666000 sample_gain=1
> Apr  6 22:05:05 xrated kernel: [ 5403.138587] CX24123: cx24123_pll_tune: frequency=1236500
> Apr  6 22:05:05 xrated kernel: [ 5403.138639] CX24123: cx24123_pll_writereg: pll writereg called, data=0x00100e3f
> Apr  6 22:05:05 xrated kernel: [ 5403.145421] CX24123: cx24123_pll_writereg: pll writereg called, data=0x000a0180
> Apr  6 22:05:05 xrated kernel: [ 5403.152203] CX24123: cx24123_pll_writereg: pll writereg called, data=0x00000201
> Apr  6 22:05:05 xrated kernel: [ 5403.158857] CX24123: cx24123_pll_writereg: pll writereg called, data=0x001f44c6
> Apr  6 22:05:05 xrated kernel: [ 5403.167529] CX24123: cx24123_pll_tune: pll tune VCA=1052223, band=513, pll=2049222
> Apr  6 22:05:05 xrated kernel: [ 5403.274309] CX24123: cx24123_get_frontend: 
> Apr  6 22:05:05 xrated kernel: [ 5403.275020] CX24123: cx24123_get_inversion: read inversion on
> Apr  6 22:05:08 xrated kernel: [ 5406.606664] CX24123: cx24123_get_frontend: 
> Apr  6 22:05:08 xrated kernel: [ 5406.607375] CX24123: cx24123_get_inversion: read inversion on
> Apr  6 22:05:12 xrated kernel: [ 5409.935414] CX24123: cx24123_get_frontend: 
> Apr  6 22:05:12 xrated kernel: [ 5409.936213] CX24123: cx24123_get_inversion: read inversion on
> Apr  6 22:05:13 xrated kernel: [ 5411.148546] CX24123: cx24123_get_frontend: 
> Apr  6 22:05:13 xrated kernel: [ 5411.149258] CX24123: cx24123_get_inversion: read inversion on
> Apr  6 22:05:14 xrated kernel: [ 5412.059054] CX24123: cx24123_get_frontend: 
> Apr  6 22:05:14 xrated kernel: [ 5412.059817] CX24123: cx24123_get_inversion: read inversion on
> Apr  6 22:05:14 xrated kernel: [ 5412.463575] CX24123: cx24123_get_frontend: 
> Apr  6 22:05:14 xrated kernel: [ 5412.464279] CX24123: cx24123_get_inversion: read inversion on
> Apr  6 22:05:17 xrated kernel: [ 5414.885746] CX24123: cx24123_get_frontend: 
> Apr  6 22:05:17 xrated kernel: [ 5414.886509] CX24123: cx24123_get_inversion: read inversion on
> Apr  6 22:05:18 xrated kernel: [ 5415.997814] CX24123: cx24123_get_frontend: 
> Apr  6 22:05:18 xrated kernel: [ 5415.998610] CX24123: cx24123_get_inversion: read inversion on
> Apr  6 22:05:18 xrated kernel: [ 5416.604004] CX24123: cx24123_get_frontend: 
> Apr  6 22:05:18 xrated kernel: [ 5416.604773] CX24123: cx24123_get_inversion: read inversion on
> Apr  6 22:05:19 xrated kernel: [ 5417.513528] CX24123: cx24123_get_frontend: 
> Apr  6 22:05:19 xrated kernel: [ 5417.514234] CX24123: cx24123_get_inversion: read inversion on
> Apr  6 22:05:21 xrated kernel: [ 5418.825570] CX24123: cx24123_get_frontend: 
> Apr  6 22:05:21 xrated kernel: [ 5418.826270] CX24123: cx24123_get_inversion: read inversion on
> Apr  6 22:05:21 xrated kernel: [ 5419.533488] CX24123: cx24123_get_frontend: 
> Apr  6 22:05:21 xrated kernel: [ 5419.534201] CX24123: cx24123_get_inversion: read inversion on
> Apr  6 22:05:23 xrated kernel: [ 5420.846369] CX24123: cx24123_get_frontend: 
> Apr  6 22:05:23 xrated kernel: [ 5420.847081] CX24123: cx24123_get_inversion: read inversion on
> Apr  6 22:05:23 xrated kernel: [ 5421.050152] CX24123: cx24123_get_frontend: 
> Apr  6 22:05:23 xrated kernel: [ 5421.050888] CX24123: cx24123_get_inversion: read inversion on
> Apr  6 22:05:23 xrated kernel: [ 5421.354549] CX24123: cx24123_get_frontend: 
> Apr  6 22:05:23 xrated kernel: [ 5421.355253] CX24123: cx24123_get_inversion: read inversion on
> 
> # the distortion is visible here by the repeated cx24123_get_frontend/cx24123_get_inversion
> # invocations, some visible distortions, switch to a damaged one (ZDF):
> 
> Apr  6 22:05:23 xrated kernel: [ 5421.454611] cx88[0]/2-dvb: cx8802_dvb_advise_release
> Apr  6 22:05:23 xrated kernel: [ 5421.454639] cx88[0]/2-dvb: cx8802_dvb_advise_acquire
> Apr  6 22:05:23 xrated kernel: [ 5421.455336] CX24123: cx24123_initfe: init frontend
> Apr  6 22:05:23 xrated kernel: [ 5421.492320] CX24123: cx24123_send_diseqc_msg: 
> Apr  6 22:05:23 xrated kernel: [ 5421.647452] CX24123: cx24123_diseqc_send_burst: 
> Apr  6 22:05:24 xrated kernel: [ 5421.754847] CX24123: cx24123_set_frontend: 
> Apr  6 22:05:24 xrated kernel: [ 5421.756322] CX24123: cx24123_set_inversion: inversion auto
> Apr  6 22:05:24 xrated kernel: [ 5421.758759] CX24123: cx24123_set_fec: set FEC to 3/4
> Apr  6 22:05:24 xrated kernel: [ 5421.763023] CX24123: cx24123_set_symbolrate: srate=27500000, ratio=0x003a05ca, sample_rate=60666000 sample_gain=1
> Apr  6 22:05:24 xrated kernel: [ 5421.763026] CX24123: cx24123_pll_tune: frequency=1353500
> Apr  6 22:05:24 xrated kernel: [ 5421.763027] CX24123: cx24123_pll_writereg: pll writereg called, data=0x00100e3f
> Apr  6 22:05:24 xrated kernel: [ 5421.769560] CX24123: cx24123_pll_writereg: pll writereg called, data=0x000a0180
> Apr  6 22:05:24 xrated kernel: [ 5421.775971] CX24123: cx24123_pll_writereg: pll writereg called, data=0x00000202
> Apr  6 22:05:24 xrated kernel: [ 5421.782794] CX24123: cx24123_pll_writereg: pll writereg called, data=0x001f453a
> Apr  6 22:05:24 xrated kernel: [ 5421.791368] CX24123: cx24123_pll_tune: pll tune VCA=1052223, band=514, pll=2049338
> Apr  6 22:05:24 xrated kernel: [ 5421.895674] CX24123: cx24123_get_frontend: 
> Apr  6 22:05:24 xrated kernel: [ 5421.896426] CX24123: cx24123_get_inversion: read inversion on
> Apr  6 22:05:24 xrated kernel: [ 5422.099346] CX24123: cx24123_get_frontend: 
> Apr  6 22:05:24 xrated kernel: [ 5422.100121] CX24123: cx24123_get_inversion: read inversion on
> Apr  6 22:05:24 xrated kernel: [ 5422.504649] CX24123: cx24123_get_frontend: 
> Apr  6 22:05:24 xrated kernel: [ 5422.505463] CX24123: cx24123_get_inversion: read inversion on
> Apr  6 22:05:25 xrated kernel: [ 5423.211648] CX24123: cx24123_get_frontend: 
> Apr  6 22:05:25 xrated kernel: [ 5423.212380] CX24123: cx24123_get_inversion: read inversion on
> Apr  6 22:05:25 xrated kernel: [ 5423.415355] CX24123: cx24123_get_frontend: 
> Apr  6 22:05:25 xrated kernel: [ 5423.416159] CX24123: cx24123_get_inversion: read inversion on
> Apr  6 22:05:25 xrated kernel: [ 5423.619044] CX24123: cx24123_get_frontend: 
> Apr  6 22:05:25 xrated kernel: [ 5423.619807] CX24123: cx24123_get_inversion: read inversion on
> Apr  6 22:05:26 xrated kernel: [ 5424.326841] CX24123: cx24123_get_frontend: 
> Apr  6 22:05:26 xrated kernel: [ 5424.327649] CX24123: cx24123_get_inversion: read inversion on
> Apr  6 22:05:27 xrated kernel: [ 5425.338309] CX24123: cx24123_get_frontend: 
> Apr  6 22:05:27 xrated kernel: [ 5425.339021] CX24123: cx24123_get_inversion: read inversion on
> Apr  6 22:05:28 xrated kernel: [ 5425.742663] CX24123: cx24123_get_frontend: 
> Apr  6 22:05:28 xrated kernel: [ 5425.743429] CX24123: cx24123_get_inversion: read inversion on
> Apr  6 22:05:28 xrated kernel: [ 5426.148028] CX24123: cx24123_get_frontend: 
> Apr  6 22:05:28 xrated kernel: [ 5426.148735] CX24123: cx24123_get_inversion: read inversion on
> Apr  6 22:05:28 xrated kernel: [ 5426.653281] CX24123: cx24123_get_frontend: 
> Apr  6 22:05:28 xrated kernel: [ 5426.653996] CX24123: cx24123_get_inversion: read inversion on
> Apr  6 22:05:29 xrated kernel: [ 5426.857045] CX24123: cx24123_get_frontend: 
> Apr  6 22:05:29 xrated kernel: [ 5426.858245] CX24123: cx24123_get_inversion: read inversion on
> Apr  6 22:05:29 xrated kernel: [ 5427.061556] CX24123: cx24123_get_frontend: 
> Apr  6 22:05:29 xrated kernel: [ 5427.062310] CX24123: cx24123_get_inversion: read inversion on
> Apr  6 22:05:29 xrated kernel: [ 5427.365074] CX24123: cx24123_get_frontend: 
> Apr  6 22:05:29 xrated kernel: [ 5427.365795] CX24123: cx24123_get_inversion: read inversion on
> Apr  6 22:05:30 xrated kernel: [ 5427.870355] CX24123: cx24123_get_frontend: 
> Apr  6 22:05:30 xrated kernel: [ 5427.871059] CX24123: cx24123_get_inversion: read inversion on
> Apr  6 22:05:31 xrated kernel: [ 5428.678088] CX24123: cx24123_get_frontend: 
> Apr  6 22:05:31 xrated kernel: [ 5428.678827] CX24123: cx24123_get_inversion: read inversion on
> Apr  6 22:05:31 xrated kernel: [ 5428.982453] CX24123: cx24123_get_frontend: 
> Apr  6 22:05:31 xrated kernel: [ 5428.983162] CX24123: cx24123_get_inversion: read inversion on
> Apr  6 22:05:31 xrated kernel: [ 5429.387082] CX24123: cx24123_get_frontend: 
> Apr  6 22:05:31 xrated kernel: [ 5429.387844] CX24123: cx24123_get_inversion: read inversion on
> Apr  6 22:05:32 xrated kernel: [ 5429.792367] CX24123: cx24123_get_frontend: 
> Apr  6 22:05:32 xrated kernel: [ 5429.793081] CX24123: cx24123_get_inversion: read inversion on
> Apr  6 22:05:32 xrated kernel: [ 5430.097632] CX24123: cx24123_get_frontend: 
> Apr  6 22:05:32 xrated kernel: [ 5430.098404] CX24123: cx24123_get_inversion: read inversion on
> Apr  6 22:05:33 xrated kernel: [ 5430.804750] CX24123: cx24123_get_frontend: 
> Apr  6 22:05:33 xrated kernel: [ 5430.805466] CX24123: cx24123_get_inversion: read inversion on
> Apr  6 22:05:33 xrated kernel: [ 5431.210089] CX24123: cx24123_get_frontend: 
> Apr  6 22:05:33 xrated kernel: [ 5431.210855] CX24123: cx24123_get_inversion: read inversion on
> 
> # the about 2-3 cx24123_get_frontend/cx24123_get_inversion invocations per 
> # second document the heavy distortions here, now 3sat, a little less 
> # distortion, compared to above
> 
> Apr  6 22:06:04 xrated kernel: [ 5462.126946] cx88[0]/2-dvb: cx8802_dvb_advise_release
> Apr  6 22:06:04 xrated kernel: [ 5462.126975] cx88[0]/2-dvb: cx8802_dvb_advise_acquire
> Apr  6 22:06:04 xrated kernel: [ 5462.142941] CX24123: cx24123_send_diseqc_msg: 
> Apr  6 22:06:04 xrated kernel: [ 5462.282574] CX24123: cx24123_initfe: init frontend
> Apr  6 22:06:04 xrated kernel: [ 5462.306488] CX24123: cx24123_diseqc_send_burst: 
> Apr  6 22:06:04 xrated kernel: [ 5462.413161] CX24123: cx24123_set_frontend: 
> Apr  6 22:06:04 xrated kernel: [ 5462.414665] CX24123: cx24123_set_inversion: inversion auto
> Apr  6 22:06:04 xrated kernel: [ 5462.417157] CX24123: cx24123_set_fec: set FEC to 5/6
> Apr  6 22:06:04 xrated kernel: [ 5462.421438] CX24123: cx24123_set_symbolrate: srate=22000000, ratio=0x0037b3a3, sample_rate=50555000 sample_gain=1
> Apr  6 22:06:04 xrated kernel: [ 5462.421445] CX24123: cx24123_pll_tune: frequency=1944750
> Apr  6 22:06:04 xrated kernel: [ 5462.421449] CX24123: cx24123_pll_writereg: pll writereg called, data=0x00100e3f
> Apr  6 22:06:04 xrated kernel: [ 5462.427984] CX24123: cx24123_pll_writereg: pll writereg called, data=0x000a0180
> Apr  6 22:06:04 xrated kernel: [ 5462.434758] CX24123: cx24123_pll_writereg: pll writereg called, data=0x00000220
> Apr  6 22:06:04 xrated kernel: [ 5462.441438] CX24123: cx24123_pll_writereg: pll writereg called, data=0x001f4783
> Apr  6 22:06:04 xrated kernel: [ 5462.450134] CX24123: cx24123_pll_tune: pll tune VCA=1052223, band=544, pll=2049923
> Apr  6 22:06:05 xrated kernel: [ 5462.655630] CX24123: cx24123_get_frontend: 
> Apr  6 22:06:05 xrated kernel: [ 5462.656353] CX24123: cx24123_get_inversion: read inversion on
> Apr  6 22:06:06 xrated kernel: [ 5464.572700] CX24123: cx24123_get_frontend: 
> Apr  6 22:06:06 xrated kernel: [ 5464.573454] CX24123: cx24123_get_inversion: read inversion on
> Apr  6 22:06:07 xrated kernel: [ 5465.482194] CX24123: cx24123_get_frontend: 
> Apr  6 22:06:07 xrated kernel: [ 5465.482915] CX24123: cx24123_get_inversion: read inversion on
> Apr  6 22:06:09 xrated kernel: [ 5466.894964] CX24123: cx24123_get_frontend: 
> Apr  6 22:06:09 xrated kernel: [ 5466.895661] CX24123: cx24123_get_inversion: read inversion on
> Apr  6 22:06:09 xrated kernel: [ 5467.602031] CX24123: cx24123_get_frontend: 
> Apr  6 22:06:09 xrated kernel: [ 5467.602777] CX24123: cx24123_get_inversion: read inversion on
> Apr  6 22:06:12 xrated kernel: [ 5470.427373] CX24123: cx24123_get_frontend: 
> Apr  6 22:06:12 xrated kernel: [ 5470.428140] CX24123: cx24123_get_inversion: read inversion on
> Apr  6 22:06:13 xrated kernel: [ 5470.831789] CX24123: cx24123_get_frontend: 
> Apr  6 22:06:13 xrated kernel: [ 5470.832564] CX24123: cx24123_get_inversion: read inversion on
> Apr  6 22:06:14 xrated kernel: [ 5471.740377] CX24123: cx24123_get_frontend: 
> Apr  6 22:06:14 xrated kernel: [ 5471.741140] CX24123: cx24123_get_inversion: read inversion on
> Apr  6 22:06:14 xrated kernel: [ 5472.245570] CX24123: cx24123_get_frontend: 
> Apr  6 22:06:14 xrated kernel: [ 5472.246308] CX24123: cx24123_get_inversion: read inversion on
> Apr  6 22:06:15 xrated kernel: [ 5472.952418] CX24123: cx24123_get_frontend: 
> Apr  6 22:06:15 xrated kernel: [ 5472.953120] CX24123: cx24123_get_inversion: read inversion on
> Apr  6 22:06:16 xrated kernel: [ 5474.566970] CX24123: cx24123_get_frontend: 
> Apr  6 22:06:16 xrated kernel: [ 5474.567703] CX24123: cx24123_get_inversion: read inversion on
> Apr  6 22:06:17 xrated kernel: [ 5475.174042] CX24123: cx24123_get_frontend: 
> Apr  6 22:06:17 xrated kernel: [ 5475.174853] CX24123: cx24123_get_inversion: read inversion on
> Apr  6 22:06:19 xrated kernel: [ 5477.495375] CX24123: cx24123_get_frontend: 
> Apr  6 22:06:19 xrated kernel: [ 5477.496075] CX24123: cx24123_get_inversion: read inversion on
> Apr  6 22:06:21 xrated kernel: [ 5478.605643] CX24123: cx24123_get_frontend: 
> Apr  6 22:06:21 xrated kernel: [ 5478.606343] CX24123: cx24123_get_inversion: read inversion on
> Apr  6 22:06:21 xrated kernel: [ 5479.010892] CX24123: cx24123_get_frontend: 
> Apr  6 22:06:21 xrated kernel: [ 5479.011598] CX24123: cx24123_get_inversion: read inversion on
> 
> # now pro7, even without a stable "picture"
> 
> Apr  6 22:06:55 xrated kernel: [ 5513.057158] cx88[0]/2-dvb: cx8802_dvb_advise_release
> Apr  6 22:06:55 xrated kernel: [ 5513.057189] cx88[0]/2-dvb: cx8802_dvb_advise_acquire
> Apr  6 22:06:55 xrated kernel: [ 5513.073138] CX24123: cx24123_send_diseqc_msg: 
> Apr  6 22:06:55 xrated kernel: [ 5513.211377] CX24123: cx24123_initfe: init frontend
> Apr  6 22:06:55 xrated kernel: [ 5513.235097] CX24123: cx24123_diseqc_send_burst: 
> Apr  6 22:06:55 xrated kernel: [ 5513.342913] CX24123: cx24123_set_frontend: 
> Apr  6 22:06:55 xrated kernel: [ 5513.344382] CX24123: cx24123_set_inversion: inversion auto
> Apr  6 22:06:55 xrated kernel: [ 5513.346830] CX24123: cx24123_set_fec: set FEC to 5/6
> Apr  6 22:06:55 xrated kernel: [ 5513.351155] CX24123: cx24123_set_symbolrate: srate=22000000, ratio=0x0037b3a3, sample_rate=50555000 sample_gain=1
> Apr  6 22:06:55 xrated kernel: [ 5513.351162] CX24123: cx24123_pll_tune: frequency=1944750
> Apr  6 22:06:55 xrated kernel: [ 5513.351166] CX24123: cx24123_pll_writereg: pll writereg called, data=0x00100e3f
> Apr  6 22:06:55 xrated kernel: [ 5513.359274] CX24123: cx24123_pll_writereg: pll writereg called, data=0x000a0180
> Apr  6 22:06:55 xrated kernel: [ 5513.369254] CX24123: cx24123_pll_writereg: pll writereg called, data=0x00000220
> Apr  6 22:06:55 xrated kernel: [ 5513.375809] CX24123: cx24123_pll_writereg: pll writereg called, data=0x001f4783
> Apr  6 22:06:55 xrated kernel: [ 5513.384081] CX24123: cx24123_pll_tune: pll tune VCA=1052223, band=544, pll=2049923
> Apr  6 22:06:56 xrated kernel: [ 5513.589444] CX24123: cx24123_get_frontend: 
> Apr  6 22:06:56 xrated kernel: [ 5513.590141] CX24123: cx24123_get_inversion: read inversion on
> Apr  6 22:06:58 xrated kernel: [ 5515.607237] CX24123: cx24123_get_frontend: 
> Apr  6 22:06:58 xrated kernel: [ 5515.607998] CX24123: cx24123_get_inversion: read inversion on
> Apr  6 22:06:59 xrated kernel: [ 5516.717685] CX24123: cx24123_get_frontend: 
> Apr  6 22:06:59 xrated kernel: [ 5516.718438] CX24123: cx24123_get_inversion: read inversion on
> Apr  6 22:06:59 xrated kernel: [ 5517.425431] CX24123: cx24123_get_frontend: 
> Apr  6 22:06:59 xrated kernel: [ 5517.426190] CX24123: cx24123_get_inversion: read inversion on
> Apr  6 22:07:01 xrated kernel: [ 5519.343437] CX24123: cx24123_get_frontend: 
> Apr  6 22:07:01 xrated kernel: [ 5519.344197] CX24123: cx24123_get_inversion: read inversion on
> Apr  6 22:07:04 xrated kernel: [ 5522.068048] CX24123: cx24123_get_frontend: 
> Apr  6 22:07:04 xrated kernel: [ 5522.068760] CX24123: cx24123_get_inversion: read inversion on
> Apr  6 22:07:04 xrated kernel: [ 5522.270712] CX24123: cx24123_get_frontend: 
> Apr  6 22:07:04 xrated kernel: [ 5522.271420] CX24123: cx24123_get_inversion: read inversion on
> Apr  6 22:07:04 xrated kernel: [ 5522.473496] CX24123: cx24123_get_frontend: 
> Apr  6 22:07:04 xrated kernel: [ 5522.474195] CX24123: cx24123_get_inversion: read inversion on
> Apr  6 22:07:06 xrated kernel: [ 5523.887241] CX24123: cx24123_get_frontend: 
> Apr  6 22:07:06 xrated kernel: [ 5523.888018] CX24123: cx24123_get_inversion: read inversion on
> Apr  6 22:07:06 xrated kernel: [ 5524.292603] CX24123: cx24123_get_frontend: 
> Apr  6 22:07:06 xrated kernel: [ 5524.293306] CX24123: cx24123_get_inversion: read inversion on
> Apr  6 22:07:07 xrated kernel: [ 5524.899625] CX24123: cx24123_get_frontend: 
> Apr  6 22:07:07 xrated kernel: [ 5524.900335] CX24123: cx24123_get_inversion: read inversion on
> Apr  6 22:07:07 xrated kernel: [ 5525.102312] CX24123: cx24123_get_frontend: 
> Apr  6 22:07:07 xrated kernel: [ 5525.103013] CX24123: cx24123_get_inversion: read inversion on
> Apr  6 22:07:09 xrated kernel: [ 5527.422783] CX24123: cx24123_get_frontend: 
> Apr  6 22:07:09 xrated kernel: [ 5527.423543] CX24123: cx24123_get_inversion: read inversion on
> Apr  6 22:07:10 xrated kernel: [ 5528.332169] CX24123: cx24123_get_frontend: 
> Apr  6 22:07:10 xrated kernel: [ 5528.332878] CX24123: cx24123_get_inversion: read inversion on
> 
> Does this help you in some way?
> 
> Thanks,
> Pete
Hans-Peter Jansen April 7, 2013, 7:10 p.m. UTC | #6
On Sonntag, 7. April 2013 14:03:29 Mauro Carvalho Chehab wrote:
> Em Sat, 06 Apr 2013 22:20:19 +0200
> 
> Hans-Peter Jansen <hpj@urpla.net> escreveu:
> > On Samstag, 6. April 2013 16:26:32 Mauro Carvalho Chehab wrote:
> > > Em Sat, 06 Apr 2013 19:26:23 +0200
> > > 
> > > Hans-Peter Jansen <hpj@urpla.net> escreveu:
> > > > On Samstag, 6. April 2013 10:37:52 you wrote:
> > > > > Em Sat, 06 Apr 2013 12:20:41 +0200
> > > > > 
> > > > > Hans-Peter Jansen <hpj@urpla.net> escreveu:
> > > > > > Dear Mauro,
> > > > > > 
> > > > > > first of all, thank you for providing a proper fix that quickly.
> > > > > > 
> > > > > > On Freitag, 5. April 2013 13:18:54 Mauro Carvalho Chehab wrote:
> > > > > > > Em Fri, 05 Apr 2013 13:25:01 +0100
> > > > > > > 
> > > > > > > Adam Sampson <ats@offog.org> escreveu:
> > > > > > > > Hans-Peter Jansen <hpj@urpla.net> writes:
> > > > > > > > > In one of my systems, I've used a
> > > > > > > > > Hauppauge Nova-S-Plus DVB-S card successfully, but after a
> > > > > > > > > system
> > > > > > > > > upgrade to openSUSE 12.2, it cannot tune in all but one
> > > > > > > > > channel.
> > > > > > > > 
> > > > > > > > [...]
> > > > > > > > 
> > > > > > > > > initial transponder 12551500 V 22000000 5
> > > > > > > > > 
> > > > > > > > >>>> tune to: 12551:v:0:22000
> > > > > > > > > 
> > > > > > > > > DVB-S IF freq is 1951500
> > > > > > > > > WARNING: >>> tuning failed!!!
> > > > > > > > 
> > > > > > > > I suspect you might be running into this problem:
> > > > > > > >   https://bugzilla.kernel.org/show_bug.cgi?id=9476
> > > > > > > > 
> > > > > > > > The bug title is misleading -- the problem is actually that
> > > > > > > > the
> > > > > > > > card
> > > > > > > > doesn't get configured properly to send the 22kHz tone for
> > > > > > > > high-band
> > > > > > > > transponders, like the one in your error above.
> > > > > > > > 
> > > > > > > > Applying this patch makes my Nova-S-Plus work with recent 
kernels:
> > > > > > > >   https://bugzilla.kernel.org/attachment.cgi?id=21905&action=e
> > > > > > > >   dit
> > > > > > > 
> > > > > > > Applying that patch would break support for all other devices
> > > > > > > with
> > > > > > > isl6421.
> > > > > > > 
> > > > > > > Could you please test the enclosed patch? It allows the bridge
> > > > > > > driver to tell if the set_tone should be overrided by isl6421 or
> > > > > > > not. The code only changes it for Hauppauge model 92001.
> > > > > > 
> > > > > > Unfortunately, it appears to be more problematic. While the fix
> > > > > > allows
> > > > > > to
> > > > > > scan the channel list, it is not complete (in another setup at the
> > > > > > same
> > > > > > dish (via multiswitch), vdrs channel list has about 1600 channels,
> > > > > > while
> > > > > > scan does collect 1138 only.
> > > > > > 
> > > > > > More importantly, a single channel (arte) is received with 0 BER
> > > > > > and a
> > > > > > S/N
> > > > > > ratio of 99%, while all other channels produce more BER, eg. "Das
> > > > > > Erste"
> > > > > > with about 320 BER (SNR 99%, a few artifacts/distortions
> > > > > > occasionally),
> > > > > > "ZDF" about 6400 BER, (SNR drops down to 75%, constant
> > > > > > distortions,
> > > > > > and
> > > > > > many channels doesn't produce anything beyond distortions with a
> > > > > > video
> > > > > > stream below 0.3 MBit/s and about 160000 BER. (measured using vdr
> > > > > > femon
> > > > > > plugin v. 1.6.7)
> > > > > > 
> > > > > > So, still no cigar, sorry.
> > > > > > 
> > > > > > I've tested both patches, just to be sure, with the same result. I
> > > > > > had
> > > > > > to
> > > > > > relocate and refresh yours in order to apply it to 3.4, since the
> > > > > > paths
> > > > > > changed, result attached.
> > > > > > 
> > > > > > > If it works, please answer this email with a:
> > > > > > > 	Tested-by: your name <your@email>
> > > > > > > 
> > > > > > > For me to add it when merging the patch upstream.
> > > > > > > 
> > > > > > > Regards,
> > > > > > > Mauro.
> > > > > > 
> > > > > > It looks like the idea is sound, but the logic is still missing
> > > > > > something
> > > > > > that prevents it from tuning most channels properly.
> > > > > 
> > > > > Well, what it is expected from this patch is to be able of seeing
> > > > > channels with H and V polarization. Nothing more, nothing less.
> > > > 
> > > > Okay. Yes, I do.
> > > > 
> > > > > From what I understood, you're now seeing more than just one
> > > > > channel,
> > > > > so, it is likely part of the fix, right?
> > > > 
> > > > Yes.
> > > 
> > > Ok, I'll likely be merging it by Monday.
> > 
> > Since it fixes the Nova-S-Plus 92001 model for some users, that's great.
> > 
> > > > > If are there any other issues, then it it would require other fixes,
> > > > > likely at cx24123 frontend. My guess is that it could be due to some
> > > > > precision loss maybe at cx24123_set_symbolrate(). It helps if you
> > > > > could
> > > > > check if the channels that are more problematic have a higher or a
> > > > > lower bit rate. It probably makes sense to change the code there to
> > > > > use u64 and asm/div64.h, in order to allow the calculus to have more
> > > > > precision. I'll try to write such patch.
> > > > 
> > > > ..that I'm testing right now. Build is on the way.
> > > > 
> > > > You wrote and published the fix in less then 8 minutes. Wow,
> > > > unbelievable.
> > > 
> > > Well, the patch is really trivial. If it works or not, only the tests
> > > can
> > > tell ;) I have one Nova-S model here, but unfortunately I don't have a
> > > satellite dish anymore, so I can't test.
> > 
> > That's a pity. Bad news: no changes. I double checked, that the new
> > cx24123
> > patch was applied. Unfortunately it doesn't help. The behavior is
> > unchanged
> > from what I can see.
> 
> Ok. As you're getting signals with high symbol rate, it were less likely to
> have troubles there.
> 
> That also means that the patch didn't introduce any bugs, so I'll likely
> apply it, as this way is better than before.
> 
> As you said that you weren't experiencing any issue with a previous kernel,
> I suggest you to do a diff between cx24123 on the version where everything
> is OK with the current one, and post here. We can then try to detect where
> the issue was introduced.

Hmm, that was an 2.6.2* kernel, IIRC. Only a bisection would make sense. 
Unfortunately, I cannot spend the time for a bisection today, and tomorrow I 
get an eagerly awaited Hauppauge WinTV-HVR400 in order to evaluate vdr 2.0 
with HD eventually, hence after finishing day work, I'm not sure, if I'm able 
to bridle myself until after the boring bisection. Most likely not.. ;-)

Thanks again for your GREAT support, Mauro. Using Linux and Open Source for 
about 18 years, your engagement is exemplary. Given, that the sub system, you 
maintain is such an unforgiving mine field¹ just scales up that impression.

Cheers,
Pete

¹) I just follow this group every now and then..
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Mauro Carvalho Chehab April 8, 2013, 2:39 a.m. UTC | #7
Em Sun, 07 Apr 2013 21:10:21 +0200
Hans-Peter Jansen <hpj@urpla.net> escreveu:

> On Sonntag, 7. April 2013 14:03:29 Mauro Carvalho Chehab wrote:
> > Em Sat, 06 Apr 2013 22:20:19 +0200
> > 
> > Hans-Peter Jansen <hpj@urpla.net> escreveu:
> > > On Samstag, 6. April 2013 16:26:32 Mauro Carvalho Chehab wrote:
> > > > Em Sat, 06 Apr 2013 19:26:23 +0200
> > > > 
> > > > Hans-Peter Jansen <hpj@urpla.net> escreveu:
> > > > > On Samstag, 6. April 2013 10:37:52 you wrote:
> > > > > > Em Sat, 06 Apr 2013 12:20:41 +0200
> > > > > > 
> > > > > > Hans-Peter Jansen <hpj@urpla.net> escreveu:
> > > > > > > Dear Mauro,
> > > > > > > 
> > > > > > > first of all, thank you for providing a proper fix that quickly.
> > > > > > > 
> > > > > > > On Freitag, 5. April 2013 13:18:54 Mauro Carvalho Chehab wrote:
> > > > > > > > Em Fri, 05 Apr 2013 13:25:01 +0100
> > > > > > > > 
> > > > > > > > Adam Sampson <ats@offog.org> escreveu:
> > > > > > > > > Hans-Peter Jansen <hpj@urpla.net> writes:
> > > > > > > > > > In one of my systems, I've used a
> > > > > > > > > > Hauppauge Nova-S-Plus DVB-S card successfully, but after a
> > > > > > > > > > system
> > > > > > > > > > upgrade to openSUSE 12.2, it cannot tune in all but one
> > > > > > > > > > channel.
> > > > > > > > > 
> > > > > > > > > [...]
> > > > > > > > > 
> > > > > > > > > > initial transponder 12551500 V 22000000 5
> > > > > > > > > > 
> > > > > > > > > >>>> tune to: 12551:v:0:22000
> > > > > > > > > > 
> > > > > > > > > > DVB-S IF freq is 1951500
> > > > > > > > > > WARNING: >>> tuning failed!!!
> > > > > > > > > 
> > > > > > > > > I suspect you might be running into this problem:
> > > > > > > > >   https://bugzilla.kernel.org/show_bug.cgi?id=9476
> > > > > > > > > 
> > > > > > > > > The bug title is misleading -- the problem is actually that
> > > > > > > > > the
> > > > > > > > > card
> > > > > > > > > doesn't get configured properly to send the 22kHz tone for
> > > > > > > > > high-band
> > > > > > > > > transponders, like the one in your error above.
> > > > > > > > > 
> > > > > > > > > Applying this patch makes my Nova-S-Plus work with recent 
> kernels:
> > > > > > > > >   https://bugzilla.kernel.org/attachment.cgi?id=21905&action=e
> > > > > > > > >   dit
> > > > > > > > 
> > > > > > > > Applying that patch would break support for all other devices
> > > > > > > > with
> > > > > > > > isl6421.
> > > > > > > > 
> > > > > > > > Could you please test the enclosed patch? It allows the bridge
> > > > > > > > driver to tell if the set_tone should be overrided by isl6421 or
> > > > > > > > not. The code only changes it for Hauppauge model 92001.
> > > > > > > 
> > > > > > > Unfortunately, it appears to be more problematic. While the fix
> > > > > > > allows
> > > > > > > to
> > > > > > > scan the channel list, it is not complete (in another setup at the
> > > > > > > same
> > > > > > > dish (via multiswitch), vdrs channel list has about 1600 channels,
> > > > > > > while
> > > > > > > scan does collect 1138 only.
> > > > > > > 
> > > > > > > More importantly, a single channel (arte) is received with 0 BER
> > > > > > > and a
> > > > > > > S/N
> > > > > > > ratio of 99%, while all other channels produce more BER, eg. "Das
> > > > > > > Erste"
> > > > > > > with about 320 BER (SNR 99%, a few artifacts/distortions
> > > > > > > occasionally),
> > > > > > > "ZDF" about 6400 BER, (SNR drops down to 75%, constant
> > > > > > > distortions,
> > > > > > > and
> > > > > > > many channels doesn't produce anything beyond distortions with a
> > > > > > > video
> > > > > > > stream below 0.3 MBit/s and about 160000 BER. (measured using vdr
> > > > > > > femon
> > > > > > > plugin v. 1.6.7)
> > > > > > > 
> > > > > > > So, still no cigar, sorry.
> > > > > > > 
> > > > > > > I've tested both patches, just to be sure, with the same result. I
> > > > > > > had
> > > > > > > to
> > > > > > > relocate and refresh yours in order to apply it to 3.4, since the
> > > > > > > paths
> > > > > > > changed, result attached.
> > > > > > > 
> > > > > > > > If it works, please answer this email with a:
> > > > > > > > 	Tested-by: your name <your@email>
> > > > > > > > 
> > > > > > > > For me to add it when merging the patch upstream.
> > > > > > > > 
> > > > > > > > Regards,
> > > > > > > > Mauro.
> > > > > > > 
> > > > > > > It looks like the idea is sound, but the logic is still missing
> > > > > > > something
> > > > > > > that prevents it from tuning most channels properly.
> > > > > > 
> > > > > > Well, what it is expected from this patch is to be able of seeing
> > > > > > channels with H and V polarization. Nothing more, nothing less.
> > > > > 
> > > > > Okay. Yes, I do.
> > > > > 
> > > > > > From what I understood, you're now seeing more than just one
> > > > > > channel,
> > > > > > so, it is likely part of the fix, right?
> > > > > 
> > > > > Yes.
> > > > 
> > > > Ok, I'll likely be merging it by Monday.
> > > 
> > > Since it fixes the Nova-S-Plus 92001 model for some users, that's great.
> > > 
> > > > > > If are there any other issues, then it it would require other fixes,
> > > > > > likely at cx24123 frontend. My guess is that it could be due to some
> > > > > > precision loss maybe at cx24123_set_symbolrate(). It helps if you
> > > > > > could
> > > > > > check if the channels that are more problematic have a higher or a
> > > > > > lower bit rate. It probably makes sense to change the code there to
> > > > > > use u64 and asm/div64.h, in order to allow the calculus to have more
> > > > > > precision. I'll try to write such patch.
> > > > > 
> > > > > ..that I'm testing right now. Build is on the way.
> > > > > 
> > > > > You wrote and published the fix in less then 8 minutes. Wow,
> > > > > unbelievable.
> > > > 
> > > > Well, the patch is really trivial. If it works or not, only the tests
> > > > can
> > > > tell ;) I have one Nova-S model here, but unfortunately I don't have a
> > > > satellite dish anymore, so I can't test.
> > > 
> > > That's a pity. Bad news: no changes. I double checked, that the new
> > > cx24123
> > > patch was applied. Unfortunately it doesn't help. The behavior is
> > > unchanged
> > > from what I can see.
> > 
> > Ok. As you're getting signals with high symbol rate, it were less likely to
> > have troubles there.
> > 
> > That also means that the patch didn't introduce any bugs, so I'll likely
> > apply it, as this way is better than before.
> > 
> > As you said that you weren't experiencing any issue with a previous kernel,
> > I suggest you to do a diff between cx24123 on the version where everything
> > is OK with the current one, and post here. We can then try to detect where
> > the issue was introduced.
> 
> Hmm, that was an 2.6.2* kernel, IIRC. Only a bisection would make sense. 
> Unfortunately, I cannot spend the time for a bisection today, and tomorrow I 
> get an eagerly awaited Hauppauge WinTV-HVR400 in order to evaluate vdr 2.0 
> with HD eventually, hence after finishing day work, I'm not sure, if I'm able 
> to bridle myself until after the boring bisection. Most likely not.. ;-)

Yeah, bisecting from 2.6.2* could be really boring. As this driver didn't change
that much, perhaps you could speed it up by manually bisecting on the changes
that happened on cx24123 on that time.

Anyway, since kernel 2.6.12, there weren't many changes there:

830e4b5 [media] dvb-frontends: get rid of some "always false" warnings
9a0bf52 [media] move the dvb/frontends to drivers/media/dvb-frontends
7581e61 [media] dvb: Remove ops->info.type from frontends
7c61d80 [media] dvb: don't require a parameter for get_frontend
7e07222 [media] dvb-core: Don't pass DVBv3 parameters on tune() fops
a73efc0 [media] cx23123: convert set_fontend to use DVBv5 parameters
31b4f32 [media] cx23123: remove an unused argument from cx24123_pll_writereg()
a689e36 [media] dvb-core: add support for a DVBv5 get_frontend() callback
bc9cd27 [media] Rename set_frontend fops to set_frontend_legacy
14d24d1 [media] tuners: remove dvb_frontend_parameters from set_params()
25985ed Fix common misspellings
a90f933 [media] i2c: Stop using I2C_CLASS_TV_DIGITAL
1ebcad7 V4L/DVB (12197): Remove unnecessary semicolons
8420fa7 V4L/DVB (10662): remove redundant memset after kzalloc
93504ab V4L/DVB (9260): cx24123: Checkpatch compliance
1d43401 V4L/DVB (8837): dvb: fix I2C adapters name size
6d89761 V4L/DVB (8805): Steven Toth email address change
ca06fa7 V4L/DVB (7470): CX24123: preparing support for CX24113 tuner
9c12224 V4L/DVB (6079): Cleanup: remove linux/moduleparam.h from drivers/media files
3ea9661 V4L/DVB (5840): fix dst and cx24123: tune() callback changed signess for delay
0496daa V4L/DVB (5202): DVB: Use ARRAY_SIZE macro when appropriate
9b5a4a6 V4L/DVB (4699): CX24109 patch to eliminate the weird mis-tunings
ef76856 V4L/DVB (4479): LNB voltage control was inverted for the benefit of geniatech cards on Kworld
d93f886 V4L/DVB (4477): Improve hardware algorithm by setting the appropriate registers
174ff21 V4L/DVB (4435): HW algo
18c053b V4L/DVB (4434): Change BER config
d12a9b9 V4L/DVB (4433): Soft decision threshold
ccd214b V4L/DVB (4284): Cx24123: fix set_voltage function according to the specs
dea7486 V4L/DVB (4028): Change dvb_frontend_ops to be a real field instead of a pointer field inside dvb_frontend
cd20ca9 V4L/DVB (4012): Fix cx24123 diseqc
20b1456 V4L/DVB (3869): Convert cx24123 to refactored tuner code
70047f9 V4L/DVB (3804): Tweak bandselect setup fox cx24123
0e4558a V4L/DVB (3803): Various correctness fixes to tuning.
dce1dfc V4L/DVB (3797): Always wait for diseqc queue to become ready before transmitting a diseqc message
caf970e V4L/DVB (3796): Add several debug messages to cx24123 code
a74b51f V4L/DVB (3795): Fix for CX24123 & low symbol rates
0144f314 V4L/DVB (3130): cx24123: cleanup timout handling
1c956a3 DVB (2451): Add support for KWorld DVB-S 100, based on the same chips as Hauppauge
e3b152b DVB (2446): Minor cleanups.
b79cb65 DVB (2445): Added demodulator driver for Nova-S-Plus and Nova-SE2 DVB-S support.

If it used to work with kernel 2.6.18, and broke at 2.6.2x, my
educated guess is that the regression happened between those 
patches (including them):

$ git describe ca06fa7
v2.6.25-3788-gca06fa7

$ git describe 20b1456
v2.6.17-2503-g20b1456

> Thanks again for your GREAT support, Mauro. Using Linux and Open Source for 
> about 18 years, your engagement is exemplary. Given, that the sub system, you 
> maintain is such an unforgiving mine field¹ just scales up that impression.

Thanks!
> 
> Cheers,
> Pete
> 
> ¹) I just follow this group every now and then..
diff mbox

Patch

From:	Mauro Carvalho Chehab <mchehab@redhat.com>
Subject: [PATCH] [media] cx88: kernel bz#9476: Fix tone setting for Nova-S+ model 92001
References: https://bugzilla.kernel.org/show_bug.cgi?id=9476
Patch-mainline: pending

Hauppauge Nova-S-Plus DVB-S model 92001 does not lock on horizontal
polarisation. According with the info provided at the BZ, model
92002 does.

The difference is that, on model 92001, the tone select is done via
isl6421, while, on other devices, this is done via cx24123 code.

This patch adds a way to override the demod's set_tone at isl6421
driver. In order to avoid regressions, the override is enabled
only for cx88 Nova S plus model 92001. For all other models and
devices, the set_tone is provided by the demod driver.

Patch originally proposed at bz@9476[1] by Michel Meyers and
John Donoghue but applying the original patch would break support
for all other devices based on isl6421.

[1] https://bugzilla.kernel.org/show_bug.cgi?id=9476

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Tested-by: Hans-Peter Jansen <hpj@urpla.net>

---
 drivers/media/dvb/b2c2/flexcop-fe-tuner.c |    4 ++--
 drivers/media/dvb/frontends/isl6421.c     |   28 +++++++++++++++++++++++++++-
 drivers/media/dvb/frontends/isl6421.h     |    4 ++--
 drivers/media/video/cx88/cx88-cards.c     |    1 +
 drivers/media/video/cx88/cx88-dvb.c       |   16 ++++++++++++----
 drivers/media/video/cx88/cx88.h           |    1 +
 drivers/media/video/saa7134/saa7134-dvb.c |    8 +++++---
 7 files changed, 50 insertions(+), 12 deletions(-)

--- a/drivers/media/dvb/b2c2/flexcop-fe-tuner.c
+++ b/drivers/media/dvb/b2c2/flexcop-fe-tuner.c
@@ -325,7 +325,7 @@  static int skystar2_rev27_attach(struct
 	/* enable no_base_addr - no repeated start when reading */
 	fc->fc_i2c_adap[2].no_base_addr = 1;
 	if (!dvb_attach(isl6421_attach, fc->fe, &fc->fc_i2c_adap[2].i2c_adap,
-			0x08, 1, 1)) {
+			0x08, 1, 1, false)) {
 		err("ISL6421 could NOT be attached");
 		goto fail_isl;
 	}
@@ -391,7 +391,7 @@  static int skystar2_rev28_attach(struct
 
 	fc->fc_i2c_adap[2].no_base_addr = 1;
 	if (!dvb_attach(isl6421_attach, fc->fe, &fc->fc_i2c_adap[2].i2c_adap,
-			0x08, 0, 0)) {
+			0x08, 0, 0, false)) {
 		err("ISL6421 could NOT be attached");
 		fc->fc_i2c_adap[2].no_base_addr = 0;
 		return 0;
--- a/drivers/media/dvb/frontends/isl6421.c
+++ b/drivers/media/dvb/frontends/isl6421.c
@@ -89,6 +89,30 @@  static int isl6421_enable_high_lnb_volta
 	return (i2c_transfer(isl6421->i2c, &msg, 1) == 1) ? 0 : -EIO;
 }
 
+static int isl6421_set_tone(struct dvb_frontend* fe, fe_sec_tone_mode_t tone)
+{
+	struct isl6421 *isl6421 = (struct isl6421 *) fe->sec_priv;
+	struct i2c_msg msg = { .addr = isl6421->i2c_addr, .flags = 0,
+			       .buf = &isl6421->config,
+			       .len = sizeof(isl6421->config) };
+
+	switch (tone) {
+	case SEC_TONE_ON:
+		isl6421->config |= ISL6421_ENT1;
+		break;
+	case SEC_TONE_OFF:
+		isl6421->config &= ~ISL6421_ENT1;
+		break;
+	default:
+		return -EINVAL;
+	}
+
+	isl6421->config |= isl6421->override_or;
+	isl6421->config &= isl6421->override_and;
+
+	return (i2c_transfer(isl6421->i2c, &msg, 1) == 1) ? 0 : -EIO;
+}
+
 static void isl6421_release(struct dvb_frontend *fe)
 {
 	/* power off */
@@ -100,7 +124,7 @@  static void isl6421_release(struct dvb_f
 }
 
 struct dvb_frontend *isl6421_attach(struct dvb_frontend *fe, struct i2c_adapter *i2c, u8 i2c_addr,
-		   u8 override_set, u8 override_clear)
+		   u8 override_set, u8 override_clear, bool override_tone)
 {
 	struct isl6421 *isl6421 = kmalloc(sizeof(struct isl6421), GFP_KERNEL);
 	if (!isl6421)
@@ -131,6 +155,8 @@  struct dvb_frontend *isl6421_attach(stru
 	/* override frontend ops */
 	fe->ops.set_voltage = isl6421_set_voltage;
 	fe->ops.enable_high_lnb_voltage = isl6421_enable_high_lnb_voltage;
+	if (override_tone)
+		fe->ops.set_tone = isl6421_set_tone;
 
 	return fe;
 }
--- a/drivers/media/dvb/frontends/isl6421.h
+++ b/drivers/media/dvb/frontends/isl6421.h
@@ -42,10 +42,10 @@ 
 #if defined(CONFIG_DVB_ISL6421) || (defined(CONFIG_DVB_ISL6421_MODULE) && defined(MODULE))
 /* override_set and override_clear control which system register bits (above) to always set & clear */
 extern struct dvb_frontend *isl6421_attach(struct dvb_frontend *fe, struct i2c_adapter *i2c, u8 i2c_addr,
-			  u8 override_set, u8 override_clear);
+			  u8 override_set, u8 override_clear, bool override_tone);
 #else
 static inline struct dvb_frontend *isl6421_attach(struct dvb_frontend *fe, struct i2c_adapter *i2c, u8 i2c_addr,
-						  u8 override_set, u8 override_clear)
+						  u8 override_set, u8 override_clear, bool override_tone)
 {
 	printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
 	return NULL;
--- a/drivers/media/video/cx88/cx88-cards.c
+++ b/drivers/media/video/cx88/cx88-cards.c
@@ -2855,6 +2855,7 @@  static void hauppauge_eeprom(struct cx88
 	core->board.tuner_type = tv.tuner_type;
 	core->tuner_formats = tv.tuner_formats;
 	core->board.radio.type = tv.has_radio ? CX88_RADIO : 0;
+	core->model = tv.model;
 
 	/* Make sure we support the board model */
 	switch (tv.model)
--- a/drivers/media/video/cx88/cx88-dvb.c
+++ b/drivers/media/video/cx88/cx88-dvb.c
@@ -1036,7 +1036,7 @@  static int dvb_register(struct cx8802_de
 			if (!dvb_attach(isl6421_attach,
 					fe0->dvb.frontend,
 					&dev->core->i2c_adap,
-					0x08, ISL6421_DCL, 0x00))
+					0x08, ISL6421_DCL, 0x00, false))
 				goto frontend_detach;
 		}
 		/* MFE frontend 2 */
@@ -1273,8 +1273,16 @@  static int dvb_register(struct cx8802_de
 					       &hauppauge_novas_config,
 					       &core->i2c_adap);
 		if (fe0->dvb.frontend) {
+			bool override_tone;
+
+			if (core->model == 92001)
+				override_tone = true;
+			else
+				override_tone = false;
+
 			if (!dvb_attach(isl6421_attach, fe0->dvb.frontend,
-					&core->i2c_adap, 0x08, ISL6421_DCL, 0x00))
+					&core->i2c_adap, 0x08, ISL6421_DCL, 0x00,
+					override_tone))
 				goto frontend_detach;
 		}
 		break;
@@ -1397,7 +1405,7 @@  static int dvb_register(struct cx8802_de
 			if (!dvb_attach(isl6421_attach,
 					fe0->dvb.frontend,
 					&dev->core->i2c_adap,
-					0x08, ISL6421_DCL, 0x00))
+					0x08, ISL6421_DCL, 0x00, false))
 				goto frontend_detach;
 		}
 		/* MFE frontend 2 */
@@ -1425,7 +1433,7 @@  static int dvb_register(struct cx8802_de
 			if (!dvb_attach(isl6421_attach,
 					fe0->dvb.frontend,
 					&dev->core->i2c_adap,
-					0x08, ISL6421_DCL, 0x00))
+					0x08, ISL6421_DCL, 0x00, false))
 				goto frontend_detach;
 		}
 		break;
--- a/drivers/media/video/cx88/cx88.h
+++ b/drivers/media/video/cx88/cx88.h
@@ -342,6 +342,7 @@  struct cx88_core {
 	/* board name */
 	int                        nr;
 	char                       name[32];
+	u32			   model;
 
 	/* pci stuff */
 	int                        pci_bus;
--- a/drivers/media/video/saa7134/saa7134-dvb.c
+++ b/drivers/media/video/saa7134/saa7134-dvb.c
@@ -1374,8 +1374,9 @@  static int dvb_init(struct saa7134_dev *
 					wprintk("%s: Lifeview Trio, No tda826x found!\n", __func__);
 					goto dettach_frontend;
 				}
-				if (dvb_attach(isl6421_attach, fe0->dvb.frontend, &dev->i2c_adap,
-										0x08, 0, 0) == NULL) {
+				if (dvb_attach(isl6421_attach, fe0->dvb.frontend,
+					       &dev->i2c_adap,
+					       0x08, 0, 0, false) == NULL) {
 					wprintk("%s: Lifeview Trio, No ISL6421 found!\n", __func__);
 					goto dettach_frontend;
 				}
@@ -1492,7 +1493,8 @@  static int dvb_init(struct saa7134_dev *
 				goto dettach_frontend;
 			}
 			if (dvb_attach(isl6421_attach, fe0->dvb.frontend,
-				       &dev->i2c_adap, 0x08, 0, 0) == NULL) {
+				       &dev->i2c_adap,
+				       0x08, 0, 0, false) == NULL) {
 				wprintk("%s: No ISL6421 found!\n", __func__);
 				goto dettach_frontend;
 			}