[linux-dvb] [PATCH] add device node locking possibility to dvbcore

Oliver Endriss o.endriss at gmx.de
Sun Aug 19 16:26:52 CEST 2007


Manu Abraham wrote:
> Oliver Endriss wrote:
> 
> > Does anyone know, why dvb_shutdown_timeout was introduced initially?
> 
> It was originally introduced looong time back by Obi. Some operations
> still incomplete on close() was the reason stated, IIRC. It had
> something to do with the FF cards ?, dunno.

Hm, for FF cards there is another voodoo parameter in dvb-ttpci:
'pids_off:clear video/audio/PCR PID filters when demux is closed'
Default is 0 which means don't close. ;-(

For FF cards there is one useful(?) application:
If someone does not want to keep szap running after tuning,
he might want to set dvb_shutdown_timeout=0.

This will both
- terminate the fe thread, and
- disable frontend powerdown.

> 
> > I don't have a problem if it will be removed, but I suspect there was a
> > reason for it. Anyway, we should set the default to 0.
> > 
> 
> I think a lot of people have been using it as set to 0. Ah, well that
> includes myself.

Afaics there are several features mixed-up with this parameter:

        if (dvb_shutdown_timeout) {
                if (dvb_powerdown_on_sleep)
                        if (fe->ops.set_voltage)
                                fe->ops.set_voltage(fe, SEC_VOLTAGE_OFF);
                if (fe->ops.tuner_ops.sleep) {
                        fe->ops.tuner_ops.sleep(fe);
                        if (fe->ops.i2c_gate_ctrl)
                                fe->ops.i2c_gate_ctrl(fe, 0);
                }
                if (fe->ops.sleep)
                        fe->ops.sleep(fe);
        }

Questions:
- Why should dvb_shutdown_timeout==0 disable sleep mode?
- Does it make any sense to have LNB power 'on' and the frontend in
  sleep mode? 

Imho these should be controlled by dvb_powerdown_on_sleep alone,
for example:

        if (dvb_powerdown_on_sleep) {
                if (fe->ops.set_voltage)
                        fe->ops.set_voltage(fe, SEC_VOLTAGE_OFF);
                if (fe->ops.tuner_ops.sleep) {
                        fe->ops.tuner_ops.sleep(fe);
                        if (fe->ops.i2c_gate_ctrl)
                                fe->ops.i2c_gate_ctrl(fe, 0);
                }
                if (fe->ops.sleep)
                        fe->ops.sleep(fe);
        }


CU
Oliver

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




More information about the linux-dvb mailing list