Re: CX24123 no FE_HAS_LOCK/tuning failed.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Thanks for the reply John,

he Hauppauge WinTV Nova-S-Plus has had problems with hi-band
transponders since the 2.6.20 kernel or thereabouts.  The Optus D1
transponders all seem to be hi-band.  See the thread at:
http://bugzilla.kernel.org/show_bug.cgi?id=9476 where I outlined a
fix which works OK for this card, but is not robust enough for
general use.

I've added this to the latest version of ...

root@mythbox:/usr/src/v4l-dvb# hg diff linux/drivers/media/dvb/frontends/isl6421.c
diff -r fe524e0a6412 linux/drivers/media/dvb/frontends/isl6421.c
--- a/linux/drivers/media/dvb/frontends/isl6421.c Tue May 05 08:50:54 2009 -0300 +++ b/linux/drivers/media/dvb/frontends/isl6421.c Fri May 08 11:30:07 2009 +1200
@@ -99,6 +99,33 @@
    fe->sec_priv = NULL;
}

+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;
+        printk(KERN_INFO "%s(SEC_TONE_ON)", __func__);
+        break;
+    case SEC_TONE_OFF:
+        isl6421->config &= ~ISL6421_ENT1;
+        printk(KERN_INFO "%s(SEC_TONE_OFF)", __func__);
+        break;
+    default:
+        printk(KERN_ERR "%s: Invalid, tone=%d\n", __func__, tone);
+        return -EINVAL;
+    }
+
+    isl6421->config |= isl6421->override_or;
+    isl6421->config &= isl6421->override_and;
+
+    return (i2c_transfer(isl6421->i2c, &msg, 1) == 1) ? 0 : -EIO;
+}
+
struct dvb_frontend *isl6421_attach(struct dvb_frontend *fe, struct i2c_adapter *i2c, u8 i2c_addr,
           u8 override_set, u8 override_clear)
{
@@ -130,12 +157,14 @@

    /* override frontend ops */
    fe->ops.set_voltage = isl6421_set_voltage;
+    fe->ops.set_tone = isl6421_set_tone;
    fe->ops.enable_high_lnb_voltage = isl6421_enable_high_lnb_voltage;

    return fe;
}
EXPORT_SYMBOL(isl6421_attach);

+
MODULE_DESCRIPTION("Driver for lnb supply and control ic isl6421");
MODULE_AUTHOR("Andrew de Quincey & Oliver Endriss");
MODULE_LICENSE("GPL");


*Unfortunately it didn't seem to help*

root@mythbox:/usr/src/v4l-dvb# !scan
scan -vvv -a 0 ~tv/OptusD1
scanning /home/tv/OptusD1
using '/dev/dvb/adapter0/frontend0' and '/dev/dvb/adapter0/demux0'
initial transponder 12456000 H 22500000 3
initial transponder 12483000 H 22500000 3
>>> tune to: 12456:h:0:22500
DiSEqC: switch pos 0, 18V, hiband (index 3)
diseqc_send_msg:59: DiSEqC: e0 10 38 f3 00 00
>>> tuning status == 0x01
>>> tuning status == 0x01
May 8 11:31:22 mythbox kernel: [ 3205.651828] cx88[0]/2-dvb: cx8802_dvb_advise_acquire May 8 11:31:22 mythbox kernel: [ 3205.652323] CX24123: cx24123_initfe: init frontend May 8 11:31:22 mythbox kernel: [ 3205.672802] isl6421_set_tone(SEC_TONE_OFF)<7>CX24123: cx24123_send_diseqc_msg: May 8 11:31:22 mythbox kernel: [ 3205.836714] CX24123: cx24123_diseqc_send_burst: May 8 11:31:22 mythbox kernel: [ 3205.952866] isl6421_set_tone(SEC_TONE_ON)<7>CX24123: cx24123_set_frontend: May 8 11:31:22 mythbox kernel: [ 3206.004824] CX24123: cx24123_set_inversion: inversion auto May 8 11:31:22 mythbox kernel: [ 3206.007124] CX24123: cx24123_set_fec: set FEC to 3/4 May 8 11:31:22 mythbox kernel: [ 3206.011208] CX24123: cx24123_set_symbolrate: srate=22500000, ratio=0x0038f7b8, sample_rate=50555000 sample_gain=1 May 8 11:31:22 mythbox kernel: [ 3206.011213] CX24123: cx24123_pll_tune: frequency=1856000 May 8 11:31:22 mythbox kernel: [ 3206.011215] CX24123: cx24123_pll_writereg: pll writereg called, data=0x00100e3f May 8 11:31:22 mythbox kernel: [ 3206.017467] CX24123: cx24123_pll_writereg: pll writereg called, data=0x000a0180 May 8 11:31:22 mythbox kernel: [ 3206.023693] CX24123: cx24123_pll_writereg: pll writereg called, data=0x00000220 May 8 11:31:22 mythbox kernel: [ 3206.030443] CX24123: cx24123_pll_writereg: pll writereg called, data=0x001f472b May 8 11:31:22 mythbox kernel: [ 3206.038349] CX24123: cx24123_pll_tune: pll tune VCA=1052223, band=544, pll=2049835
>>> tuning status == 0x01
>>> tuning status == 0x01
>>> tuning status == 0x01
>>> tuning status == 0x01
>>> tuning status == 0x01
>>> tuning status == 0x01
>>> tuning status == 0x01
>>> tuning status == 0x01
WARNING: >>> tuning failed!!!
>>> tune to: 12456:h:0:22500 (tuning failed)
DiSEqC: switch pos 0, 18V, hiband (index 3)
diseqc_send_msg:59: DiSEqC: e0 10 38 f3 00 00
May 8 11:31:24 mythbox kernel: [ 3208.017792] isl6421_set_tone(SEC_TONE_OFF)<7>CX24123: cx24123_send_diseqc_msg: May 8 11:31:25 mythbox kernel: [ 3208.195719] CX24123: cx24123_diseqc_send_burst: May 8 11:31:25 mythbox kernel: [ 3208.312913] isl6421_set_tone(SEC_TONE_ON)<7>CX24123: cx24123_set_frontend: May 8 11:31:25 mythbox kernel: [ 3208.364885] CX24123: cx24123_set_inversion: inversion auto May 8 11:31:25 mythbox kernel: [ 3208.367181] CX24123: cx24123_set_fec: set FEC to 3/4 May 8 11:31:25 mythbox kernel: [ 3208.371271] CX24123: cx24123_set_symbolrate: srate=22500000, ratio=0x0038f7b8, sample_rate=50555000 sample_gain=1 May 8 11:31:25 mythbox kernel: [ 3208.371276] CX24123: cx24123_pll_tune: frequency=1856000 May 8 11:31:25 mythbox kernel: [ 3208.371279] CX24123: cx24123_pll_writereg: pll writereg called, data=0x00100e3f May 8 11:31:25 mythbox kernel: [ 3208.377524] CX24123: cx24123_pll_writereg: pll writereg called, data=0x000a0180 May 8 11:31:25 mythbox kernel: [ 3208.383763] CX24123: cx24123_pll_writereg: pll writereg called, data=0x00000220 May 8 11:31:25 mythbox kernel: [ 3208.390010] CX24123: cx24123_pll_writereg: pll writereg called, data=0x001f472b May 8 11:31:25 mythbox kernel: [ 3208.397886] CX24123: cx24123_pll_tune: pll tune VCA=1052223, band=544, pll=2049835
>>> tuning status == 0x01
>>> tuning status == 0x01
>>> tuning status == 0x01
>>> tuning status == 0x01
>>> tuning status == 0x01
>>> tuning status == 0x01
>>> tuning status == 0x01
>>> tuning status == 0x01
>>> tuning status == 0x01
>>> tuning status == 0x01
WARNING: >>> tuning failed!!!
>>> tune to: 12483:h:0:22500
DiSEqC: switch pos 0, 18V, hiband (index 3)
diseqc_send_msg:59: DiSEqC: e0 10 38 f3 00 00
May 8 11:31:27 mythbox kernel: [ 3210.377686] isl6421_set_tone(SEC_TONE_OFF)<7>CX24123: cx24123_send_diseqc_msg:
>>> tuning status == 0x01
>>> tuning status == 0x01
>>> tuning status == 0x01
>>> tuning status == 0x01
May 8 11:31:27 mythbox kernel: [ 3210.556708] CX24123: cx24123_diseqc_send_burst: May 8 11:31:27 mythbox kernel: [ 3210.672860] isl6421_set_tone(SEC_TONE_ON)<7>CX24123: cx24123_set_frontend: May 8 11:31:27 mythbox kernel: [ 3210.724817] CX24123: cx24123_set_inversion: inversion auto May 8 11:31:27 mythbox kernel: [ 3210.727113] CX24123: cx24123_set_fec: set FEC to 3/4 May 8 11:31:27 mythbox kernel: [ 3210.731205] CX24123: cx24123_set_symbolrate: srate=22500000, ratio=0x0038f7b8, sample_rate=50555000 sample_gain=1 May 8 11:31:27 mythbox kernel: [ 3210.731210] CX24123: cx24123_pll_tune: frequency=1883000 May 8 11:31:27 mythbox kernel: [ 3210.731212] CX24123: cx24123_pll_writereg: pll writereg called, data=0x00100e3f May 8 11:31:27 mythbox kernel: [ 3210.737458] CX24123: cx24123_pll_writereg: pll writereg called, data=0x000a0180 May 8 11:31:27 mythbox kernel: [ 3210.743689] CX24123: cx24123_pll_writereg: pll writereg called, data=0x00000220 May 8 11:31:27 mythbox kernel: [ 3210.749935] CX24123: cx24123_pll_writereg: pll writereg called, data=0x001f4746 May 8 11:31:27 mythbox kernel: [ 3210.757813] CX24123: cx24123_pll_tune: pll tune VCA=1052223, band=544, pll=2049862
>>> tuning status == 0x01
>>> tuning status == 0x01
>>> tuning status == 0x01
>>> tuning status == 0x01
>>> tuning status == 0x01
>>> tuning status == 0x01
WARNING: >>> tuning failed!!!
>>> tune to: 12483:h:0:22500 (tuning failed)
DiSEqC: switch pos 0, 18V, hiband (index 3)
diseqc_send_msg:59: DiSEqC: e0 10 38 f3 00 00
>>> tuning status == 0x01
>>> tuning status == 0x01
May 8 11:31:29 mythbox kernel: [ 3212.737670] isl6421_set_tone(SEC_TONE_OFF)<7>CX24123: cx24123_send_diseqc_msg: May 8 11:31:29 mythbox kernel: [ 3212.916717] CX24123: cx24123_diseqc_send_burst: May 8 11:31:29 mythbox kernel: [ 3213.038352] isl6421_set_tone(SEC_TONE_ON)<7>CX24123: cx24123_set_frontend: May 8 11:31:29 mythbox kernel: [ 3213.090064] CX24123: cx24123_set_inversion: inversion auto May 8 11:31:29 mythbox kernel: [ 3213.092377] CX24123: cx24123_set_fec: set FEC to 3/4 May 8 11:31:29 mythbox kernel: [ 3213.096462] CX24123: cx24123_set_symbolrate: srate=22500000, ratio=0x0038f7b8, sample_rate=50555000 sample_gain=1 May 8 11:31:29 mythbox kernel: [ 3213.096467] CX24123: cx24123_pll_tune: frequency=1883000 May 8 11:31:29 mythbox kernel: [ 3213.096469] CX24123: cx24123_pll_writereg: pll writereg called, data=0x00100e3f May 8 11:31:29 mythbox kernel: [ 3213.103034] CX24123: cx24123_pll_writereg: pll writereg called, data=0x000a0180 May 8 11:31:29 mythbox kernel: [ 3213.109426] CX24123: cx24123_pll_writereg: pll writereg called, data=0x00000220 May 8 11:31:29 mythbox kernel: [ 3213.115652] CX24123: cx24123_pll_writereg: pll writereg called, data=0x001f4746 May 8 11:31:29 mythbox kernel: [ 3213.123521] CX24123: cx24123_pll_tune: pll tune VCA=1052223, band=544, pll=2049862
>>> tuning status == 0x01
>>> tuning status == 0x01
>>> tuning status == 0x01
>>> tuning status == 0x01
>>> tuning status == 0x01
>>> tuning status == 0x01
>>> tuning status == 0x01
>>> tuning status == 0x01
WARNING: >>> tuning failed!!!
ERROR: initial tuning failed
dumping lists (0 services)
Done.
root@mythbox:/usr/src/v4l-dvb# May 8 11:31:31 mythbox kernel: [ 3215.102520] cx88[0]/2-dvb: cx8802_dvb_advise_release


*What have i missed?*

Can anyone suggest anything else?

Thanks, Rex
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux