OK,
I didn't realise that.

I'll fix it when I get back from my weekend-trip.

GWater

2009/1/16 Brian Johnson <[email protected]>

>
> No i meean inside usb_sn9c20x function we check the values of all our
> module params to make sure the are valid and if not we print a warning
> and set them to the default value. that needs to be updated for the
> jpeg one since right now it only allows values of 0 or 1 so will
> overwrite the default value of 2 with 1 and auto detection will never
> work.
>
> On Fri, Jan 16, 2009 at 6:11 AM, GWater <[email protected]> wrote:
> > Brian Johnson schrieb:
> >>
> >> Yeah thats it. you still need to modify usb_sn9c20x_init o allow 2 as
> >> a valid value for the jpeg parameter, bot except for that it is looks
> >> fine to me.
> >>
> >> On Thu, Jan 15, 2009 at 2:49 PM, GWater <[email protected]>
> wrote:
> >>>
> >>> Brian Johnson schrieb:
> >>>>
> >>>> Ok i also realized ou will probably want to add a field to our device
> >>>> structure called jpeg copy the module param value to that durring the
> >>>> default_settings call and check it to see if it is set to auto and if
> >>>> so update it. Then the various checks that our driver does to
> >>>> enable/disable jeg format shoud now check this device specific value.
> >>>> This shold make things work as expected when auto detection is turned
> >>>> on and you have moe then one device attached.
> >>>>
> >>>
> >>> Is this what you had in mind?
> >>>
> >>> GWater
> >>>
> >>> From a0acb2afe1d08196df6fe94ff72b12172d6e47c2 Mon Sep 17 00:00:00 2001
> >>> From: GWater <[email protected]>
> >>> Date: Wed, 14 Jan 2009 23:16:15 +0100
> >>> Subject: [PATCH] Disable JPEG for high-speed USB 2.0 by default
> >>>
> >>> Signed-off-by: GWater <[email protected]>
> >>> ---
> >>>  sn9c20x-usb.c  |   12 ++++++++++--
> >>>  sn9c20x-v4l2.c |    4 ++--
> >>>  sn9c20x.h      |    2 ++
> >>>  3 files changed, 14 insertions(+), 4 deletions(-)
> >>>
> >>> diff --git a/sn9c20x-usb.c b/sn9c20x-usb.c
> >>> index f001016..1afa714 100644
> >>> --- a/sn9c20x-usb.c
> >>> +++ b/sn9c20x-usb.c
> >>> @@ -57,7 +57,7 @@ static __u8 bulk;
> >>>  * @var jpeg
> >>>  *  Module parameter to enable/disable JPEG format
> >>>  */
> >>> -__u8 jpeg = 1;
> >>> +__u8 jpeg = 2;
> >>>
> >>>  /**
> >>>  * @var bandwidth
> >>> @@ -728,6 +728,14 @@ static int usb_sn9c20x_default_settings(struct
> >>> usb_sn9c20x *dev)
> >>>       v4l2_set_control_default(dev, V4L2_CID_AUTO_WHITE_BALANCE,
> >>> auto_whitebalance);
> >>>       v4l2_set_control_default(dev, V4L2_CID_EXPOSURE, exposure);
> >>>
> >>> +       if (jpeg == 2) {
> >>> +               if (dev->udev->speed == USB_SPEED_HIGH && bandwidth ==
> 8)
> >>> +                       dev->jpeg = 0;
> >>> +               else
> >>> +                       dev->jpeg = 1;
> >>> +       } else
> >>> +               dev->jpeg = jpeg;
> >>> +
> >>>       sn9c20x_set_resolution(dev, 640, 480);
> >>>       sn9c20x_set_format(dev, sn9c20x_fmts[0].pix_fmt);
> >>>
> >>> @@ -1029,7 +1037,7 @@ module_exit(usb_sn9c20x_exit);    /**< @brief
> >>> Module
> >>> exit */
> >>>
> >>>
> >>>  MODULE_PARM_DESC(fps, "Frames per second [10-30]");            /**<
> >>> @brief
> >>> Description of 'fps' parameter */
> >>> -MODULE_PARM_DESC(jpeg, "Enable JPEG support (default is enabled)");
> >>> +MODULE_PARM_DESC(jpeg, "Enable JPEG support (default is
> auto-detect)");
> >>>  MODULE_PARM_DESC(bulk, "Enable Bulk transfer (default is to use
> ISOC)");
> >>>  MODULE_PARM_DESC(bandwidth, "Bandwidth Setting (only for ISOC)");
> >>>  MODULE_PARM_DESC(hflip, "Horizontal image flip");              /**<
> >>> @brief
> >>> Description of 'hflip' parameter */
> >>> diff --git a/sn9c20x-v4l2.c b/sn9c20x-v4l2.c
> >>> index 5c7d47b..4ecec35 100644
> >>> --- a/sn9c20x-v4l2.c
> >>> +++ b/sn9c20x-v4l2.c
> >>> @@ -922,7 +922,7 @@ int sn9c20x_vidioc_enum_fmt_cap(struct file *file,
> >>> void
> >>> *priv,
> >>>       fmt->flags = 0;
> >>>       fmt->pixelformat = sn9c20x_fmts[fmt->index].pix_fmt;
> >>>
> >>> -       if (fmt->pixelformat == V4L2_PIX_FMT_JPEG && jpeg == 0)
> >>> +       if (fmt->pixelformat == V4L2_PIX_FMT_JPEG && dev->jpeg == 0)
> >>>               return -EINVAL;
> >>>
> >>>       memcpy(fmt->description, sn9c20x_fmts[fmt->index].desc, 32);
> >>> @@ -951,7 +951,7 @@ int sn9c20x_vidioc_try_fmt_cap(struct file *file,
> >>> void
> >>> *priv,
> >>>       if(fmt->fmt.pix.field != V4L2_FIELD_NONE)
> >>>               return -EINVAL;
> >>>  */
> >>> -       if (fmt->fmt.pix.pixelformat == V4L2_PIX_FMT_JPEG && jpeg == 0)
> >>> +       if (fmt->fmt.pix.pixelformat == V4L2_PIX_FMT_JPEG && dev->jpeg
> ==
> >>> 0)
> >>>               return -EINVAL;
> >>>
> >>>       for (index = 0; index < SN9C20X_N_FMTS; index++)
> >>> diff --git a/sn9c20x.h b/sn9c20x.h
> >>> index d5d2473..3db941f 100644
> >>> --- a/sn9c20x.h
> >>> +++ b/sn9c20x.h
> >>> @@ -429,6 +429,8 @@ struct usb_sn9c20x {
> >>>
> >>>       int resolution;
> >>>
> >>> +       __u8 jpeg;
> >>> +
> >>>       unsigned int frozen:1;
> >>>       struct sn9c20x_video_queue queue;
> >>>       struct sn9c20x_camera camera;
> >>> --
> >>> 1.6.0.6
> >>>
> >>>
> >>>
> >>
> >> >>
> >
> > Why do you want 2 as a parameter?
> >
> > GWater
> >
> >
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
Lets make microdia webcams plug'n play, (currently plug'n pray)
To post to this group, send email to [email protected]
Visit us online https://groups.google.com/group/microdia
-~----------~----~----~----~------~----~------~--~---

Reply via email to