[linux-dvb] [PATCH] add DVB-S2 support to frontend.h

Marcel Siegert mws at linuxtv.org
Wed Mar 1 11:28:27 CET 2006


hi andreas,

On Tuesday 28 February 2006 20:01, Andreas Oberritter wrote:
> Hi Marcel,
> 
> On Mon, 2006-02-27 at 22:59 +0100, Marcel Siegert wrote:
> > +/*! describes the available modulation types. */
> > +enum dvb_fe_modulation {
> > +	DVB_FE_MOD_QPSK		= (1 << 0),
> > +	DVB_FE_MOD_QAM_16	= (1 << 1),
> > +	DVB_FE_MOD_QAM_32	= (1 << 2),
> > +	DVB_FE_MOD_QAM_64	= (1 << 3),
> > +	DVB_FE_MOD_QAM_128	= (1 << 4),
> > +	DVB_FE_MOD_QAM_256	= (1 << 5),
> > +	DVB_FE_MOD_QAM_AUTO	= (1 << 6),
> > +	DVB_FE_MOD_2_VSB	= (1 << 7),
> > +	DVB_FE_MOD_4_VSB	= (1 << 8),
> > +	DVB_FE_MOD_8_VSB	= (1 << 9),
> > +	DVB_FE_MOD_16_VSB	= (1 << 10),
> > +	DVB_FE_MOD_8_PSK	= (1 << 11),
> > +	DVB_FE_MOD_BPSK		= (1 << 12),
> > +	DVB_FE_MOD_MOD_UNKNOWN	= (1 << 31)
> > +};
> 
> why do we need DVB_FE_MOD_QAM_AUTO and DVB_FE_MOD_MOD_UNKNOWN? I suggest
> replacing them with DVB_FE_MOD_AUTO. Maybe MOD_UNKNOWN was meant to be
> returned by FE_GET_FRONTEND, but if the modulation is unknown, then it
> is very unlikely that it was possible to lock the frontend and therefore
> calling FE_GET_FRONTEND in such a case seems to be useless. I think
> FE_GET_FRONTEND should only replace the known bits of the tuning
> parameters as it does today.

as i mentioned some lines above within the patch, i took those structs via c&p from the api v4 cvs.
i think that michael had reasons to name them like this, but i do agree with your argumentation.
i changed that inside my tree now.

removed DVB_FE_MOD_QAM_AUTO and DVB_FE_MOD_MOD_UNKNOWN
added DVB_FE_MOD_AUTO

> 
> I also wonder why QAM and VSB values are sorted by size, but PSK values
> are sorted alphanumerically.

hmm, within this thread there was a small part, i think johannes did that, that
stated we should name the modulations according to the standard.
the standard calls them 8PSK. i did a small change in ordering these enumeration values
in my tree, but that will occur next time also, when a new modulation type is introduced.

> > +/*! describes common supported frontend capabilities. */
> > +enum dvb_fe_common_cap {
> > +	DVB_FE_CAN_INVERSION_AUTO   = (1 << 0), /*!< fixme */
> > +	DVB_FE_CAN_RECOVER          = (1 << 1), /*!< frontend can recover from a cable unplug automatically */
> > +	DVB_FE_CAN_MUTE_TS          = (1 << 2), /*!< frontend can stop spurious TS data output */
> > +	DVB_FE_SUP_HIGH_LNB_VOLTAGE = (1 << 31), /*!< fixme, frontend can deliver higher lnb voltages */
> > +};
> 
> Why are there FIXMEs?
as told before (c&p) from api v4 tree - removed "fixme" in comments within my tree.
 
> > +/*! describes other available, frontend type dependent capabilities. */
> > +enum dvb_fe_other_cap {
> > +	DVB_FE_CAN_TRANSMISSION_MODE_AUTO = (1 << 0), /*!< fixme (DVB-T specific) */
> > +	DVB_FE_CAN_BANDWIDTH_AUTO         = (1 << 1), /*!< fixme (DVB-T specific) */
> > +	DVB_FE_CAN_GUARD_INTERVAL_AUTO    = (1 << 2), /*!< fixme (DVB-T specific) */
> > +	DVB_FE_CAN_HIERARCHY_AUTO         = (1 << 31), /*!< fixme (DVB-T specific) */
> > +};
> 
> Same here. Well, I know these are specific to DVB-T and proably DVB-H,
> but how are these FIXMEs supposed to get fixed?
i removed the comments. i will ask michael why he tagged them fixme.

> > @@ -126,7 +194,8 @@
> >  	FE_HAS_SYNC	= 0x08,   /*  found sync bytes  */
> >  	FE_HAS_LOCK	= 0x10,   /*  everything's working... */
> >  	FE_TIMEDOUT	= 0x20,   /*  no lock within the last ~2 seconds */
> > -	FE_REINIT	= 0x40    /*  frontend was reinitialized,  */
> > +	FE_REINIT	= 0x40,   /*  frontend was reinitialized,  */
> > +	FE_EXTENDED_TP  = 0x80    /*  providing new informations */
> >  } fe_status_t;			  /*  application is recommended to reset */
> 
> First, it's "new information". What shall be reset and what new kind of
> information is provided through which interface?

comments were mixed up. sorry for that. fixed that - and changed  the "new information" comment to 
a more usesable description.

-----------snip----------------------
	FE_TIMEDOUT	= 0x20,   /*  no lock within the last ~2 seconds */
	FE_REINIT	= 0x40,   /*  frontend was reinitialized,  */
			  	  /*  application is recommended to reset */
				  /*  DiSEqC, tone and parameters */
	FE_EXTENDED_TP  = 0x80    /*  dvb_frontend_event does contain the fe_type member and */
				  /*  the dvb_frontend_parameters in addition of __dvb_fronend_parameters_old */
} fe_status_t;
----------snip-----------------------
  
> > +struct dvb_dvbs2_parameters {
> > +	__u32			symbol_rate;    /* symbol rate in Symbols per second */
> 
> It's symbols, not Symbols.
typo fixed. - also fixed that typo within the dvbs/dvbc/dvbt structs that kept this typo already a long time in cvs ;)
 
thanks for your participation :)

best regards 

marcel



More information about the linux-dvb mailing list