dishnetwork support for Nexus 2.3 (was: Re: [linux-dvb] questions about STV0229_LOCKOUTPUT)

Oliver Endriss o.endriss at gmx.de
Sat Nov 12 17:24:49 CET 2005


Oliver Endriss wrote:
> Andrew de Quincey wrote:
> > On Thursday 10 Nov 2005 13:00, Andrew de Quincey wrote:
> > > On Wednesday 09 Nov 2005 01:34, Oliver Endriss wrote:
> > > > Andrew de Quincey wrote:
> > > > > On Tuesday 08 Nov 2005 20:35, Oliver Endriss wrote:
> > > > > > Imho the dish support in stv0299.c should be replaced by a generic
> > > > > > implementation in dvb_frontend.c which can be used by all frontends.
> > > > > > It should be easy to replace the stv0299-specific set_voltage stuff
> > > > > > by fe->ops->set_voltage() calls.
> > > > >
> > > > > I seem to remember asking the original author about that when he added
> > > > > it. He said the problem was that it is really timing specific - he had
> > > > > to specifically optimise the stv0299 code so that it met the
> > > > > requirements. I don't have any dish networks hardware myself so I can't
> > > > > confirm or deny this.
> > > >
> > > > Neither do I.
> > >
> > > I had a quick look over that code. Basically it transmits a 9 bit command
> > > byte using 13v/18v levels to represent 0/1. I didn't see any reason why it
> > > wouldn't be possible to move the signalling algorithm itself into the
> > > dvb_frontend core code, where it would just call the appropriate frontend
> > > set_voltage methods. Of course, timing is very important using such a
> > > simple method - so we'll have to see.
> > >
> > > If I have a go at developing that, would someone with suitable dish
> > > networks equipment be able to test a couple of patches?
> > 
> > I'm talking absolute rubbish. I didn't spot the generic implementation of the 
> > dish networks protocol which is already present in dvb_frontend.c, sorry.
> 
> When I wrote the first message I didn't spot it either. ;-)
> 
> Then I found the generic code and suggested that Jeremy should try
> 
> |               case 0x000E: /* Hauppauge/TT Nexus-S rev 2.3 */
> |                        /* ALPS BSBE1 */
> |                        av7110->fe = stv0299_attach(&alps_bsbe1_config, &av7110->i2c_adap);
> |                        if (av7110->fe) {
> |                                av7110->fe->ops->set_voltage = lnbp21_set_voltage;
> |                                av7110->fe->ops->dishnetwork_send_legacy_command = NULL;
> |                        }
> |                        break;
> 
> which will enable the generic code.
> I'll commit it if someone has confirmed that it is working.

Done. Jeremy confirmed that it works.

@all:
If you override fe->ops->set_voltage() in the card driver you should
also override fe->ops->dishnetwork_send_legacy_command().

Otherwise dishnetwork support will fail if the frontend driver
implements its own dishnetwork routine (as the stv0299 driver does).

Oliver

-- 
--------------------------------------------------------
VDR Remote Plugin available at
http://www.escape-edv.de/endriss/vdr/
--------------------------------------------------------



More information about the linux-dvb mailing list