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.sharma@xxxxxx> Acked-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx> > --- > 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 majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html