linux-media.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Hauppauge Nova-S-Plus DVB-S works for one channel, but cannot tune in others
@ 2013-04-05 11:46 Hans-Peter Jansen
  2013-04-05 12:25 ` Adam Sampson
  0 siblings, 1 reply; 13+ messages in thread
From: Hans-Peter Jansen @ 2013-04-05 11:46 UTC (permalink / raw)
  To: linux-media

[Sorry for sending non wrapped lines here from system output, but that's the 
 only way I know to present this kind of information in a sensible way]

Hi,

I'm suffering from a strange problem here. 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. While I like this one 
left very much (arte), it would be really nice to be able to tune in others 
as well.

The drivers load fine:

Apr  4 23:44:35 xrated kernel: [    5.829780] cx88/2: cx2388x MPEG-TS Driver Manager version 0.0.9 loaded
Apr  4 23:44:35 xrated kernel: [    5.834257] cx88/0: cx2388x v4l2 driver version 0.0.9 loaded
Apr  4 23:44:35 xrated kernel: [    5.845217] cx2388x alsa driver version 0.0.9 loaded
Apr  4 23:44:35 xrated kernel: [    5.883115] cx88[0]: subsystem: 0070:9202, board: Hauppauge Nova-S-Plus DVB-S [card=37,autodetected], frontend(s): 1
Apr  4 23:44:35 xrated kernel: [    5.883118] cx88[0]: TV tuner type 4, Radio tuner type -1
Apr  4 23:44:35 xrated kernel: [    6.037313] tveeprom 1-0050: Hauppauge model 92001, rev C1B1, serial# 1594431
Apr  4 23:44:35 xrated kernel: [    6.037316] tveeprom 1-0050: MAC address is 00:0d:fe:18:54:3f
Apr  4 23:44:35 xrated kernel: [    6.037321] tveeprom 1-0050: tuner model is Conexant_CX24109 (idx 111, type 4)
Apr  4 23:44:35 xrated kernel: [    6.037322] tveeprom 1-0050: TV standards ATSC/DVB Digital (eeprom 0x80)
Apr  4 23:44:35 xrated kernel: [    6.037324] tveeprom 1-0050: audio processor is CX883 (idx 32)
Apr  4 23:44:35 xrated kernel: [    6.037325] tveeprom 1-0050: decoder processor is CX883 (idx 22)
Apr  4 23:44:35 xrated kernel: [    6.037326] tveeprom 1-0050: has no radio, has IR receiver, has no IR transmitter
Apr  4 23:44:35 xrated kernel: [    6.037328] cx88[0]: hauppauge eeprom: model=92001
Apr  4 23:44:35 xrated kernel: [    6.063366] Registered IR keymap rc-hauppauge
Apr  4 23:44:35 xrated kernel: [    6.063515] input: cx88 IR (Hauppauge Nova-S-Plus  as /devices/pci0000:00/0000:00:1e.0/0000:0b:01.2/rc/rc0/input14
Apr  4 23:44:35 xrated kernel: [    6.063624] rc0: cx88 IR (Hauppauge Nova-S-Plus  as /devices/pci0000:00/0000:00:1e.0/0000:0b:01.2/rc/rc0
Apr  4 23:44:35 xrated kernel: [    6.063724] cx88[0]/2: cx2388x 8802 Driver Manager
Apr  4 23:44:35 xrated kernel: [    6.063747] cx88[0]/2: found at 0000:0b:01.2, rev: 5, irq: 16, latency: 64, mmio: 0xf6000000
Apr  4 23:44:35 xrated kernel: [    6.063870] cx88[0]/0: found at 0000:0b:01.0, rev: 5, irq: 16, latency: 64, mmio: 0xf4000000
Apr  4 23:44:35 xrated kernel: [    6.065681] IR NEC protocol handler initialized
Apr  4 23:44:35 xrated kernel: [    6.066826] wm8775 1-001b: chip found @ 0x36 (cx88[0])
Apr  4 23:44:35 xrated kernel: [    6.067485] cx88/2: cx2388x dvb driver version 0.0.9 loaded
Apr  4 23:44:35 xrated kernel: [    6.067487] cx88/2: registering cx8802 driver, type: dvb access: shared
Apr  4 23:44:35 xrated kernel: [    6.067489] cx88[0]/2: subsystem: 0070:9202, board: Hauppauge Nova-S-Plus DVB-S [card=37]
Apr  4 23:44:35 xrated kernel: [    6.067491] cx88[0]/2: cx2388x based DVB/ATSC card
Apr  4 23:44:35 xrated kernel: [    6.067492] cx8802_alloc_frontends() allocating 1 frontend(s)
Apr  4 23:44:35 xrated kernel: [    6.068105] IR RC5(x) protocol handler initialized
Apr  4 23:44:35 xrated kernel: [    6.069260] IR RC6 protocol handler initialized
Apr  4 23:44:35 xrated kernel: [    6.069562] CX24123: detected CX24123
Apr  4 23:44:35 xrated kernel: [    6.070247] IR JVC protocol handler initialized
Apr  4 23:44:35 xrated kernel: [    6.071217] IR Sony protocol handler initialized
Apr  4 23:44:35 xrated kernel: [    6.071955] DVB: registering new adapter (cx88[0])
Apr  4 23:44:35 xrated kernel: [    6.071957] DVB: registering adapter 0 frontend 0 (Conexant CX24123/CX24109)...
Apr  4 23:44:35 xrated kernel: [    6.072347] IR SANYO protocol handler initialized
Apr  4 23:44:35 xrated kernel: [    6.073548] input: MCE IR Keyboard/Mouse (cx88xx) as /devices/virtual/input/input15
Apr  4 23:44:35 xrated kernel: [    6.074476] IR MCE Keyboard/mouse protocol handler initialized
Apr  4 23:44:35 xrated kernel: [    6.075778] lirc_dev: IR Remote Control driver registered, major 250 
Apr  4 23:44:35 xrated kernel: [    6.076026] rc rc0: lirc_dev: driver ir-lirc-codec (cx88xx) registered at minor = 0
Apr  4 23:44:35 xrated kernel: [    6.076028] IR LIRC bridge handler initialized
Apr  4 23:44:35 xrated kernel: [    6.081790] cx88[0]/0: registered device video0 [v4l2]
Apr  4 23:44:35 xrated kernel: [    6.081880] cx88[0]/0: registered device vbi0
Apr  4 23:44:35 xrated kernel: [    6.081986] cx88[0]/1: CX88x/0: ALSA support for cx2388x boards

but a channel scan fails:

$ scan /usr/share/dvb/dvb-s/Astra-19.2E > channels.conf
scanning /usr/share/dvb/dvb-s/Astra-19.2E
using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'
initial transponder 12551500 V 22000000 5
>>> tune to: 12551:v:0:22000
DVB-S IF freq is 1951500
WARNING: >>> tuning failed!!!
>>> tune to: 12551:v:0:22000 (tuning failed)
DVB-S IF freq is 1951500
WARNING: >>> tuning failed!!!
ERROR: initial tuning failed
dumping lists (0 services)
Done.

$ dvbsnoop -s feinfo -pd 9
dvbsnoop V1.4.50 -- http://dvbsnoop.sourceforge.net/ 
   DEMUX : /dev/dvb/adapter0/demux0
   DVR   : /dev/dvb/adapter0/dvr0
   FRONTEND: /dev/dvb/adapter0/frontend0

---------------------------------------------------------
FrontEnd Info...
---------------------------------------------------------

Device: /dev/dvb/adapter0/frontend0

Basic capabilities:
    Name: "Conexant CX24123/CX24109"
    Frontend-type:       QPSK (DVB-S)
    Frequency (min):     950.000 MHz
    Frequency (max):     2150.000 MHz
    Frequency stepsiz:   1.011 MHz
    Frequency tolerance: 5.000 MHz
    Symbol rate (min):     1.000000 MSym/s
    Symbol rate (max):     45.000000 MSym/s
    Symbol rate tolerance: 0 ppm
    Notifier delay: 0 ms
    Frontend capabilities:
        auto inversion
        FEC 1/2
        FEC 2/3
        FEC 3/4
        FEC 4/5
        FEC 5/6
        FEC 6/7
        FEC 7/8
        FEC AUTO
        QPSK

Current parameters:
    Frequency:  1951.500 MHz
    Inversion:  OFF
    Symbol rate:  22.000000 MSym/s
    FEC:  FEC 7/8


$ dvb-fe-tool 
Device Conexant CX24123/CX24109 (/dev/dvb/adapter0/frontend0) capabilities:
        CAN_FEC_1_2 CAN_FEC_2_3 CAN_FEC_3_4 CAN_FEC_4_5 CAN_FEC_5_6 CAN_FEC_6_7 CAN_FEC_7_8 CAN_FEC_AUTO CAN_INVERSION_AUTO CAN_QPSK CAN_RECOVER 
DVB API Version 5.5, Current v5 delivery system: DVBS
Supported delivery system: [DVBS] 


I can watch arte with kaffeine, with vdr/vdr-sxfe just fine, but cannot 
change the channel. 

vdr (1.6.0) doesn't detect any errors:

Apr  5 13:23:29 xrated vdr: [9177] switching to channel 9
Apr  5 13:23:29 xrated vdr: [9177] buffer stats: 0 (0%) used
Apr  5 13:23:29 xrated vdr: [9590] transfer thread started (pid=9177, tid=9590)
Apr  5 13:23:29 xrated vdr: [9588] TS buffer on device 1 thread ended (pid=9177, tid=9588)
Apr  5 13:23:29 xrated vdr: [9587] buffer stats: 0 (0%) used
Apr  5 13:23:29 xrated vdr: [9587] receiver on device 1 thread ended (pid=9177, tid=9587)
Apr  5 13:23:29 xrated vdr: [9591] receiver on device 1 thread started (pid=9177, tid=9591)
Apr  5 13:23:29 xrated vdr: [9592] TS buffer on device 1 thread started (pid=9177, tid=9592)
Apr  5 13:23:32 xrated vdr: [9590] transfer thread ended (pid=9177, tid=9590)
Apr  5 13:23:33 xrated vdr: [9177] switching to channel 8
Apr  5 13:23:33 xrated vdr: [9177] buffer stats: 0 (0%) used
Apr  5 13:23:33 xrated vdr: [9601] transfer thread started (pid=9177, tid=9601)
Apr  5 13:23:33 xrated vdr: [9592] TS buffer on device 1 thread ended (pid=9177, tid=9592)
Apr  5 13:23:33 xrated vdr: [9591] buffer stats: 0 (0%) used
Apr  5 13:23:33 xrated vdr: [9591] receiver on device 1 thread ended (pid=9177, tid=9591)
Apr  5 13:23:33 xrated vdr: [9602] receiver on device 1 thread started (pid=9177, tid=9602)
Apr  5 13:23:33 xrated vdr: [9603] TS buffer on device 1 thread started (pid=9177, tid=9603)
Apr  5 13:23:34 xrated vdr: [9601] [xine..put] Detected video size 720x576

but only on channel 8 it produces a video stream. EPG data seems to arrive 
properly.

On other systems, I'm using a slightly different card: a Hauppauge 
WinTV-HVR4000(Lite) DVB-S/S2, and the most obvious difference is, that
this card loads a firmware, while this NOVA-S-Plus does not:

Mar  1 16:40:13 tyrex kernel: [   46.493929] cx24116_firmware_ondemand: Waiting for firmware upload (dvb-fe-cx24116.fw)...
Mar  1 16:40:13 tyrex kernel: [   46.503070] cx24116_firmware_ondemand: Waiting for firmware upload(2)...
Mar  1 16:40:18 tyrex kernel: [   51.708520] cx24116_load_firmware: FW version 1.26.90.0
Mar  1 16:40:18 tyrex kernel: [   51.708541] cx24116_firmware_ondemand: Firmware upload complete

The Nova-S-Plus also uses a different driver, the cx24123:

$ lsmod | grep cx
cx24123                23212  1 
cx88_dvb               34350  0 
cx88_vp3054_i2c        12961  1 cx88_dvb
videobuf_dvb           14093  1 cx88_dvb
dvb_core              114209  2 cx88_dvb,videobuf_dvb
cx88_alsa              18300  2 
snd_pcm               109370  4 snd_hda_intel,cx88_alsa,snd_hda_codec,snd_pcm_oss
cx8800                 38588  0 
cx8802                 23058  1 cx88_dvb
cx88xx                 88514  4 cx88_dvb,cx88_alsa,cx8800,cx8802
rc_core                31881  12 ir_kbd_i2c,ir_lirc_codec,ir_mce_kbd_decoder,ir_sanyo_decoder,ir_sony_decoder,ir_jvc_decoder,ir_rc6_decoder,ir_rc5_decoder,ir_nec_decoder,rc_hauppauge,cx88xx
i2c_algo_bit           13414  2 cx88_vp3054_i2c,cx88xx
tveeprom               21250  1 cx88xx
v4l2_common            16421  3 wm8775,cx8800,cx88xx
videodev              111307  5 uvcvideo,wm8775,cx8800,cx88xx,v4l2_common
videobuf_dma_sg        19306  5 cx88_dvb,cx88_alsa,cx8800,cx8802,cx88xx
snd                    91489  19 snd_hda_codec_realtek,snd_hda_intel,cx88_alsa,snd_pcm_oss,snd_hda_codec,snd_hwdep,snd_pcm,snd_seq,snd_seq_device,snd_timer,snd_mixer_oss
videobuf_core          30119  5 videobuf_dvb,cx8800,cx8802,cx88xx,videobuf_dma_sg
btcx_risc              13641  4 cx88_alsa,cx8800,cx8802,cx88xx

Does this behavior rings a bell for somebody here?

$ uname -a
Linux xrated 3.4.33-2.24-desktop #1 SMP PREEMPT Tue Feb 26 03:34:33 UTC 2013 (5f00a32) x86_64 x86_64 x86_64 GNU/Linux

Any idea, how to debug this any further?

Thanks in advance,
Pete

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Hauppauge Nova-S-Plus DVB-S works for one channel, but cannot tune in others
  2013-04-05 11:46 Hauppauge Nova-S-Plus DVB-S works for one channel, but cannot tune in others Hans-Peter Jansen
@ 2013-04-05 12:25 ` Adam Sampson
  2013-04-05 16:18   ` Mauro Carvalho Chehab
  0 siblings, 1 reply; 13+ messages in thread
From: Adam Sampson @ 2013-04-05 12:25 UTC (permalink / raw)
  To: Hans-Peter Jansen; +Cc: linux-media

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

Thanks,

-- 
Adam Sampson <ats@offog.org>                         <http://offog.org/>

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Hauppauge Nova-S-Plus DVB-S works for one channel, but cannot tune in others
  2013-04-05 12:25 ` Adam Sampson
@ 2013-04-05 16:18   ` Mauro Carvalho Chehab
  2013-04-06 10:20     ` Hans-Peter Jansen
  2013-04-06 12:59     ` Hauppauge Nova-S-Plus DVB-S works for one channel, but cannot tune in others Adam Sampson
  0 siblings, 2 replies; 13+ messages in thread
From: Mauro Carvalho Chehab @ 2013-04-05 16:18 UTC (permalink / raw)
  To: Adam Sampson; +Cc: Hans-Peter Jansen, linux-media, jdonog01, bugzilla-kernel

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.

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.

-

[PATCH] [media] cx88: kernel bz#9476: Fix tone setting for Nova-S+ model 92001

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>

diff --git a/drivers/media/common/b2c2/flexcop-fe-tuner.c b/drivers/media/common/b2c2/flexcop-fe-tuner.c
index 850a6c6..7e14e90 100644
--- a/drivers/media/common/b2c2/flexcop-fe-tuner.c
+++ b/drivers/media/common/b2c2/flexcop-fe-tuner.c
@@ -325,7 +325,7 @@ static int skystar2_rev27_attach(struct flexcop_device *fc,
 	/* 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 flexcop_device *fc,
 
 	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;
diff --git a/drivers/media/dvb-frontends/isl6421.c b/drivers/media/dvb-frontends/isl6421.c
index 0cb3f0f..c77002f 100644
--- a/drivers/media/dvb-frontends/isl6421.c
+++ b/drivers/media/dvb-frontends/isl6421.c
@@ -89,6 +89,30 @@ static int isl6421_enable_high_lnb_voltage(struct dvb_frontend *fe, long arg)
 	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_frontend *fe)
 }
 
 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(struct dvb_frontend *fe, struct i2c_adapter
 	/* 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;
 }
diff --git a/drivers/media/dvb-frontends/isl6421.h b/drivers/media/dvb-frontends/isl6421.h
index e7ca7d1..630e7f8 100644
--- a/drivers/media/dvb-frontends/isl6421.h
+++ b/drivers/media/dvb-frontends/isl6421.h
@@ -42,10 +42,10 @@
 #if IS_ENABLED(CONFIG_DVB_ISL6421)
 /* 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;
diff --git a/drivers/media/pci/cx88/cx88-cards.c b/drivers/media/pci/cx88/cx88-cards.c
index e2e0b8f..07b700a 100644
--- a/drivers/media/pci/cx88/cx88-cards.c
+++ b/drivers/media/pci/cx88/cx88-cards.c
@@ -2855,6 +2855,7 @@ static void hauppauge_eeprom(struct cx88_core *core, u8 *eeprom_data)
 	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)
diff --git a/drivers/media/pci/cx88/cx88-dvb.c b/drivers/media/pci/cx88/cx88-dvb.c
index 672b267..053ed1b 100644
--- a/drivers/media/pci/cx88/cx88-dvb.c
+++ b/drivers/media/pci/cx88/cx88-dvb.c
@@ -1042,7 +1042,7 @@ static int dvb_register(struct cx8802_dev *dev)
 			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 */
@@ -1279,8 +1279,16 @@ static int dvb_register(struct cx8802_dev *dev)
 					       &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;
@@ -1403,7 +1411,7 @@ static int dvb_register(struct cx8802_dev *dev)
 			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 */
@@ -1431,7 +1439,7 @@ static int dvb_register(struct cx8802_dev *dev)
 			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;
diff --git a/drivers/media/pci/cx88/cx88.h b/drivers/media/pci/cx88/cx88.h
index eca02c2..4e29c9d 100644
--- a/drivers/media/pci/cx88/cx88.h
+++ b/drivers/media/pci/cx88/cx88.h
@@ -334,6 +334,7 @@ struct cx88_core {
 	/* board name */
 	int                        nr;
 	char                       name[32];
+	u32			   model;
 
 	/* pci stuff */
 	int                        pci_bus;
diff --git a/drivers/media/pci/saa7134/saa7134-dvb.c b/drivers/media/pci/saa7134/saa7134-dvb.c
index 27915e5..4527139 100644
--- a/drivers/media/pci/saa7134/saa7134-dvb.c
+++ b/drivers/media/pci/saa7134/saa7134-dvb.c
@@ -1391,8 +1391,9 @@ static int dvb_init(struct saa7134_dev *dev)
 					wprintk("%s: Lifeview Trio, No tda826x found!\n", __func__);
 					goto detach_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 detach_frontend;
 				}
@@ -1509,7 +1510,8 @@ static int dvb_init(struct saa7134_dev *dev)
 				goto detach_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 detach_frontend;
 			}



^ permalink raw reply related	[flat|nested] 13+ messages in thread

* Re: Hauppauge Nova-S-Plus DVB-S works for one channel, but cannot tune in others
  2013-04-05 16:18   ` Mauro Carvalho Chehab
@ 2013-04-06 10:20     ` Hans-Peter Jansen
  2013-04-06 13:37       ` Mauro Carvalho Chehab
  2013-04-06 13:45       ` [PATCH] cx24123: improve precision when calculating symbol rate ratio Mauro Carvalho Chehab
  2013-04-06 12:59     ` Hauppauge Nova-S-Plus DVB-S works for one channel, but cannot tune in others Adam Sampson
  1 sibling, 2 replies; 13+ messages in thread
From: Hans-Peter Jansen @ 2013-04-06 10:20 UTC (permalink / raw)
  To: Mauro Carvalho Chehab
  Cc: Adam Sampson, linux-media, jdonog01, bugzilla-kernel

[-- Attachment #1: Type: text/plain, Size: 2599 bytes --]

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


[-- Attachment #2: Hauppauge_Nova-S-Plus_DVB-S_tune_fix.patch --]
[-- Type: text/x-patch, Size: 7738 bytes --]

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;
 			}

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Hauppauge Nova-S-Plus DVB-S works for one channel, but cannot tune in others
  2013-04-05 16:18   ` Mauro Carvalho Chehab
  2013-04-06 10:20     ` Hans-Peter Jansen
@ 2013-04-06 12:59     ` Adam Sampson
  1 sibling, 0 replies; 13+ messages in thread
From: Adam Sampson @ 2013-04-06 12:59 UTC (permalink / raw)
  To: Mauro Carvalho Chehab
  Cc: Hans-Peter Jansen, linux-media, jdonog01, bugzilla-kernel

On Fri, Apr 05, 2013 at 01:18:54PM -0300, Mauro Carvalho Chehab wrote:
> 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.

Yes, your patch works fine for me, backported to 3.4, which was just a
case of changing the paths:
  http://offog.org/stuff/bug9476v2.diff

Tested-by: Adam Sampson <ats@offog.org>

I've tested it on my "Hauppauge model 92001, rev C1B1, serial# 1888307"
board with lowband V, lowband H, highband V and highband H transponders,
so both tone and voltage switching are working. I've not tested it on
any other boards.

> --- a/drivers/media/dvb-frontends/isl6421.h
> +++ b/drivers/media/dvb-frontends/isl6421.h
> @@ -42,10 +42,10 @@
>  #if IS_ENABLED(CONFIG_DVB_ISL6421)
>  /* 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);

It might be worth adding a comment there saying what override_tone is
actually doing?

Thanks very much,

-- 
Adam Sampson <ats@offog.org>                         <http://offog.org/>

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Hauppauge Nova-S-Plus DVB-S works for one channel, but cannot tune in others
  2013-04-06 10:20     ` Hans-Peter Jansen
@ 2013-04-06 13:37       ` Mauro Carvalho Chehab
  2013-04-06 17:26         ` Hans-Peter Jansen
  2013-04-06 13:45       ` [PATCH] cx24123: improve precision when calculating symbol rate ratio Mauro Carvalho Chehab
  1 sibling, 1 reply; 13+ messages in thread
From: Mauro Carvalho Chehab @ 2013-04-06 13:37 UTC (permalink / raw)
  To: Hans-Peter Jansen; +Cc: Adam Sampson, linux-media, jdonog01, bugzilla-kernel

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

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [PATCH] cx24123: improve precision when calculating symbol rate ratio
  2013-04-06 10:20     ` Hans-Peter Jansen
  2013-04-06 13:37       ` Mauro Carvalho Chehab
@ 2013-04-06 13:45       ` Mauro Carvalho Chehab
  1 sibling, 0 replies; 13+ messages in thread
From: Mauro Carvalho Chehab @ 2013-04-06 13:45 UTC (permalink / raw)
  Cc: Hans-Peter Jansen, Mauro Carvalho Chehab,
	Linux Media Mailing List

Symbol rate ratio were using a rough calculus, as the code was
limited to 32 bits arithmetic. Change it to 64 bits, in order
to better estimate the bandwidth low-pass filter on the demod.

This should reduce the noise and improve reception.

Reported-by: Hans-Peter Jansen <hpj@urpla.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
---
 drivers/media/dvb-frontends/cx24123.c | 28 +++++++---------------------
 1 file changed, 7 insertions(+), 21 deletions(-)

diff --git a/drivers/media/dvb-frontends/cx24123.c b/drivers/media/dvb-frontends/cx24123.c
index 68c88ab..a771da3 100644
--- a/drivers/media/dvb-frontends/cx24123.c
+++ b/drivers/media/dvb-frontends/cx24123.c
@@ -26,6 +26,7 @@
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/init.h>
+#include <asm/div64.h>
 
 #include "dvb_frontend.h"
 #include "cx24123.h"
@@ -452,7 +453,8 @@ static u32 cx24123_int_log2(u32 a, u32 b)
 
 static int cx24123_set_symbolrate(struct cx24123_state *state, u32 srate)
 {
-	u32 tmp, sample_rate, ratio, sample_gain;
+	u64 tmp;
+	u32 sample_rate, ratio, sample_gain;
 	u8 pll_mult;
 
 	/*  check if symbol rate is within limits */
@@ -482,27 +484,11 @@ static int cx24123_set_symbolrate(struct cx24123_state *state, u32 srate)
 
 	sample_rate = pll_mult * XTAL;
 
-	/*
-	    SYSSymbolRate[21:0] = (srate << 23) / sample_rate
-
-	    We have to use 32 bit unsigned arithmetic without precision loss.
-	    The maximum srate is 45000000 or 0x02AEA540. This number has
-	    only 6 clear bits on top, hence we can shift it left only 6 bits
-	    at a time. Borrowed from cx24110.c
-	*/
-
-	tmp = srate << 6;
-	ratio = tmp / sample_rate;
-
-	tmp = (tmp % sample_rate) << 6;
-	ratio = (ratio << 6) + (tmp / sample_rate);
-
-	tmp = (tmp % sample_rate) << 6;
-	ratio = (ratio << 6) + (tmp / sample_rate);
-
-	tmp = (tmp % sample_rate) << 5;
-	ratio = (ratio << 5) + (tmp / sample_rate);
+	/* SYSSymbolRate[21:0] = (srate << 23) / sample_rate */
 
+	tmp = ((u64)srate) << 23;
+	do_div(tmp, sample_rate);
+	ratio = (u32) tmp;
 
 	cx24123_writereg(state, 0x01, pll_mult * 6);
 
-- 
1.8.1.4


^ permalink raw reply related	[flat|nested] 13+ messages in thread

* Re: Hauppauge Nova-S-Plus DVB-S works for one channel, but cannot tune in others
  2013-04-06 13:37       ` Mauro Carvalho Chehab
@ 2013-04-06 17:26         ` Hans-Peter Jansen
  2013-04-06 19:26           ` Mauro Carvalho Chehab
  0 siblings, 1 reply; 13+ messages in thread
From: Hans-Peter Jansen @ 2013-04-06 17:26 UTC (permalink / raw)
  To: Mauro Carvalho Chehab
  Cc: Adam Sampson, linux-media, jdonog01, bugzilla-kernel

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

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Hauppauge Nova-S-Plus DVB-S works for one channel, but cannot tune in others
  2013-04-06 17:26         ` Hans-Peter Jansen
@ 2013-04-06 19:26           ` Mauro Carvalho Chehab
  2013-04-06 20:20             ` Hans-Peter Jansen
  0 siblings, 1 reply; 13+ messages in thread
From: Mauro Carvalho Chehab @ 2013-04-06 19:26 UTC (permalink / raw)
  To: Hans-Peter Jansen; +Cc: Adam Sampson, linux-media, jdonog01, bugzilla-kernel

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

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Hauppauge Nova-S-Plus DVB-S works for one channel, but cannot tune in others
  2013-04-06 19:26           ` Mauro Carvalho Chehab
@ 2013-04-06 20:20             ` Hans-Peter Jansen
  2013-04-07 17:03               ` Mauro Carvalho Chehab
  0 siblings, 1 reply; 13+ messages in thread
From: Hans-Peter Jansen @ 2013-04-06 20:20 UTC (permalink / raw)
  To: Mauro Carvalho Chehab
  Cc: Adam Sampson, linux-media, jdonog01, bugzilla-kernel

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

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Hauppauge Nova-S-Plus DVB-S works for one channel, but cannot tune in others
  2013-04-06 20:20             ` Hans-Peter Jansen
@ 2013-04-07 17:03               ` Mauro Carvalho Chehab
  2013-04-07 19:10                 ` Hans-Peter Jansen
  0 siblings, 1 reply; 13+ messages in thread
From: Mauro Carvalho Chehab @ 2013-04-07 17:03 UTC (permalink / raw)
  To: Hans-Peter Jansen; +Cc: Adam Sampson, linux-media, jdonog01, bugzilla-kernel

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


-- 

Cheers,
Mauro

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Hauppauge Nova-S-Plus DVB-S works for one channel, but cannot tune in others
  2013-04-07 17:03               ` Mauro Carvalho Chehab
@ 2013-04-07 19:10                 ` Hans-Peter Jansen
  2013-04-08  2:39                   ` Mauro Carvalho Chehab
  0 siblings, 1 reply; 13+ messages in thread
From: Hans-Peter Jansen @ 2013-04-07 19:10 UTC (permalink / raw)
  To: Mauro Carvalho Chehab
  Cc: Adam Sampson, linux-media, jdonog01, bugzilla-kernel

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..

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: Hauppauge Nova-S-Plus DVB-S works for one channel, but cannot tune in others
  2013-04-07 19:10                 ` Hans-Peter Jansen
@ 2013-04-08  2:39                   ` Mauro Carvalho Chehab
  0 siblings, 0 replies; 13+ messages in thread
From: Mauro Carvalho Chehab @ 2013-04-08  2:39 UTC (permalink / raw)
  To: Hans-Peter Jansen; +Cc: Adam Sampson, linux-media, jdonog01, bugzilla-kernel

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..


-- 

Cheers,
Mauro

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2013-04-08  2:39 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-04-05 11:46 Hauppauge Nova-S-Plus DVB-S works for one channel, but cannot tune in others Hans-Peter Jansen
2013-04-05 12:25 ` Adam Sampson
2013-04-05 16:18   ` Mauro Carvalho Chehab
2013-04-06 10:20     ` Hans-Peter Jansen
2013-04-06 13:37       ` Mauro Carvalho Chehab
2013-04-06 17:26         ` Hans-Peter Jansen
2013-04-06 19:26           ` Mauro Carvalho Chehab
2013-04-06 20:20             ` Hans-Peter Jansen
2013-04-07 17:03               ` Mauro Carvalho Chehab
2013-04-07 19:10                 ` Hans-Peter Jansen
2013-04-08  2:39                   ` Mauro Carvalho Chehab
2013-04-06 13:45       ` [PATCH] cx24123: improve precision when calculating symbol rate ratio Mauro Carvalho Chehab
2013-04-06 12:59     ` Hauppauge Nova-S-Plus DVB-S works for one channel, but cannot tune in others Adam Sampson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).