Age | Commit message (Collapse) | Author |
|
that's ever used it, and it's long since been changed to use
DVACT_{QUIESCE,SUSPEND,RESUME} instead.
ok deraadt@, dlg@; miod@ also agreed with this idea when I brought it
up a few weeks ago
|
|
If one of the usb calls we did here failed we'd return immediately and
not free our buffer.
ok miod@
|
|
1) Allocating with M_WAITOK, checking for NULL, and calling panic() is
pointless (malloc() will panic if it can't allocate) so remove the check
and the call.
2) Allocating with M_WAITOK, checking for NULL, and then gracefully
handling failure to allocate is pointless. Instead also pass M_CANFAIL
so malloc() doesn't panic so we can actually handle it gracefully.
1) was done using Coccinelle.
Input from oga.
ok miod.
|
|
means the data size of a frame can be calculated if the dimensions
are known.
* calculate frame data sizes for uncompressed formats instead of believing
what the hardware says. the UVC spec changed between 1.0 and 1.1, and
as a result, some devices return bogus information.
* skip under-sized as well as over-sized uncompressed frames; there is
only one correct size for uncompressed frames.
* remove quirk to fix uncompressed frame sizes on certain devices,
since that now always happens.
* check that the device is actually using the parameters we think it's
using.
|
|
per frame to the default, so do that instead of returning EINVAL
|
|
previously, this was returning the wrong value (frame rate instead
of time per frame, d'oh!).
|
|
setting the frame rate with luvcview.
|
|
number
|
|
|
|
|
|
setting and and getting the frame interval.
|
|
|
|
frame descriptor's bFrameIndex field. the first valid frame
in the array is at index 0, not 1.
* don't change the format group's default frame when configuring
the device, and don't use the default frame as the current
frame: these are what the format group's 'frame_cur' is for.
tested by several as part of larger diff
|
|
equivilent. only define one structure, struct usb_video_frame_desc,
and handle both types of frame descriptors in the same code.
* replace hardcoded numbers with 'sizeof(struct usb_video_frame_desc)'
where the numbers represent the size of a frame descriptor
tested by several
|
|
index of the current frame to -1 when the mmap frame buffer is free'd
* set the index of the current frame to 0 when allocating the mmap
frame buffer
* paranoia: panic if a) the mmap frame buffer is already allocated when
we try to allocate it, or b) the mmap frame buffer is not allocated when
we try to add frames to it
tested by several
|
|
them from userland, and nothing in the kernel uses them.
ok krw@, miod@
|
|
interfaces as being claimed in the usbd_device's copy of the interface
descriptors
* allow ugen(4) to be attached if there are unused interfaces in a
configuration that has had drivers attached
* make ugen(4) aware that it may be sharing a device with (an)other
driver(s), and if so:
* do not let ugen(4) change the configuration
* do not let ugen(4) access the already claimed interfaces
discussed with deraadt and miod
|
|
- use UGETW/USETW instead of letoh16/htole16
fixes controls that use two-byte signed data (e.g. brighness and hue)
on sparc64
|
|
be run from the generic task kthread, because xfers that need to be
aborted block newly queued tasks from running (i.e. the xfer to be aborted
blocks the abort of that task). as there are now three types of usb
tasks, add an argument to usb_init_task() and another member to struct
usb_task to specify the task type.
fixes boot hangs that are showing up because we now use usb tasks to
attach/detach usb devices.
|
|
|
|
commit controls, use the hardware frame idenfitier instead of the
software identifier since they can differ, and the hardware only
knows about it's own identifiers
|
|
instead of the first one that has enough bandwidth as it may be too much
|
|
member the way uaudio does, make the variable sized member as large
as it can be and don't define the following members.
* reenable control support for devices where bControlSize != 2 in
the processing unit descriptor.
tested on alpha, amd64, i386, sparc64 and zaurus, as well as the machine
where previous support for variable bControlSize caused a hang.
|
|
control.
|
|
a crash with Kodak S100 webcam.
|
|
I can figure out why it causes boot hangs with some Sonix camera
|
|
and add support for more processing unit controls.
from Martin Pieuchot, thanks!
|
|
anonymous unions "un".
delete some obsolete mpeg/jpeg compression methods that have never been
supported, and will not need to be supported.
|
|
ok mglocker
|
|
|
|
UVIDEO_FLAG_FIX_MAX_VIDEO_FRAME_SIZE quirk list and b) cranking the
manually calculated frame size by pixels * 4 bytes (discussed with
jakemsr@).
|
|
* Comment why we call the video interrupt in the mmap interface now in
uvideo.c
|
|
ok mglocker
|
|
|
|
|
|
|
|
This is needed for the addition of further suspend/resume actions.
Okay deraadt@, marco@.
|
|
|
|
Requested by and OK deraadt@
|
|
ok mglocker
|
|
Help from kettenis@
|
|
fixing wrong dwMaxVideoFrameSize value. As a side effect, broken
devices which report dwMaxVideoFrameSize=0 today could be fixed as well.
No regressions reported so far. Discussed with fgsch@.
Diff from Kenji Aoyama
|
|
9000 devices. Add a XXX comment that we need to fix the bulk issue
properly instead.
|
|
QuickCam OEM attachment finally.
OK deraadt@
|
|
We give the kthread loop a moment to recognize that bulk_running=0
before we close the USB pipes. Otherwise it can happen that we close
the USB pipes before the kthread loop stopped.
|
|
|
|
|
|
devices.
Problem reported by Jerome Pinot (QuickCam OEM). Also tested by deraadt@
with ricoh chipset.
|
|
alive during match and attach. do not attempt to reuse this pointer or
ifaces during a deferred attach routine, since it will contain junk,
but instead make copies.
tested on all 3 kinds of uvideo's (ricoh fw load, apple fw load, and the rest)
ok robert mglocker
|
|
Problem reported by Kenji Aoyama
|