[linux-dvb] S2API tune return code - potential problem?

Darron Broad darron at kewl.org
Wed Nov 12 22:11:16 CET 2008

In message <c74595dc0811121304o44e4270am67173ed5857f6945 at mail.gmail.com>, "Alex Betis" wrote:
>On Wed, Nov 12, 2008 at 10:54 PM, Darron Broad <darron at kewl.org> wrote:
>> In message <c74595dc0811121232s48a95a14v93edf27360ed5c21 at mail.gmail.com>,
>> "Alex Betis" wrote:
>> >
>> >Hi All,
>> Hi.
>> >A question regarding the error code returned from the driver when using
>> >DTV_TUNE property.
>> >Following the code I came to dvb_frontend_ioctl_legacy function and
>> reached
>> >the FE_SET_FRONTEND case.
>> >Looking on the logic I couldn't see any handling of error tuning, an event
>> >is added to the frontend and zero is returned:
>> >
>> >        fepriv->state = FESTATE_RETUNE;
>> >        dvb_frontend_wakeup(fe);
>> >        dvb_frontend_add_event(fe, 0);
>> >        fepriv->status = 0;
>> >        err = 0;
>> >        break;
>> >
>> >How should an application know that DTV_TUNE command succeed?
>> >Monitoring the LOCK bit is not good, here's an example why I ask the
>> >question:
>> >
>> >Assuming the cx24116 driver is locked on a channel. Application sends tune
>> >command to another channel while specifying
>> >AUTO settings for modulation and FEC. The driver for that chip cant handle
>> >AUTO settings and return error, while its still connected
>> >to previous channel. So in that case LOCK bit will be ON, while the tune
>> >command was ignored.
>> >
>> >I thought of an workaround to query the driver for locked frequency and
>> >check whenever its in bounds of frequency that was ordered
>> >to be tuned + - some delta, but that's a very dirty solution.
>> >
>> >Any thoughts? Or I'm missing something?
>> Correct me if I am wrong, but I remember looking at this before...
>> The problem is that no capabilities are available for S2API demods as yet
>> so TUNE always succeeds whether the parameters are wrong or right.
>> What is needed is:
>> 1. caps for s2api aware demods.
>> 2. extend dvb_frontend_check_parameters() for s2api aware demods.
>You mean passing the parameter to the demods to be checked before performing
>the tuning?

Not entirely, I mean more that they expose their caps. This isn't available as yet.

>Is there an example of that usage?


>What about some unexpected failures that can't be checked before the tuning?

I am only thinking about the legitimacy of the parameters not whether
they work or not.

>Can't think of a real example since I'm not too familiar with
>the code.


>I thought about a property of "last error code" that can be queried from the
>driver, but in that case the application has to be aware when
>the tuning is finished.

Tuning actually occurs in the frontend thread. The frontend status
tells you if it worked or not but not whether the parameters were
wrong. I agree that perhaps broken parameters could de-tune, but
there are not enough rules for s2api as yet to know how to proceed.



 // /
{:)==={ Darron Broad <darron at kewl.org>
 \\ \ 

More information about the linux-dvb mailing list