* 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-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
* 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
* [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-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
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).