[linux-dvb] [PATCH] Mantis Bug (was Technisat HD2 cannot szap/scan)

Hans Werner HWerner4 at gmx.de
Mon Jan 5 18:36:06 CET 2009


> Hi,
> 
> with your patch i run into following problem on a Terratec Cinergy S2 PCI
> HD :
> 
> [  143.818103] stb6100_set_frequency: Frequency=1588000
> [  143.826681] stb6100_get_frequency: Frequency=1587990
> [  143.840867] stb6100_get_bandwidth: Bandwidth=10000000
> [  150.568018] mantis_ack_wait (0): Slave RACK Fail !
> [  150.568372] stb6100_set_bandwidth: Invalid parameter
> [  156.596525] mantis_ack_wait (0): Slave RACK Fail !
> [  156.596880] stb6100_get_bandwidth: Invalid parameter
> [  162.784014] mantis_ack_wait (0): Slave RACK Fail !
> [  162.784368] stb6100_get_bandwidth: Invalid parameter
> [  168.848014] mantis_ack_wait (0): Slave RACK Fail !
> [  168.848368] stb6100_set_frequency: Invalid parameter
> [  174.896016] mantis_ack_wait (0): Slave RACK Fail !
> [  174.896371] stb6100_get_frequency: Invalid parameter
> 
> cu
> 
> Edgar (gimli) Hucek

Hi Edgar,

I don't believe the Slave RACK problem is caused by my LNBP21 patch -- I saw it before
and I posted a fix for it already at
http://linuxtv.org/pipermail/linux-dvb/2008-December/030829.html

Here it is again:

diff -r 28324bc3d694 linux/drivers/media/dvb/mantis/mantis_i2c.c
--- a/linux/drivers/media/dvb/mantis/mantis_i2c.c
+++ b/linux/drivers/media/dvb/mantis/mantis_i2c.c
@@ -42,7 +42,7 @@ static int mantis_ack_wait(struct mantis
                dprintk(verbose, MANTIS_DEBUG, 1, "Master !I2CDONE");
                rc = -EREMOTEIO;
        }
-       while (!(mantis->mantis_int_stat & MANTIS_INT_I2CRACK)) {
+       while (!(mantis->mantis_int_stat & MANTIS_INT_I2CDONE)) {
                dprintk(verbose, MANTIS_DEBUG, 1, "Waiting for Slave RACK");
                mantis->mantis_int_stat = mmread(MANTIS_INT_STAT);
                msleep(5);


Regards,
Hans


> >> With the Azurewave AD-SP400 (Twinhan VP-1041 / Technisat HD2 /
> >> ?poss. Terratec Cinergy S2 PCI HD)
> >> there seems to be a driver bug when tuning some channels immediately
> >> after boot or after resuming from sleep (which is entered after 1
> minute
> >> idle).
> >> So the initialisation seems to be unsuitable for tuning some channels.
> >>
> >> But... if another channel is tuned successfully first then the bad
> >> channels *CAN* be tuned
> >> (if you are quick and do it before it sleeps again).
> >>
> >> It looks like the problem channels are all horizontal but perhaps other
> >> parameters are
> >> relevant too/instead.
> >>
> >> Can anyone help?
> >> Instructions for reproducing the problem on Astra 19.2E or Hotbird
> 13.0E
> >> are below.
> >>
> >> I don't know whether the problem is in the mantis, stb0899, stb6100 or
> >> lnbp21 code.
> >
> > Problem solved with the patch below.
> >
> > I found that both problems tuning channels (#1 immediately after boot
> and
> > #2 after sleep) are
> > caused by the lnbp21 voltage OFF setting. To fix #1: the LNB voltage
> needs
> > to be turned on when
> > the lnbp21 is attached, and to fix #2: turning the voltage off on sleep
> > needs to be disabled.
> >
> > To keep the voltage on, we need to make sure that register bit LNBP21_EN
> > is always set.
> >
> > I note that as well as controlling the voltage regulator blocks this
> > register bit also controls
> > a loopthrough switch -- clearing the bit takes the lnbp21 out of the LNB
> > line, which could be
> > used to allow other circuitry to do LNB power and control. I don't have
> > any info on how the
> > card is actually wired. It seems best to keep the EN bit always set,
> > because I know clearing
> > it causes trouble.
> >
> > It turns out there is already a mechanism for specifying register bits
> to
> > be overridden in
> > the lnbp21 attach call (already used for another card) and we just need
> to
> > apply the following
> > one-line patch to the VP-1041 attach.
> >
> > This is against the repository at
> > http://mercurial.intuxication.org/hg/s2-liplianin.
> >
> > Signed-off-by: Hans Werner <hwerner4 at gmx.de>
> >
> > diff -r 28324bc3d694 linux/drivers/media/dvb/mantis/mantis_dvb.c
> > --- a/linux/drivers/media/dvb/mantis/mantis_dvb.c
> > +++ b/linux/drivers/media/dvb/mantis/mantis_dvb.c
> > @@ -239,7 +239,7 @@ int __devinit mantis_frontend_init(struc
> >                         vp1041_config.demod_address);
> >
> >                         if (stb6100_attach(mantis->fe,
> > &vp1041_stb6100_config, &mantis->adapter)) {
> > -                               if (!lnbp21_attach(mantis->fe,
> > &mantis->adapter, 0, 0)) {
> > +                               if (!lnbp21_attach(mantis->fe,
> > &mantis->adapter, LNBP21_EN, 0)) {
> >                                         printk("%s: No LNBP21 found!\n",
> > __FUNCTION__);
> >                                         mantis->fe = NULL;
> >                                 }
> >
> >
> >
> > Regards,
> > Hans

-- 
Release early, release often.

Psssst! Schon vom neuen GMX MultiMessenger gehört? Der kann`s mit allen: http://www.gmx.net/de/go/multimessenger



More information about the linux-dvb mailing list