Re: [PATCH/RFC] add dvb-s2 support to frontend.h and dvb_frontend.[h|c]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Saturday 15 April 2006 22:09, Alan Nisota wrote:
> On 4/15/06, Alan Nisota <alannisota@xxxxxxxxx> 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

Attachment: pgp6AQLnai8oi.pgp
Description: PGP signature

_______________________________________________

linux-dvb@xxxxxxxxxxx
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb

[Index of Archives]     [Linux Media]     [Video 4 Linux]     [Asterisk]     [Samba]     [Xorg]     [Xfree86]     [Linux USB]

  Powered by Linux