On 3/18/07, Darron Broad <darron@xxxxxxxx> wrote:
In message <1a297b360703180500k6150309cm23f9e03650ff3586@xxxxxxxxxxxxxx>, "Manu Abraham" wrote: lo >On 3/18/07, Darron Broad <darron@xxxxxxxx> wrote: >> In message <1a297b360703180432v94b513bj441248b8a59a62c2@xxxxxxxxxxxxxx>, "Manu Abraham" wrote: >> >> lo >> >> >On 3/18/07, Darron Broad <darron@xxxxxxxx> wrote: >> >> In message <1a297b360703180407r63b1e98dj561ae0a0abc8188f@xxxxxxxxxxxxxx>, "Manu Abraham" wrote: >> >> >On 3/18/07, Darron Broad <darron@xxxxxxxx> wrote: >> >> >> >> lo >> >> >> >> >> >> 3. the delivery field has to be set >> >> >> >> >> >> >> > >> >> >> > >> >> >> >delivery system is set using DVBFE_SET_PARAMS, without which you >> >> >> >wouldn't be able to tune to anything, because of the switch statement. >> >> >> >> >> >> the delivery type is indeed taken from the command line and used for >> >> >> logic in the code, however, it's not passed to the driver. >> >> >> >> >> > >> >> >It is. Take a look at the delsys switch in the stb0899 driver. The >> >> >STB0899 depends on the delivery system and the Physical Layer >> >> >parameters to decide which modulation to use. >> >> > >> >> >http://linuxtv.org/hg/~manu/stb0899-c5?f=d6f0bf7681d1;file=linux/drivers/media/dvb/frontends/stb0899_drv.c; >sty >> >le= >> >> >gitweb >> >> >The delivery system is sent to the driver, without which >> >> >tuning/demodulation is impossible "on any multistandard demod" >> >> >> >> specifically Steve's driver needs to the delivery system type >> >> to be set when calling set_params. >> >> >> >> it would appear from your code snippet that your driver is >> >> setting internal state when peforming a query. surely this >> >> is illogical behaviour. >> > >> > >> >Sorry, nope. Since the IOCTL is RW not R >> >> >#define DVBFE_GET_INFO _IOWR('o', 85, struct dvbfe_info) >> >> please explain why you have chosen a function named GET >> to SET internal state. >> > >on a multistandard demod/tuner, what info do you want to get ? Rather >than setting delivery system again which is redundant, it is used with >the same IOCTL > >It doesn't matter whether one uses set_params (does a blind setup of >the frontend) or search (uses a frontend dependant algorithm to do >scan's /szap or say blindscan's) > >just that the delivery system type is cached in one IOCTL call, which >anyway needs to be set to get the relevant delivery system type. i can see what is happening but it doesn't make sense for a developer. GET ought to return current state as is, there is no point making assumptions about what the application may or may be doing next, because that's a total unknown. However, what we do know is that application programmers won't be expecting to change anything in a GET but will be in a SET. whether what the GET returns being useful or not is not interesting to me. >> BTW, the unmodded szap only worked for you because it >> queried the current state inadvertantly setting internal >> state before calling set_params without actually specifying >> the correct internal state. > >> if an application does a query and sets state to DVB-S2 >> then decides to tune to DVB-S the internal state will >> be incorrect. > >Don't think so If you refer to the code Steve wrote you will see that he has made the obvious assumptions about get_info and set_params
In my case i need to set a delivery type to query the relevant delivery type parameter I don't think it is sane to use the same thing twice. It sounds quite illogical to me. For example i would tell the demod, that i need the info for the DELIVERY_SYSTEM_X in one shot, rather doing the same twice (doesn't make any sense to tell the demod twice) (just like some people don't like to be told twice the same thing .. ;-) )
in the former it returns internal state, in the latter sets intermal state. this is a widely understood interface concept.
With one delivery system Manu _______________________________________________ linux-dvb mailing list linux-dvb@xxxxxxxxxxx http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb