linux/drivers/media/video
Kirill Smelkov 949d926458 [media] uvcvideo: Add FIX_BANDWIDTH quirk to HP Webcam 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]".

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.

Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Kirill Smelkov <kirr@mns.spb.ru>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-07-27 17:56:05 -03:00
..
au0828 [media] Stop using linux/version.h on most video drivers 2011-07-27 17:53:12 -03:00
bt8xx [media] bt8xx: use pci_dev->subsystem_{vendor|device} 2011-07-27 17:56:04 -03:00
cpia2 [media] Stop using linux/version.h on most video drivers 2011-07-27 17:53:12 -03:00
cx18 [media] ivtv,cx18: Use default version control for VIDIOC_QUERYCAP 2011-07-27 17:53:14 -03:00
cx88 [media] cx88: implemented luma notch filter control 2011-07-27 17:56:01 -03:00
cx231xx [media] cx231xx: Provide signal lock status in G_INPUT 2011-07-27 17:56:04 -03:00
cx23885 [media] cx23885: added support for card 107d:6f39 2011-07-27 17:55:55 -03:00
cx25840 Fix common misspellings 2011-03-31 11:26:23 -03:00
davinci [media] Stop using linux/version.h on the remaining video drivers 2011-07-27 17:53:16 -03:00
em28xx [media] Remove the double symbol increment hack from drxk_hard 2011-07-27 17:56:03 -03:00
et61x251 [media] return -ENOTTY for unsupported ioctl's at legacy drivers 2011-07-27 17:53:38 -03:00
gspca [media] gspca: s/strncpy/strlcpy/ 2011-07-27 17:53:42 -03:00
hdpvr [media] Stop using linux/version.h on most video drivers 2011-07-27 17:53:12 -03:00
ivtv [media] v4l2-event/ctrls/fh: allocate events per fh and per type instead of just per-fh 2011-07-27 17:53:31 -03:00
m5mols [media] Stop using linux/version.h on the remaining video drivers 2011-07-27 17:53:16 -03:00
marvell-ccic [media] marvell-cam: clean up a couple of unused cam structure fields 2011-07-27 17:55:54 -03:00
omap [media] drivers/media: static should be at beginning of declaration 2011-07-27 17:55:54 -03:00
omap3isp [media] v4l2-event/ctrls/fh: allocate events per fh and per type instead of just per-fh 2011-07-27 17:53:31 -03:00
pvrusb2 [media] return -ENOTTY for unsupported ioctl's at legacy drivers 2011-07-27 17:53:38 -03:00
pwc [media] pwc: clean-up header files 2011-07-27 17:55:37 -03:00
s5p-fimc [media] Stop using linux/version.h on the remaining video drivers 2011-07-27 17:53:16 -03:00
s5p-mfc [media] MFC: Add MFC 5.1 V4L2 driver 2011-07-27 17:56:00 -03:00
s5p-tv [media] v4l: s5p-tv: add TV Mixer driver for Samsung S5P platform 2011-07-27 17:56:01 -03:00
saa7134 [media] Make Compro VideoMate Vista T750F actually work 2011-07-27 17:55:53 -03:00
saa7164 [media] Stop using linux/version.h on most video drivers 2011-07-27 17:53:12 -03:00
sn9c102 [media] return -ENOTTY for unsupported ioctl's at legacy drivers 2011-07-27 17:53:38 -03:00
tlg2300 [media] Stop using linux/version.h on most video drivers 2011-07-27 17:53:12 -03:00
usbvision [media] Stop using linux/version.h on most video drivers 2011-07-27 17:53:12 -03:00
uvc [media] uvcvideo: Add FIX_BANDWIDTH quirk to HP Webcam on HP Mini 5103 netbook 2011-07-27 17:56:05 -03:00
zoran [media] Stop using linux/version.h on most video drivers 2011-07-27 17:53:12 -03:00
adp1653.c [media] adp1653: Add driver for LED flash controller 2011-07-27 17:55:39 -03:00
adv7170.c
adv7175.c [media] adv7175: support s_power 2011-01-19 11:45:55 -02:00
adv7180.c
adv7343_regs.h [media] adv7343: use control framework 2011-03-21 20:31:49 -03:00
adv7343.c [media] adv7343: use control framework 2011-03-21 20:31:49 -03:00
ak881x.c
arv.c [media] Stop using linux/version.h on most video drivers 2011-07-27 17:53:12 -03:00
atmel-isi.c [media] V4L: at91: add Atmel Image Sensor Interface (ISI) support 2011-07-27 17:53:23 -03:00
bt819.c [media] bt819: use control framework 2011-03-21 20:31:49 -03:00
bt856.c
bt866.c
btcx-risc.c
btcx-risc.h
bw-qcam.c [media] drivers/media/video: add missing kfree 2011-07-27 17:55:55 -03:00
c-qcam.c [media] drivers/media/video: add missing kfree 2011-07-27 17:55:55 -03:00
cs53l32a.c
cs5345.c [media] cs5345: use the control framework 2011-03-21 20:31:49 -03:00
cs8420.h
cx2341x.c [media] v4l2-ctrls: use const char * const * for the menu arrays 2010-12-30 08:02:14 -02:00
fsl-viu.c [media] Stop using linux/version.h on the remaining video drivers 2011-07-27 17:53:16 -03:00
hexium_gemini.c Fix common misspellings 2011-03-31 11:26:23 -03:00
hexium_orion.c [media] v4l: fix handling of v4l2_input.capabilities 2010-12-30 08:02:29 -02:00
ibmmpeg2.h
imx074.c [media] imx074: return a meaningful error code instead of -1 2011-04-13 09:54:35 -03:00
indycam.c
indycam.h
ir-kbd-i2c.c [media] ir-kbd-i2c: pass device code w/key in hauppauge case 2011-03-22 19:24:18 -03:00
Kconfig [media] v4l: s5p-tv: add drivers for HDMI on Samsung S5P platform 2011-07-27 17:56:01 -03:00
ks0127.c
ks0127.h
m52790.c [media] v4l: make sure drivers supply a zeroed struct v4l2_subdev 2011-04-29 12:33:28 -03:00
Makefile [media] v4l: s5p-tv: add drivers for HDMI on Samsung S5P platform 2011-07-27 17:56:01 -03:00
mem2mem_testdev.c [media] Stop using linux/version.h on most video drivers 2011-07-27 17:53:12 -03:00
meye.c [media] v4l2-ioctl: add priority handling support 2011-03-22 16:37:59 -03:00
meye.h
msp3400-driver.c [media] msp3400: fill in v4l2_tuner based on vt->type field 2011-07-07 17:28:30 -03:00
msp3400-driver.h
msp3400-kthreads.c Fix common misspellings 2011-03-31 11:26:23 -03:00
mt9m001.c [media] v4l: Rename V4L2_MBUS_FMT_GREY8_1X8 to V4L2_MBUS_FMT_Y8_1X8 2011-03-22 04:53:23 -03:00
mt9m111.c [media] V4L: mt9m111: switch to v4l2-subdev .s_power() method 2011-07-27 17:53:22 -03:00
mt9t031.c
mt9t112.c
mt9v011.c [media] mt9v011: Fixed gain calculation 2011-07-27 17:52:25 -03:00
mt9v022.c [media] V4L: mt9v022: fix pixel clock 2011-05-20 12:07:04 -03:00
mt9v032.c [media] v4l: Add mt9v032 sensor driver 2011-05-20 09:29:49 -03:00
mx1_camera.c [media] Stop using linux/version.h on the remaining video drivers 2011-07-27 17:53:16 -03:00
mx2_camera.c [media] V4L: mx2_camera: .try_fmt shouldn't fail 2011-07-27 17:53:22 -03:00
mx3_camera.c [media] V4L: mx3_camera: remove redundant calculations 2011-07-27 17:53:21 -03:00
mxb.c [media] v4l2-ioctl: add priority handling support 2011-03-22 16:37:59 -03:00
mxb.h
noon010pc30.c [media] Add v4l2 subdev driver for NOON010PC30L image sensor 2011-03-21 20:31:40 -03:00
omap1_camera.c [media] Stop using linux/version.h on the remaining video drivers 2011-07-27 17:53:16 -03:00
omap24xxcam-dma.c
omap24xxcam.c [media] Stop using linux/version.h on the remaining video drivers 2011-07-27 17:53:16 -03:00
omap24xxcam.h
ov772x.c [media] v4l: ov772x: simplify pointer dereference 2010-12-30 22:29:23 -02:00
ov2640.c [media] V4L2: Add a v4l2-subdev (soc-camera) driver for OmniVision OV2640 sensor 2010-12-30 22:29:34 -02:00
ov6650.c Fix common misspellings 2011-03-31 11:26:23 -03:00
ov7670.c [media] marvell-cam: Move cafe-ccic into its own directory 2011-07-27 17:53:00 -03:00
ov9640.c Fix common misspellings 2011-03-31 11:26:23 -03:00
ov9640.h
ov9740.c [media] V4L: ov9740: Add suspend/resume 2011-07-27 17:53:30 -03:00
pms.c [media] Stop using linux/version.h on most video drivers 2011-07-27 17:53:12 -03:00
pxa_camera.c [media] V4L: pxa-camera: switch to using subdev .s_power() core operation 2011-07-27 17:53:21 -03:00
rj54n1cb0c.c
s2255drv.c [media] Stop using linux/version.h on the remaining video drivers 2011-07-27 17:53:16 -03:00
saa711x_regs.h
saa717x.c
saa6588.c [media] saa6588: rename rds.h to saa6588.h 2010-12-29 08:17:18 -02:00
saa7110.c [media] saa7110: use control framework 2011-03-21 20:31:50 -03:00
saa7115.c [media] v4l2-ctrls: fix and improve volatile control handling 2011-07-27 17:53:17 -03:00
saa7121.h
saa7127.c
saa7146.h
saa7146reg.h
saa7185.c
saa7191.c
saa7191.h
sh_mobile_ceu_camera.c [media] V4L: sh_mobile_ceu_camera: remove redundant calculations 2011-07-27 17:53:22 -03:00
sh_mobile_csi2.c [media] sh_mobile_csi2: fix module reloading 2011-04-13 09:55:38 -03:00
sh_vou.c [media] Stop using linux/version.h on the remaining video drivers 2011-07-27 17:53:16 -03:00
soc_camera_platform.c
soc_camera.c [media] V4L: soc-camera: remove several now unused soc-camera client operations 2011-07-27 17:53:23 -03:00
soc_mediabus.c [media] V4L: soc-camera: add more format look-up entries 2011-05-20 12:05:27 -03:00
sr030pc30.c [media] Correct error code from -ENOMEM to -EINVAL. 2011-07-27 17:52:59 -03:00
stk-sensor.c
stk-webcam.c [media] stk-webcam: remove V4L1 compatibility code, replace with V4L2 controls 2010-12-29 08:17:09 -02:00
stk-webcam.h
tcm825x.c Fix common misspellings 2011-03-31 11:26:23 -03:00
tcm825x.h
tda7432.c [media] Correct and add some parameter descriptions 2011-07-27 17:52:59 -03:00
tda9840.c [media] v4l: make sure drivers supply a zeroed struct v4l2_subdev 2011-04-29 12:33:28 -03:00
tea6415c.c [media] v4l: make sure drivers supply a zeroed struct v4l2_subdev 2011-04-29 12:33:28 -03:00
tea6415c.h
tea6420.c [media] v4l: make sure drivers supply a zeroed struct v4l2_subdev 2011-04-29 12:33:28 -03:00
tea6420.h
ths7303.c
timblogiw.c [media] Stop using linux/version.h on most video drivers 2011-07-27 17:53:12 -03:00
tlv320aic23b.c [media] tlv320aic23b: use control framework 2011-03-21 20:31:50 -03:00
tuner-core.c [media] xc4000: removed card_type 2011-07-27 17:52:40 -03:00
tvaudio.c Fix common misspellings 2011-03-31 11:26:23 -03:00
tveeprom.c [media] tveeprom: update hauppauge tuner list thru 174 2011-05-20 09:27:15 -03:00
tvp514x_regs.h
tvp514x.c [media] tvp514x: use the control framework 2011-03-21 20:31:50 -03:00
tvp5150_reg.h
tvp5150.c [media] tvp5150: device detection should be done only once 2011-03-21 20:32:04 -03:00
tvp7002_reg.h
tvp7002.c [media] tvp7002: use control framework 2011-03-21 20:31:50 -03:00
tw9910.c [media] V4L: tw9910: remove bogus ENUMINPUT implementation 2011-07-27 17:53:22 -03:00
upd64031a.c [media] v4l: make sure drivers supply a zeroed struct v4l2_subdev 2011-04-29 12:33:28 -03:00
upd64083.c [media] v4l: make sure drivers supply a zeroed struct v4l2_subdev 2011-04-29 12:33:28 -03:00
v4l2-common.c [media] v4l2-ctrls: add new bitmask control type 2011-07-27 17:55:38 -03:00
v4l2-compat-ioctl32.c [media] v4l2-compat-ioctl32: add VIDIOC_DQEVENT support 2011-07-27 17:53:20 -03:00
v4l2-ctrls.c [media] v4l2-ctrls: Fix a merge conflict 2011-07-27 17:55:40 -03:00
v4l2-dev.c [media] v4l: Don't access media entity after is has been destroyed 2011-06-30 23:12:36 -03:00
v4l2-device.c [media] v4l2-subdev: implement per-filehandle control handlers 2011-07-27 17:53:17 -03:00
v4l2-event.c [media] v4l2-ctrls/v4l2-events: small coding style cleanups 2011-07-27 17:53:34 -03:00
v4l2-fh.c [media] v4l2-event/ctrls/fh: allocate events per fh and per type instead of just per-fh 2011-07-27 17:53:31 -03:00
v4l2-int-device.c
v4l2-ioctl.c [media] v4l2 core: return -ENOTTY if an ioctl doesn't exist 2011-07-27 17:53:38 -03:00
v4l2-mem2mem.c [media] Update Pawel Osciak's e-mail address 2011-03-22 04:55:05 -03:00
v4l2-subdev.c [media] v4l2-event/ctrls/fh: allocate events per fh and per type instead of just per-fh 2011-07-27 17:53:31 -03:00
via-camera.c [media] via-camera: add MODULE_ALIAS 2011-05-20 09:30:49 -03:00
via-camera.h
videobuf2-core.c [media] media: vb2: fix allocation failure check 2011-06-30 22:33:47 -03:00
videobuf2-dma-contig.c [media] videobuf2: fix an error message 2011-04-13 09:52:36 -03:00
videobuf2-dma-sg.c [media] media: Convert vmalloc/memset to vzalloc 2011-07-27 17:52:21 -03:00
videobuf2-memops.c [media] V4L/videobuf2-memops: use pr_debug for debug messages 2011-07-27 17:52:23 -03:00
videobuf2-vmalloc.c [media] Update Pawel Osciak's e-mail address 2011-03-22 04:55:05 -03:00
videobuf-core.c [media] V4L: remove V4L1 compatibility mode 2010-12-29 08:17:07 -02:00
videobuf-dma-contig.c Revert "[media] V4L: videobuf, don't use dma addr as physical" 2011-04-19 10:54:44 -07:00
videobuf-dma-sg.c [media] videobuf_pages_to_sg: sglist[0] length problem 2011-07-27 17:52:19 -03:00
videobuf-dvb.c
videobuf-vmalloc.c
vino.c [media] Stop using linux/version.h on most video drivers 2011-07-27 17:53:12 -03:00
vino.h
vivi.c [media] vivi: add bitmask test control 2011-07-27 17:55:38 -03:00
vp27smpx.c
vpx3220.c Fix common misspellings 2011-03-31 11:26:23 -03:00
w9966.c [media] Stop using linux/version.h on most video drivers 2011-07-27 17:53:12 -03:00
wm8739.c
wm8775.c [media] Add proper audio support for Nova-S Plus with wm8775 ADC 2011-03-21 20:32:19 -03:00
zr364xx.c [media] Stop using linux/version.h on most video drivers 2011-07-27 17:53:12 -03:00