Hi Bradon,

On Saturday 16 February 2008, Brandon Philips wrote:
> Allow people to test quirks without recompiling but strongly discourage
> the use with a kernel log message.  Example:
>
>   modprobe uvcvideo testquirk=10 # UVC_QUIRK_STREAM_NO_FID

Thanks for the patch. I applied a slightly different version with a modified 
kernel log message.

> Signed-off-by: Brandon Philips <[EMAIL PROTECTED]>
>
> ---
>  uvc_driver.c |   14 +++++++++++++-
>  1 file changed, 13 insertions(+), 1 deletion(-)
>
> Index: uvc/uvc_driver.c
> ===================================================================
> --- uvc.orig/uvc_driver.c
> +++ uvc/uvc_driver.c
> @@ -51,6 +51,8 @@
>  #define DRIVER_VERSION               "v0.1.0"
>  #endif
>
> +static unsigned int uvc_testquirk_param;
> +
>  /*
> ------------------------------------------------------------------------ *
> Control, formats, ...
>   */
> @@ -1539,7 +1541,7 @@ static int uvc_probe(struct usb_interfac
>       dev->udev = usb_get_dev(udev);
>       dev->intf = usb_get_intf(intf);
>       dev->intfnum = intf->cur_altsetting->desc.bInterfaceNumber;
> -     dev->quirks = id->driver_info;
> +     dev->quirks = id->driver_info | uvc_testquirk_param;
>
>       /* Parse the Video Class control descriptor */
>       if (uvc_parse_control(dev) < 0) {
> @@ -1553,6 +1555,14 @@ static int uvc_probe(struct usb_interfac
>               le16_to_cpu(udev->descriptor.idVendor),
>               le16_to_cpu(udev->descriptor.idProduct));
>
> +     if (uvc_testquirk_param != 0) {
> +             uvc_printk(KERN_INFO, "WARNING: testquirk param (%d) is set, "
> +                                     "this is for testing only.\nPlease "
> +                                     "report required quirks to the "
> +                                     "linux-uvc mailing list.\n",
> +                                     uvc_testquirk_param);

'\n' in log messages will confuse printk. The log level will be lost. A patch 
has been sent in January on the LKML to fix that. In the meantime I'll use 
two printk statements.

> +     }
> +
>       /* Initialize controls */
>       if (uvc_ctrl_init_device(dev) < 0)
>               goto error;
> @@ -1877,6 +1887,8 @@ module_exit(uvc_cleanup);
>  unsigned int uvc_trace_param = 0;
>  module_param_named(trace, uvc_trace_param, uint, S_IRUGO|S_IWUSR);
>
> +module_param_named(testquirk, uvc_testquirk_param, uint, S_IRUGO|S_IWUSR);
> +
>  MODULE_AUTHOR(DRIVER_AUTHOR);
>  MODULE_DESCRIPTION(DRIVER_DESC);
>  MODULE_LICENSE("GPL");

Best regards,

Laurent Pinchart
_______________________________________________
Linux-uvc-devel mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/linux-uvc-devel

Reply via email to