Hi Bhupesh,

Thanks for the patch.

On Thursday 21 March 2013 13:56:09 Bhupesh Sharma wrote:
> This patch adds the support for 'get_unmapped_area' in UVC gadget
> which is called when the 'mmap' system call is executed on MMUless
> architectures.
> 
> Signed-off-by: Bhupesh Sharma <bhupesh.sha...@st.com>

Acked-by: Laurent Pinchart <laurent.pinch...@ideasonboard.com>

> ---
>  drivers/usb/gadget/uvc_queue.c |   18 ++++++++++++++++++
>  drivers/usb/gadget/uvc_v4l2.c  |   15 +++++++++++++++
>  2 files changed, 33 insertions(+), 0 deletions(-)
> 
> diff --git a/drivers/usb/gadget/uvc_queue.c b/drivers/usb/gadget/uvc_queue.c
> index 3f5eeae..d0b8e38 100644
> --- a/drivers/usb/gadget/uvc_queue.c
> +++ b/drivers/usb/gadget/uvc_queue.c
> @@ -228,6 +228,24 @@ static int uvc_queue_mmap(struct uvc_video_queue
> *queue, return ret;
>  }
> 
> +#ifndef CONFIG_MMU
> +/*
> + * Get unmapped area.
> + *
> + * NO-MMU arch need this function to make mmap() work correctly.
> + */
> +static unsigned long uvc_queue_get_unmapped_area(struct uvc_video_queue
> *queue, +             unsigned long pgoff)
> +{
> +     unsigned long ret;
> +
> +     mutex_lock(&queue->mutex);
> +     ret = vb2_get_unmapped_area(&queue->queue, 0, 0, pgoff, 0);
> +     mutex_unlock(&queue->mutex);
> +     return ret;
> +}
> +#endif
> +
>  /*
>   * Cancel the video buffers queue.
>   *
> diff --git a/drivers/usb/gadget/uvc_v4l2.c b/drivers/usb/gadget/uvc_v4l2.c
> index 7d91740..b83d0ad 100644
> --- a/drivers/usb/gadget/uvc_v4l2.c
> +++ b/drivers/usb/gadget/uvc_v4l2.c
> @@ -340,6 +340,18 @@ uvc_v4l2_poll(struct file *file, poll_table *wait)
>       return uvc_queue_poll(&uvc->video.queue, file, wait);
>  }
> 
> +#ifndef CONFIG_MMU
> +static unsigned long uvc_v4l2_get_unmapped_area(struct file *file,
> +             unsigned long addr, unsigned long len, unsigned long pgoff,
> +             unsigned long flags)
> +{
> +     struct video_device *vdev = video_devdata(file);
> +     struct uvc_device *uvc = video_get_drvdata(vdev);
> +
> +     return uvc_queue_get_unmapped_area(&uvc->video.queue, pgoff);
> +}
> +#endif
> +
>  static struct v4l2_file_operations uvc_v4l2_fops = {
>       .owner          = THIS_MODULE,
>       .open           = uvc_v4l2_open,
> @@ -347,5 +359,8 @@ static struct v4l2_file_operations uvc_v4l2_fops = {
>       .ioctl          = uvc_v4l2_ioctl,
>       .mmap           = uvc_v4l2_mmap,
>       .poll           = uvc_v4l2_poll,
> +#ifndef CONFIG_MMU
> +     .get_unmapped_area = uvc_v4l2_get_unmapped_area,
> +#endif
>  };
-- 
Regards,

Laurent Pinchart

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to