mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: Kirill Smelkov <kirr@mns.spb.ru>
Cc: Mauro Carvalho Chehab <mchehab@redhat.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	linux-uvc-devel@lists.berlios.de, linux-media@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH, RESEND] uvcvideo: Add FIX_BANDWIDTH quirk to HP Webcam found on HP Mini 5103 netbook
Date: Sat, 23 Jul 2011 00:03:57 +0200	[thread overview]
Message-ID: <201107230003.59800.laurent.pinchart@ideasonboard.com> (raw)
In-Reply-To: <20110722144722.GA3717@tugrik.mns.mnsspb.ru>

Hi Kirill,

On Friday 22 July 2011 16:47:22 Kirill Smelkov wrote:
>  [ Cc'ing Andrew Morton -- Andrew, could you please pick this patch, in
>    case there is no response from maintainers again? Thanks beforehand. ]
> 
> 
> Hello up there,
> 
> My first posting was 1 month ago, and a reminder ~ 2 weeks ago. All
> without a reply. v3.0 is out and they say the merge window will be
> shorter this time, so in oder not to miss it, I've decided to resend my
> patch on lowering USB periodic bandwidth allocation topic.

I'm very very sorry for missing the patch (and worse, twice :-/).

> Could this simple patch be please applied?

Yes it can. I see that Andrew already applied it to his tree. Mauro, should it 
go through there, or through your tree ? I've pushed it to my tree at 
git://linuxtv.org/pinchartl/uvcvideo.git uvcvideo-stable, so you can already 
pull.

> Thanks,
> Kirill
> 
> 
> P.S.
> 
> Referenced in the description cc62a7eb (USB: EHCI: Allow users to
> override 80% max periodic bandwidth) will be entering the mainline via
> Greg's usb tree.
> 
> ---- 8< ----
> From: Kirill Smelkov <kirr@mns.spb.ru>
> Subject: [PATCH] uvcvideo: Add FIX_BANDWIDTH quirk to HP Webcam found on HP
> Mini 5103 netbook
> 
> The camera there identifies itself as being manufactured by Cheng Uei
> Precision Industry Co., Ltd (Foxlink), and product is titled as "HP
> Webcam [2 MP Fixed]".

The device isn't listed in the supported devices list. Could you please send 
me its lsusb -v output ?

> I was trying to get 2 USB video capture devices to work simultaneously,
> and noticed that the above mentioned webcam always requires packet size
> = 3072 bytes per micro frame (~= 23.4 MB/s isoc bandwidth), which is far
> more than enough to get standard NTSC 640x480x2x30 = ~17.6 MB/s isoc
> bandwidth.
> 
> As there are alt interfaces with smaller MxPS
> 
>     T:  Bus=01 Lev=01 Prnt=01 Port=03 Cnt=01 Dev#=  2 Spd=480  MxCh= 0
>     D:  Ver= 2.00 Cls=ef(misc ) Sub=02 Prot=01 MxPS=64 #Cfgs=  1
>     P:  Vendor=05c8 ProdID=0403 Rev= 1.06
>     S:  Manufacturer=Foxlink
>     S:  Product=HP Webcam [2 MP Fixed]
>     S:  SerialNumber=200909240102
>     C:* #Ifs= 2 Cfg#= 1 Atr=80 MxPwr=500mA
>     A:  FirstIf#= 0 IfCount= 2 Cls=0e(video) Sub=03 Prot=00
>     I:* If#= 0 Alt= 0 #EPs= 1 Cls=0e(video) Sub=01 Prot=00 Driver=uvcvideo
>     E:  Ad=83(I) Atr=03(Int.) MxPS=  16 Ivl=4ms
>     I:* If#= 1 Alt= 0 #EPs= 0 Cls=0e(video) Sub=02 Prot=00 Driver=uvcvideo
>     I:  If#= 1 Alt= 1 #EPs= 1 Cls=0e(video) Sub=02 Prot=00 Driver=uvcvideo
>     E:  Ad=81(I) Atr=05(Isoc) MxPS= 128 Ivl=125us
>     I:  If#= 1 Alt= 2 #EPs= 1 Cls=0e(video) Sub=02 Prot=00 Driver=uvcvideo
>     E:  Ad=81(I) Atr=05(Isoc) MxPS= 512 Ivl=125us
>     I:  If#= 1 Alt= 3 #EPs= 1 Cls=0e(video) Sub=02 Prot=00 Driver=uvcvideo
>     E:  Ad=81(I) Atr=05(Isoc) MxPS=1024 Ivl=125us
>     I:  If#= 1 Alt= 4 #EPs= 1 Cls=0e(video) Sub=02 Prot=00 Driver=uvcvideo
>     E:  Ad=81(I) Atr=05(Isoc) MxPS=1536 Ivl=125us
>     I:  If#= 1 Alt= 5 #EPs= 1 Cls=0e(video) Sub=02 Prot=00 Driver=uvcvideo
>     E:  Ad=81(I) Atr=05(Isoc) MxPS=2048 Ivl=125us
>     I:  If#= 1 Alt= 6 #EPs= 1 Cls=0e(video) Sub=02 Prot=00 Driver=uvcvideo
>     E:  Ad=81(I) Atr=05(Isoc) MxPS=2688 Ivl=125us
>     I:  If#= 1 Alt= 7 #EPs= 1 Cls=0e(video) Sub=02 Prot=00 Driver=uvcvideo
>     E:  Ad=81(I) Atr=05(Isoc) MxPS=3072 Ivl=125us
> 
> UVC_QUIRK_FIX_BANDWIDTH helps here and NTSC video can be served with
> MxPS=2688 i.e. 20.5 MB/s isoc bandwidth.
> 
> In terms of microframe time allocation, before the quirk NTSC video
> required 60 usecs / microframe and 53 usecs / microframe after.
> 
> 
> P.S.
> 
> Now with tweaked ehci-hcd to allow up to 90% isoc bandwidth (cc62a7eb
> "USB: EHCI: Allow users to override 80% max periodic bandwidth") I can
> capture two video sources -- PAL 720x576 YUV422 @25fps + NTSC 640x480
> YUV422 @30fps simultaneously.  Hooray!
> 
> Signed-off-by: Kirill Smelkov <kirr@mns.spb.ru>

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

> ---
>  drivers/media/video/uvc/uvc_driver.c |    9 +++++++++
>  1 files changed, 9 insertions(+), 0 deletions(-)
> 
> diff --git a/drivers/media/video/uvc/uvc_driver.c
> b/drivers/media/video/uvc/uvc_driver.c index b6eae48..f633700 100644
> --- a/drivers/media/video/uvc/uvc_driver.c
> +++ b/drivers/media/video/uvc/uvc_driver.c
> @@ -2130,6 +2130,15 @@ static struct usb_device_id uvc_ids[] = {
>  	  .bInterfaceProtocol	= 0,
>  	  .driver_info 		= UVC_QUIRK_PROBE_MINMAX
> 
>  				| UVC_QUIRK_BUILTIN_ISIGHT },
> 
> +	/* Foxlink ("HP Webcam" on HP Mini 5103) */
> +	{ .match_flags		= USB_DEVICE_ID_MATCH_DEVICE
> +				| USB_DEVICE_ID_MATCH_INT_INFO,
> +	  .idVendor		= 0x05c8,
> +	  .idProduct		= 0x0403,
> +	  .bInterfaceClass	= USB_CLASS_VIDEO,
> +	  .bInterfaceSubClass	= 1,
> +	  .bInterfaceProtocol	= 0,
> +	  .driver_info		= UVC_QUIRK_FIX_BANDWIDTH },
>  	/* Genesys Logic USB 2.0 PC Camera */
>  	{ .match_flags		= USB_DEVICE_ID_MATCH_DEVICE
> 
>  				| USB_DEVICE_ID_MATCH_INT_INFO,

-- 
Regards,

Laurent Pinchart

  reply	other threads:[~2011-07-22 22:04 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-07-22 14:47 Kirill Smelkov
2011-07-22 22:03 ` Laurent Pinchart [this message]
2011-07-22 22:25   ` Kirill Smelkov
2011-07-22 23:12     ` Laurent Pinchart
2011-07-23 18:15       ` Kirill Smelkov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=201107230003.59800.laurent.pinchart@ideasonboard.com \
    --to=laurent.pinchart@ideasonboard.com \
    --cc=akpm@linux-foundation.org \
    --cc=kirr@mns.spb.ru \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=linux-uvc-devel@lists.berlios.de \
    --cc=mchehab@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®