- 19 1月, 2011 1 次提交
-
-
由 Hans de Goede 提交于
The gspca_dev->streaming boolean is protected against multiple access through gspca_dev->queue_lock everywhere except for 2 places. This patch fixes this by bringing it under the lock in vidioc_streamoff. And by removing the check for gspca_dev->streaming in gspca_disconnect, the destroy_urbs call may be called multiple times (and is protected by the usb_lock) and calling wake_up_interruptible can also always be done safely. Signed-off-by: NHans de Goede <hdegoede@redhat.com> Acked-by: NJean-Francois Moine <moinejf@free.fr> Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
-
- 29 12月, 2010 9 次提交
-
-
由 Jean-François Moine 提交于
Signed-off-by: NJean-François Moine <moinejf@free.fr> Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
-
由 Mauro Carvalho Chehab 提交于
The check for status errors is now before the check for len. That's ok. However, the error printk's for the status error prints the URB length. This generates this error: drivers/media/video/gspca/gspca.c: In function ‘fill_frame’: drivers/media/video/gspca/gspca.c:305:9: warning: ‘len’ may be used uninitialized in this function The fix is as simple as moving the len init to happen before the checks. Cc: Jean-François Moine <moinejf@free.fr> Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
-
由 Jean-François Moine 提交于
Also, in ov534, don't check the parm type. Signed-off-by: NJean-François Moine <moinejf@free.fr> Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
-
由 Jean-François Moine 提交于
When an error is set for an isochronous packet, the length of the packet may be null. In this case, the error was not detected and the image was not discarded as it should be. Reported-by: NFranck Bourdonnec <fbourdonnec@chez.com> Signed-off-by: NJean-François Moine <moinejf@free.fr> Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
-
由 Mauro Carvalho Chehab 提交于
Changeset 35680baa broke several devices: - Sony Playstation Eye (1415:2000); - Gigaware model 25-234 (0c45:628f); - Logitech Messenger Plus (046d:08f6). Probably more devices were broken by this change. What happens is that several devices don't need to save some bandwidth for audio. Also, as pointed by Hans de Goede <hdegoede@redhat.com>, the logic that implements the bandwidth reservation for audio is broken, since it will reduce the alt number twice, on devices with audio. So, let's just revert the broken logic, and think on a better solution for usb 1.1 devices with audio that can't use the maximum packetsize. Acked-by: NJean-Francois Moine <moinejf@free.fr> Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
-
由 Jean-François Moine 提交于
Signed-off-by: NJean-François Moine <moinejf@free.fr> Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
-
由 Jean-François Moine 提交于
Signed-off-by: NJean-François Moine <moinejf@free.fr> Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
-
由 Hans de Goede 提交于
Currently alloc_and_submit_int_urb() is setting gspca->int_urb as soon as the allocation has succeeded, but if the subsequent submit fails, the urb gets destroyed. And then later will get destroyed again in gspca_input_destroy_urb() because gspca->int_urb is set, leading to a double free. Signed-off-by: NHans de Goede <hdegoede@redhat.com> Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
-
由 Hans de Goede 提交于
Currently gspca supported usb-1.1 webcams for which we support the input button through an interrupt endpoint won't stream (not enough bandwidth error) when used through an USB-2.0 hub. After much debugging I've found out that the cause for this is that the ehci-sched.c schedeling code does not like it when there are already urb's scheduled when (large) isoc urbs are queued. By moving the submission of the interrupt urbs to after submitting the isoc urbs the camera starts working again through usb-2.0 hubs. Note that this does not fix isoc. streaming through a usb-hub while another 1.1 usb device (like the microphone of the same cam) is also active at the same time :( I've spend a long time analyzing the linux kernel ehci scheduler code, resulting in this (long) mail: http://www.spinics.net/lists/linux-usb/msg37982.html The conclusion of the following mail thread is that yes there are several issues when using usb-1.1 devices through a usb-2.0 hub, but these are not easily fixable in the current code. Fixing this in ehci-sched.c requires an almost full rewrite, which is not bound to happen anytime soon. So with this patch gspca driven usb-1.1 webcams will atleast work when connected through an usb-2.0 hub when the microphone is not used. As an added bonus this patch avoids extra destroy/create input urb cycles when we end up falling back to a lower speed alt setting because of bandwidth limitations. Signed-off-by: NHans de Goede <hdegoede@redhat.com> Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
-
- 22 10月, 2010 1 次提交
-
-
由 Jean-François Moine 提交于
The errors were found by checkpatch.pl. Most fixes are: - remove spaces followed by TAB(s), - split lines greater than 80 characters, - move most '{'s from start of line to end of previous line. (Some '{'s at start of line remain when the '}'s are on the same line) Signed-off-by: NJean-François Moine <moinejf@free.fr> Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
-
- 21 10月, 2010 5 次提交
-
-
由 Jean-François Moine 提交于
When audio is present, some alternate settings were skipped. This prevented some webcams to work, especially when bulk transfer was used. This patch permits to use the last or only alternate setting. Reported-by: NAntonio Ospite <ospite@studenti.unina.it> Tested-by: NAntonio Ospite <ospite@studenti.unina.it> Signed-off-by: NJean-François Moine <moinejf@free.fr> Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
-
由 Jean-François Moine 提交于
This patch also sets to 0 the sequence of the first frame. Signed-off-by: NJean-François Moine <moinejf@free.fr> Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
-
由 Jean-François Moine 提交于
The new control mechanism uses dynamic control values in the subdriver descriptor. It simplifies standard control handling. Signed-off-by: NJean-François Moine <moinejf@free.fr> Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
-
由 Jean-François Moine 提交于
Signed-off-by: NJean-François Moine <moinejf@free.fr> Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
-
由 Jean-François Moine 提交于
Signed-off-by: NJean-François Moine <moinejf@free.fr> Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
-
- 28 9月, 2010 1 次提交
-
-
由 Jason Wang 提交于
When plugging some webcams on ARM, the system crashes. This is because we alloc buffer for an urb through usb_buffer_alloc, the alloced buffer is already in DMA coherent region, so we should set the flag of this urb to URB_NO_TRANSFER_DMA_MAP, otherwise when we submit this urb, the hcd core will handle this address as an non-DMA address and call dma_map_single/sg to map it. On arm architecture, dma_map_single a DMA coherent address will be catched by a BUG_ON(). Signed-off-by: NJason Wang <jason77.wang@gmail.com> Signed-off-by: NJean-François Moine <moinejf@free.fr> Cc: stable@kernel.org Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
-
- 09 8月, 2010 2 次提交
-
-
由 Jean-François Moine 提交于
Some webcams as ov511 may find many times an end of image. In this case, with the last patch in image concatenation (commit 799b1bd41f398054d46fd35f73abd01c4009f6ca), the image pointer was NULL and the system crashed in memcpy(). Signed-off-by: NJean-François Moine <moinejf@free.fr> Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
-
由 Jean-François Moine 提交于
Signed-off-by: NJean-François Moine <moinejf@free.fr> Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
-
- 03 8月, 2010 10 次提交
-
-
由 Jean-François Moine 提交于
When there is an audio device, use a lower alternate setting. This patch does not fix correctly all audio and bandwidth problems. Signed-off-by: NJean-François Moine <moinejf@free.fr> Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
-
由 Jean-François Moine 提交于
Signed-off-by: NJean-François Moine <moinejf@free.fr> Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
-
由 Jean-François Moine 提交于
Signed-off-by: NJean-François Moine <moinejf@free.fr> Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
-
由 Jean-François Moine 提交于
Reported-by: NJustin P. Mattock <justinmattock@gmail.com> Signed-off-by: NJean-François Moine <moinejf@free.fr> Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
-
由 Jean-François Moine 提交于
This patch fixes possible race conditions in queue management with SMP: when a frame was completed, the irq function tried to use the next frame buffer. At this time, it was possible that the application on an other processor updated the frame pointer, making the image to point to a bad buffer. The patch contains two main changes: - the image transfer uses the queue indexes which are protected against simultaneous memory access, - the image pointer which is used for image concatenation is only set at interrupt level. Some subdrivers which used the image pointer have been updated. Reported-by: NHans de Goede <hdegoede@redhat.com> Signed-off-by: NJean-François Moine <moinejf@free.fr> Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
-
由 Jean-François Moine 提交于
The problem may occur with SMP: - a frame is completed at interrupt level (in gspca_frame_add with packet_type == LAST_PACKET, - just after clearing the bit V4L2_BUF_FLAG_QUEUED and before setting the bit V4L2_BUF_FLAG_DONE, on the other processor, the application tries to requeue the same frame buffer, - then, the qbuf function succeeds because ALL_FLAGS are not set. The fix sets and resets the two flags in one instruction. Reported-by: NHans de Goede <hdegoede@redhat.com> Signed-off-by: NJean-François Moine <moinejf@free.fr> Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
-
由 Jean-François Moine 提交于
The image pointer and its length are now in the main structure instead of in the frame buffer. They are updated on application vidioc_qbuf and in the URB interrupt function when ending an image. Signed-off-by: NJean-François Moine <moinejf@free.fr> Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
-
由 Jean-François Moine 提交于
Signed-off-by: NJean-François Moine <moinejf@free.fr> Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
-
由 Jean-François Moine 提交于
Signed-off-by: NJean-François Moine <moinejf@free.fr> Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
-
由 Jean-François Moine 提交于
This function is used when the USB video interface is checked by the subdriver. Signed-off-by: NJean-François Moine <moinejf@free.fr> Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
-
- 21 5月, 2010 1 次提交
-
-
由 Daniel Mack 提交于
For more clearance what the functions actually do, usb_buffer_alloc() is renamed to usb_alloc_coherent() usb_buffer_free() is renamed to usb_free_coherent() They should only be used in code which really needs DMA coherency. All call sites have been changed accordingly, except for staging drivers. Signed-off-by: NDaniel Mack <daniel@caiaq.de> Cc: Alan Stern <stern@rowland.harvard.edu> Cc: Pedro Ribeiro <pedrib@gmail.com> Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
-
- 19 5月, 2010 6 次提交
-
-
由 Jean-François Moine 提交于
Signed-off-by: NJean-François Moine <moinejf@free.fr> Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
-
由 Jean-François Moine 提交于
Signed-off-by: NJean-François Moine <moinejf@free.fr> Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
-
由 Jean-François Moine 提交于
Signed-off-by: NJean-François Moine <moinejf@free.fr> Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
-
由 Jean-François Moine 提交于
Signed-off-by: NJean-François Moine <moinejf@free.fr> Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
-
由 Jean-François Moine 提交于
Signed-off-by: NJean-François Moine <moinejf@free.fr> Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
-
由 Randy Dunlap 提交于
Handle case of GSPCA=m, INPUT=m when building gspca core; also handle case of INPUT=n by using stubs. drivers/media/video/gspca/gspca.c:662: error: implicit declaration of function 'gspca_input_destroy_urb' drivers/media/video/gspca/gspca.c:668: error: implicit declaration of function 'gspca_input_create_urb' drivers/media/video/gspca/gspca.c:2284: error: implicit declaration of function 'gspca_input_connect' Signed-off-by: NRandy Dunlap <randy.dunlap@oracle.com> Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
-
- 18 5月, 2010 2 次提交
-
-
由 Mauro Carvalho Chehab 提交于
It seems that I merged a wrong version of the patch or that changeset 4d770eeb926d0bc44c0bd68d051d3d2a5568ef41 got mangled somehow: It were missed the #else to avoid compilation troubles. Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
-
由 Paulo Assis 提交于
Signed-off-by: NJean-François Moine <moinejf@free.fr> Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
-
- 27 2月, 2010 2 次提交
-
-
由 Hans de Goede 提交于
gspca_main: Fix a compile error when CONFIG_INPUT is not set. Signed-off-by: NHans de Goede <hdegoede@redhat.com> Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
-
由 Hans de Goede 提交于
2 small changes to input device error handling: 1) Make it fatal when we fail to create an input device (it is either this or add checks for gspca_dev->input_dev being NULL in a lot of places) 2) Since we allow gspca_input_create_urb() to fail everywhere we call it, and thus never check its return value, make it void. Signed-off-by: NHans de Goede <hdegoede@redhat.com> Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
-