[linux-dvb] [PATCH/RFC] add dvb-s2 support to frontend.h and
dvb_frontend.[h|c]
Marcel Siegert
mws at linuxtv.org
Tue Apr 18 18:36:35 CEST 2006
On Saturday 15 April 2006 22:09, Alan Nisota wrote:
> On 4/15/06, Alan Nisota <alannisota at gmail.com> wrote:
> > The issue I have is
> > that set_frontend is called from dvb_frontend_swzigzag_autotune and
> > dvb_frontend_swzigzag both of which examine fepriv->parameters. Do
> > you expect to update these functions to use fepriv->parameters_new (I
> > assume so)? if so, how do you know when to use one vs the other?
>
> I made some assumptions about your intentions and completed the
> implementation in dvb_frontend.c. I then finished off the driver, but
> I haven't been able to test yet, as I still need to update mythtv to
> support the new ioctls.
>
nice, thanks. as told in that email before, these things came a bit late in my point of view.
i must apologise i missed them.
> I hope this is approximately what you intended.
>
> Index: v4l-dvb/linux/drivers/media/dvb/dvb-core/dvb_frontend.c
> ===================================================================
> --- v4l-dvb.orig/linux/drivers/media/dvb/dvb-core/dvb_frontend.c
> 2006-04-15 13:07:55.000000000 -0700
> +++ v4l-dvb/linux/drivers/media/dvb/dvb-core/dvb_frontend.c
> 2006-04-15 13:07:47.000000000 -0700
> @@ -272,7 +272,7 @@
> /* are we using autoinversion? */
> autoinversion = ((!(fe->ops->info.caps & FE_CAN_INVERSION_AUTO)) &&
> ((fepriv->current_standard_set &&
> - fepriv->parameters_new.inversion == INVERSION_AUTO) ||;
> + fepriv->parameters_new.inversion == INVERSION_AUTO) ||
> (! fepriv->current_standard_set &&
> fepriv->parameters.inversion == INVERSION_AUTO)));
>
> @@ -996,12 +996,22 @@
> break;
> }
>
> + if (fepriv->parameters_new.u)
> + kfree(fepriv->parameters_new.u);
> +
> castedparg = (struct dvb_frontend_parameters_new *)parg;
> memcpy (&fepriv->parameters_new, parg,
> sizeof (struct dvb_frontend_parameters_new));
>
> memset(&fetunesettings, 0, sizeof(struct
> dvb_frontend_tune_settings));
>
> + fepriv->parameters_new.u = (struct
> frontend_parameters_union *) kmalloc(castedparg->size, GFP_KERNEL);
> + if ( !fepriv->parameters_new.u ) {
> +
> + err = -ENOMEM;
> + break;
> + }
> + memcpy(fepriv->parameters_new.u, castedparg->u,
> castedparg->size);
> /* be sure struct union pointer is set - even if it is NULL */
> fetunesettings.parameters_new.u = (struct
> frontend_parameters_union *) kmalloc(castedparg->size, GFP_KERNEL);
> if ( !fetunesettings.parameters_new.u ) {
> @@ -1066,7 +1076,13 @@
> printk("dvb-core: FE_ATSC not handled yet.\n");
> break;
> case FE_DVB_S2:
> - printk("dvb-core: FE_DVB_S2 not
> handled yet.\n");
> + if (fepriv->current_standard != FE_DVB_S2) {
> + err = -EINVAL;
> + break;
> + }
> + fepriv->min_delay = HZ/20;
> + fepriv->step_size =
> fepriv->parameters_new.u->qpsk2.symbol_rate / 16000;
> + fepriv->max_drift =
> fepriv->parameters_new.u->qpsk2.symbol_rate / 2000;
> break;
>
> }
>
regards
marcel
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 191 bytes
Desc: not available
Url : http://www.linuxtv.org/pipermail/linux-dvb/attachments/20060418/97c96974/attachment.pgp
More information about the linux-dvb
mailing list