[linux-dvb] commit 9344:aa3a67b658e8 (DVB-Core update) breaks tuning of cx24123

Manu Abraham abraham.manu at gmail.com
Mon Oct 27 20:41:55 CET 2008

Hi Mathias,

Matthias Schwarzott wrote:
> Hi Manu, hi Steven!
> It seems an update of dvb-core breaks tuning of cx24123.
> After updating to latest v4l-dvb the nova-s plus card just did no longer lock 
> to any channel. So I bisected it, and found this commit:
> changeset:   9344:aa3a67b658e8
> parent:      9296:e2a8b9b9c294
> user:        Manu Abraham <manu at linuxtv.org>
> date:        Tue Oct 14 23:34:07 2008 +0400
> summary:     DVB-Core update
> http://linuxtv.org/hg/v4l-dvb/rev/aa3a67b658e8
> It basically did update the dvb-kernel-thread and enhanced the code using 
> get_frontend_algo.
> The codepath when get_frontend_algo returns *_ALGO_HW stayed the same, only 
> one line got removed: params = &fepriv->parameter
> Just re-adding that line made my card working again. Either this was lost, or 
> the last two lines using "params" should also be converted to directly 
> use "&fepriv->parameters".

True. In the port, the one line got missed out. Thanks for taking the
time to look at it.

BTW, i don't see any reason why cx24123 should be using HW_ALGO as it is
a standard demodulator. When we have a dedicated microcontroller
employed to do that check, we might like to use HW_ALGO, since it would
simply handle it. Not in the case of standard demodulators. As an
example i could say cinergyT2, dst etc would be candidates for HW_ALGO,
where tuning is offloaded to a onboard microcontroller.

But overall, the fix looks fine though, for the devices that make use of

Please do have a Signed-off-by line so that it can be applied.

Reviewed-by: Manu Abraham <manu at linuxtv.org>


> ------------------------------------------------------------------------
> --- v4l-dvb.orig/linux/drivers/media/dvb/dvb-core/dvb_frontend.c
> +++ v4l-dvb/linux/drivers/media/dvb/dvb-core/dvb_frontend.c
> @@ -584,6 +584,7 @@ restart:
>  				if (fepriv->state & FESTATE_RETUNE) {
>  					dprintk("%s: Retune requested, FESTATE_RETUNE\n", __func__);
> +					params = &fepriv->parameters;
>  					fepriv->state = FESTATE_TUNED;
>  				}

More information about the linux-dvb mailing list