> -----Original Message----- > From: Felipe Balbi [mailto:balbi@xxxxxx] > Sent: Monday, June 04, 2012 8:59 PM > To: Bhupesh SHARMA > Cc: balbi@xxxxxx; laurent.pinchart@xxxxxxxxxxxxxxxx; linux- > usb@xxxxxxxxxxxxxxx; linux-media@xxxxxxxxxxxxxxx; > gregkh@xxxxxxxxxxxxxxxxxxx > Subject: Re: [PATCH 4/5] usb: gadget/uvc: Port UVC webcam gadget to use > videobuf2 framework > > On Mon, Jun 04, 2012 at 11:21:13PM +0800, Bhupesh SHARMA wrote: > > Hi Felipe, > > > > > -----Original Message----- > > > From: Felipe Balbi [mailto:balbi@xxxxxx] > > > Sent: Monday, June 04, 2012 8:44 PM > > > To: Bhupesh SHARMA > > > Cc: laurent.pinchart@xxxxxxxxxxxxxxxx; linux-usb@xxxxxxxxxxxxxxx; > > > balbi@xxxxxx; linux-media@xxxxxxxxxxxxxxx; > > > gregkh@xxxxxxxxxxxxxxxxxxx > > > Subject: Re: [PATCH 4/5] usb: gadget/uvc: Port UVC webcam gadget to > > > use > > > videobuf2 framework > > > > > > On Fri, Jun 01, 2012 at 03:08:57PM +0530, Bhupesh Sharma wrote: > > > > This patch reworks the videobuffer management logic present in > the > > > UVC > > > > webcam gadget and ports it to use the "more apt" videobuf2 > > > > framework for video buffer management. > > > > > > > > To support routing video data captured from a real V4L2 video > > > > capture device with a "zero copy" operation on videobuffers (as > > > > they pass > > > from > > > > the V4L2 domain to UVC domain via a user-space application), we > > > > need to support USER_PTR IO method at the UVC gadget side. > > > > > > > > So the V4L2 capture device driver can still continue to use MMAO > > > > IO method and now the user-space application can just pass a > > > > pointer to the video buffers being DeQueued from the V4L2 device > > > > side while Queueing them at the UVC gadget end. This ensures that > > > > we have a "zero-copy" design as the videobuffers pass from the > > > > V4L2 capture > > > device to the UVC gadget. > > > > > > > > Note that there will still be a need to apply UVC specific > payload > > > > headers on top of each UVC payload data, which will still require > > > > a copy operation to be performed in the 'encode' routines of the > > > > UVC > > > gadget. > > > > > > > > Signed-off-by: Bhupesh Sharma <bhupesh.sharma@xxxxxx> > > > > > > this patch doesn't apply. Please refresh on top of v3.5-rc1 or my > > > gadget branch which I will update in a while. > > > > > > > I rebased and submitted my changes on your "gadget-for-v3.5" tag. > > Should I now refresh my patches on top of your "v3.5-rc1" branch ? > > > > I am a bit confused on what is the latest gadget branch to be used > now. > > Thanks for helping out. > > The gadget branch is the branch called gadget on my kernel.org tree. > For some reason this didn't apply. Probably some patches on > drivers/usb/gadget/*uvc* went into v3.5 without my knowledge. Possibly > because I was out for quite a while and asked Greg to help me out > during the merge window. > > Anyway, I just pushed gadget with a bunch of new patches and part of > your series. > Yes. I had sent two patches some time ago for drivers/usb/gadget/*uvc*. For one of them I received an *applied* message from you: > > usb: gadget/uvc: Remove non-required locking from 'uvc_queue_next_buffer' routine > > This patch removes the non-required spinlock acquire/release calls on > > 'queue->irqlock' from 'uvc_queue_next_buffer' routine. > > > > This routine is called from 'video->encode' function (which > translates > > to either 'uvc_video_encode_bulk' or 'uvc_video_encode_isoc') in > 'uvc_video.c'. > > As, the 'video->encode' routines are called with 'queue->irqlock' > > already held, so acquiring a 'queue->irqlock' again in > > 'uvc_queue_next_buffer' routine causes a spin lock recursion. > > > > Signed-off-by: Bhupesh Sharma <bhupesh.sharma@xxxxxx> > > Acked-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx> > > applied, thanks Not sure, if that can cause the merge conflict issue. So now, should I send a clean patchset on top of your 3.5-rc1 branch to ensure the entire new patchset for drivers/usb/gadget/*uvc* is pulled properly? Thanks, Bhupesh
--- Begin Message ---
- Subject: Re: [PATCH V2] usb: gadget/uvc: Remove non-required locking from 'uvc_queue_next_buffer' routine
- From: Felipe Balbi <balbi@xxxxxx>
- Date: Wed, 28 Mar 2012 16:48:33 +0800
- Cc: "balbi@xxxxxx" <balbi@xxxxxx>, "linux-usb@xxxxxxxxxxxxxxx" <linux-usb@xxxxxxxxxxxxxxx>, "laurent.pinchart@xxxxxxxxxxxxxxxx" <laurent.pinchart@xxxxxxxxxxxxxxxx>, spear-devel <spear-devel@xxxxxxxxxxx>, "gregkh@xxxxxxxxxxxxxxxxxxx" <gregkh@xxxxxxxxxxxxxxxxxxx>
- In-reply-to: <85d9f5b7f8946b44389ba3a592c00d0f6405a9eb.1332520342.git.bhupesh.sharma@st.com>
- Reply-to: "balbi@xxxxxx" <balbi@xxxxxx>
- Thread-index: Ac0Mv4IM5v3D+0AZTZqYp089nWGn6w==
- Thread-topic: [PATCH V2] usb: gadget/uvc: Remove non-required locking from 'uvc_queue_next_buffer' routine
- User-agent: Mutt/1.5.21 (2010-09-15)
On Fri, Mar 23, 2012 at 10:23:13PM +0530, Bhupesh Sharma wrote: > This patch removes the non-required spinlock acquire/release calls on > 'queue->irqlock' from 'uvc_queue_next_buffer' routine. > > This routine is called from 'video->encode' function (which translates to either > 'uvc_video_encode_bulk' or 'uvc_video_encode_isoc') in 'uvc_video.c'. > As, the 'video->encode' routines are called with 'queue->irqlock' already held, > so acquiring a 'queue->irqlock' again in 'uvc_queue_next_buffer' routine causes > a spin lock recursion. > > Signed-off-by: Bhupesh Sharma <bhupesh.sharma@xxxxxx> > Acked-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx> applied, thanks -- balbiAttachment: signature.asc
Description: Digital signature
--- End Message ---