Home | History | Annotate | Download | only in usb
History log of /src/sys/dev/usb/uvideo.c
RevisionDateAuthorComments
 1.85  10-Apr-2023  mlelstv Reduce excessive settle delay.
 1.84  10-Apr-2023  mlelstv Better descriptor parsing.
Add sanity check if no default format is found.
 1.83  01-Jul-2022  riastradh uvideo(4): Make alloc logic match free logic.

Reported-by: syzbot+57cdc1be653327f78b6f@syzkaller.appspotmail.com

PR kern/53734
 1.82  01-Jul-2022  riastradh uvideo(4): Assert number of units can't overflow.

Not sure if this is true, but at least we'll trap instead of silently
undercount this way.
 1.81  14-May-2022  riastradh uvideo(4): Fix missing line breaks in debug messages.
 1.80  14-May-2022  riastradh uvideo(4): Avoid exposing streams with invalid descriptors.
 1.79  24-Apr-2022  hannken Add missing argument to debug printf.
 1.78  17-Apr-2022  riastradh uvideo(4): Parse descriptors more robustly.

Validate lengths and types before barging ahead.

Not sure exactly which missing validation syzbot tripped on here, but
I'm pretty sure I caught all the cases.

Reported-by: syzbot+60f0a25c077b67547f57@syzkaller.appspotmail.com
 1.77  17-Apr-2022  riastradh uvideo(4): Convert conditional to KASSERT in uvideo_attach.

usb_desc_iter_next_interface no longer returns truncated interface
descriptors, so we no longer have to check for that here.
 1.76  17-Apr-2022  riastradh uvideo(4): Convert conditional to KASSERT in uvideo_unit_alloc.

The one caller guarantees the condition already.
 1.75  17-Apr-2022  riastradh uvideo(4): Use sizeof(*p), not sizeof(T), for kmem_alloc/free.

No functional change intended.
 1.74  17-Apr-2022  riastradh uvideo(4): KNF comment style.

No functional change intended.
 1.73  17-Apr-2022  riastradh uvideo(4): Avoid printing off the end of truncated descriptors.
 1.72  06-Apr-2022  mlelstv revert accidental last commit (except ukbd.c)
 1.71  06-Apr-2022  mlelstv remove debug printf
 1.70  12-Mar-2022  riastradh uvideo(4): Use kmem_zalloc, not kmem_alloc and memset.
 1.69  03-Mar-2022  riastradh video(9): Make softc argument mandatory for video_attach_mi.

No separate video_attach_mi_softc function any more.
 1.68  03-Mar-2022  riastradh uvideo(4): Attach one video(4) per independent stream.
 1.67  03-Mar-2022  riastradh uvideo(4): Fix zero initialization of uvideo_stream.

Just use kmem_zalloc; don't memset it to zero, especially not after
we just inserted it into the list, with the side effect of deleting
the rest of the list!
 1.66  03-Mar-2022  riastradh uvideo(4): Sprinkle debug messages.
 1.65  03-Mar-2022  riastradh uvideo(4): Use __nothing for empty DPRINTF, not actually empty.
 1.64  09-Jan-2022  riastradh uvideo(4): Fix USB interface numbering.

Don't try to be clever and count -- just use bInterfaceNumber.

The previous logic to count interface descriptors failed to consider
interfaces with alternate settings, which led it to pass an invalid
interface number to usbd_device2interface_handle.

It is simpler to just use the recorded bInterfaceNumber, which is
guaranteed by the USB spec to be zero-indexed and below
bNumInterfaces as we need.
 1.63  14-Nov-2021  andvar revert bPreferedVersion rename. It's named like the by spec (from jmcneill).
 1.62  13-Nov-2021  andvar s/bPreferedVersion/bPreferredVersion/ in struct property definition.
 1.61  03-Sep-2021  andvar fix typos in comments, mainly s/extention/extension/ and s/sufficent/sufficient/
 1.60  16-May-2021  mlelstv close pipe before freeing frame length array.
 1.59  10-Aug-2020  rjs branches: 1.59.6; 1.59.8;
Add some extra V4L ioctl() requests to latest V4L userland to work.

Import sys/videoio.h from OpenBSD, this is just the Linux headers
concatenated together.
 1.58  24-May-2020  jakllsch uvideo(4): clamp (micro)frames-per-xfer to at most 80

Previously, on a 30fps YUV422 640x480 webcam, we were putting over 250
USB (micro)frames per video frame in the host controller queue.

xhci(4) is currently limited to 256-1 TRBs per xHC Transfer Ring, and as
such, trying to place 3 xfers each of 250+ microframes in the queue fails.

As there is no UVC requirement that whole video frames be in one logical
chunk of isoc transactions, and there doesn't seem to be compelling reason
to keep the xfer completion rate slower than 1 in 10ms, we can limit each
of the 3 uvideo xfers to 80 (micro)frames of bus time, and solve the
Transfer Ring constraint for upcoming xhci(4) Isochronous pipe support.
This works out to using only 240 TRBs on the 255-usable-TRB Transfer Ring.
 1.57  22-May-2020  jmcneill Support get_framerate and provide a stub for set_framerate
 1.56  14-Mar-2020  christos revert the 0x% -> %# change for fixed width formats pointed out by uwe.
 1.55  13-Mar-2020  christos PR/55068: sc.dying: Fix printf formats:
- no %s/%p for kernel log
- 0x% -> %#
- always %j for kernel log
 1.54  08-Feb-2020  maxv Move uvideo's parsers into usbdi.c, to make them global. Rename
usb_desc_iter_peek_next -> usb_desc_iter_peek for consistency.
 1.53  01-Dec-2019  maxv branches: 1.53.2;
localify
 1.52  23-Oct-2019  maya we want to check that the allocation is going to be zero, not whether
some pointer is NULL (oops).

Should be the right version this time!
 1.51  23-Oct-2019  maya Check if size is zero, too.

PR kern/53734
 1.50  23-Oct-2019  maya Avoid kmem_alloc(0,..), which hits an assertion.

PR kern/53734: Prevent kernel panic during Wide Vision FHD Camera detection
 1.49  01-Oct-2019  chs in many device attach paths, allocate memory with KM_SLEEP instead of KM_NOSLEEP
and remove code to handle failures that can no longer happen.
 1.48  15-Sep-2019  maxv Add missing length checks on descriptors, to prevent buffer overflows.
Found via KASAN+vHCI. Some remain however, but it looks like the code
needs to be re-thought along the way, so it will be fixed later.
 1.47  05-May-2019  mrg branches: 1.47.2;
remove explicit 'extern struct cfdriver <my>_cd;' and use ioconf.h
 1.46  21-Jan-2018  skrll branches: 1.46.4;
PR kern/52931 Kernel panics with Atheros usb wireless interface

Audit the flags to usbd_create_xfer so that USBD_FORCE_SHORT_XFER is
supplied wherever such a transfer is setup. We can drop
USBD_SHORT_XFER_OK as it has not bearing on number of TDs
 1.45  22-Jun-2017  khorben Typos in comments
 1.44  01-Jun-2017  chs branches: 1.44.2;
remove checks for failure after memory allocation calls that cannot fail:

kmem_alloc() with KM_SLEEP
kmem_zalloc() with KM_SLEEP
percpu_alloc()
pserialize_create()
psref_class_create()

all of these paths include an assertion that the allocation has not failed,
so callers should not assert that again.
 1.43  07-Jul-2016  msaitoh KNF. Remove extra spaces. No functional change.
 1.42  23-Apr-2016  skrll Merge nick-nhusb

- API / infrastructure changes to support memory management changes.
- Memory management improvements and bug fixes.
- HCDs should now be MP safe
- conversion to KERNHIST based debug
- FS/LS isoc support on ehci(4).
- conversion to kmem(9)
- Some USB 3 support - mostly from Takahiro HAYASHI (t-hash).
- interrupt transfers now get proper DMA operations
- general bug fixes
- kern/48308
- uhub status notification improvements
- umass(4) probe fix (applied to HEAD already)
- ohci(4) short transfer fix
 1.41  12-Sep-2014  skrll branches: 1.41.2;
Improve USB debugging with USBHIST based on KERNHIST.

Convert some DPRINTFs to USBHIST_LOG and allow usbdebug, ehcidebug and
umassdebug to be changed via sysctl.

Remove the #define mess in usb.h.

This was started by mrg@ and updated by reinoud@
 1.40  28-Jan-2014  martin branches: 1.40.4; 1.40.8;
Initialize a variable earlier, so it is not used unitialized in an
error path.
 1.39  17-Oct-2013  christos - remove unused variables
- move ifdef variables inside ifdef sections
 1.38  05-Jan-2013  christos branches: 1.38.2;
- need opt_usb.h if depending on USB_DEBUG
- remove trailing whitespace
- add missing KERNEL_RCSID
 1.37  23-Dec-2011  jakllsch branches: 1.37.6;
Revert previous due to active usbmp branch(es).
 1.36  22-Dec-2011  jakllsch Adjust-away inconsistent and trailing whitespace.
 1.35  24-May-2011  joerg branches: 1.35.4; 1.35.8;
Use proper format string
 1.34  16-May-2011  drochner fix detach() to avoid use-after-free problems:
-stop transfers before freeing data structures
(and comment out a useless delay)
-free devinfo later
Hot-unplugging an USB cam while in use doesn't crash my box anymore now.
 1.33  24-Dec-2010  jmcneill branches: 1.33.2;
VIDIOC_QUERYCAP changes:
- use driver name instead of device instance name in 'driver' field
- add 'get_businfo' callback to fill in 'bus_info' field instead of
hard-coding "USB"
- use the kernel version for the 'version' field instead of 1
- adapt pseye and uvideo drivers to changes in struct video_hw_if
 1.32  03-Nov-2010  dyoung Stop using the compatibility macros USB_ATTACH(), USB_DETACH(),
USB_MATCH(), et cetera. These files produce the same assembly
(according to objdump -d) before and after the change
 1.31  22-Apr-2010  pooka fix compilation with -Wmissing-field-initializers.
smoke _KERNEL_OPT where appropriate.
 1.30  12-Nov-2009  dyoung branches: 1.30.2; 1.30.4;
Simplify activation hooks. (sc_dying must die!)
 1.29  09-Mar-2009  uebayasi branches: 1.29.2;
These don't need <sys/tty.h>.
 1.28  18-Feb-2009  jmcneill Revision 1.25 was unintentionally reverted in the previous commit, bring
it back.
 1.27  09-Feb-2009  jmorse Fix uvideo_stream_init uninitialized variable / bad argument, leading to panic when opening video stream.
 1.26  30-Jan-2009  jmcneill branches: 1.26.2;
When setting up isochronous transfers, fix a typo in an out-of-memory test.
 1.25  20-Jan-2009  drochner kill unused variable
 1.24  23-Dec-2008  jmorse Fix UVC webcam output by:
- Storing updated video format after user changes format
- Round up number of xfers queued to multiple of 8, due to ehci inefficiencies
- Remove random debugging line I slipped in earlier
 1.23  28-Nov-2008  jmcneill Don't select an endpoint with a larger packet size than the maximum for
the current video stream.
 1.22  28-Nov-2008  jmorse Modified uvideo_stream_init_desc to correctly calculate max packet size for high speed endpoints.
 1.21  21-Sep-2008  jmcneill branches: 1.21.2; 1.21.4; 1.21.6; 1.21.8; 1.21.10;
Register with pmf
 1.20  21-Sep-2008  jmcneill Guard against short bHeaderLength when processing video payload
 1.19  21-Sep-2008  freza Make it compile with DPRINTFs disabled.
 1.18  21-Sep-2008  jmcneill Discard frames with header lengths larger than we expect them to be.
Use USBD_NO_COPY and no timeout with the bulk transfer. uvideo(4)
works on EeePC now.
 1.17  21-Sep-2008  jmcneill UVC bulk endpoint support, from myself, mjf, and a bottle of vodka. Mostly
works, doesn't handle stream errors properly yet.
 1.16  20-Sep-2008  jmcneill Fix reversed test in uvideo_init_control, from Patrick Mahoney
 1.15  20-Sep-2008  jmcneill Add UYVY support.
 1.14  20-Sep-2008  jmcneill Use probe/GET_MAX to determine wCompQuality value during negotiation
 1.13  20-Sep-2008  jmcneill Print uDWord types with %u instead of %d
 1.12  19-Sep-2008  jmcneill uvideo_set_format: perform a probe/SET, probe/GET before commit/SET instead
of relying on the information in probe/GET to be already valid.
 1.11  19-Sep-2008  jmcneill Add pixel format selection support.
 1.10  18-Sep-2008  jmcneill Add support for video mode selection, and protect isoc xfer shutdown
with splusb
 1.9  18-Sep-2008  jmcneill Fix kmod support.
 1.8  18-Sep-2008  jmcneill Properly calculate nframes for isoc xfers, and skip uvc payloads with
a length of 0, from Matthias Drochner.
 1.7  18-Sep-2008  jmcneill defflag UVIDEO_DEBUG
 1.6  18-Sep-2008  jmcneill For now, select default format in uvideo_open. Makes ekiga happy.
 1.5  18-Sep-2008  jmcneill * Use determined default format based on descriptors rather than relying on
GET_DEF, as this is probably not what is wanted.
* Don't select an alternate interface with max packet size > 1024
 1.4  18-Sep-2008  jmcneill Uncomment code accidentally commented out in the last commit.
 1.3  18-Sep-2008  jmcneill Allow for multiple simultaneous isoc xfers to be in progress at a time,
to reduce the chance of data loss.
 1.2  09-Sep-2008  cegger make this build w/o UVIDEO_DEBUG
 1.1  09-Sep-2008  jmcneill USB Video Class capture device driver, part of Patrick Mahoney's Google
Summer of Code 2008 project.
 1.21.10.5  19-Feb-2009  snj Pull up following revision(s) (requested by jmorse in ticket #440):
sys/dev/usb/uvideo.c: revision 1.27 via patch
Fix uvideo_stream_init uninitialized variable / bad argument, leading to
panic when opening video stream.
 1.21.10.4  02-Feb-2009  snj Pull up following revision(s) (requested by jmcneill in ticket #382):
sys/dev/usb/uvideo.c: revision 1.26
When setting up isochronous transfers, fix a typo in an out-of-memory test.
 1.21.10.3  27-Dec-2008  snj Pull up following revision(s) (requested by jmorse in ticket #204):
sys/dev/video.c: revision 1.18
sys/dev/usb/uvideo.c: revision 1.24
Fix UVC webcam output by:
- Storing updated video format after user changes format
- Round up number of xfers queued to multiple of 8, due to ehci inefficiencies
- Remove random debugging line I slipped in earlier
 1.21.10.2  29-Nov-2008  bouyer Pull up following revision(s) (requested by jmcneill in ticket #144):
sys/dev/usb/uvideo.c: revision 1.23
Don't select an endpoint with a larger packet size than the maximum for
the current video stream.
 1.21.10.1  29-Nov-2008  bouyer Pull up following revision(s) (requested by jmorse in ticket #139):
sys/dev/usb/uvideo.c: revision 1.22
Modified uvideo_stream_init_desc to correctly calculate max packet size
for high speed endpoints.
 1.21.8.3  28-Apr-2009  skrll Sync with HEAD.
 1.21.8.2  03-Mar-2009  skrll Sync with HEAD.
 1.21.8.1  19-Jan-2009  skrll Sync with HEAD.
 1.21.6.3  13-Dec-2008  haad Update haad-dm branch to haad-dm-base2.
 1.21.6.2  19-Oct-2008  haad Sync with HEAD.
 1.21.6.1  21-Sep-2008  haad file uvideo.c was added on branch haad-dm on 2008-10-19 22:17:10 +0000
 1.21.4.3  17-Jan-2009  mjf Sync with HEAD.
 1.21.4.2  28-Sep-2008  mjf Sync with HEAD.
 1.21.4.1  21-Sep-2008  mjf file uvideo.c was added on branch mjf-devfs2 on 2008-09-28 10:40:34 +0000
 1.21.2.3  10-Oct-2008  skrll Sync with HEAD.
 1.21.2.2  24-Sep-2008  wrstuden Merge in changes between wrstuden-revivesa-base-2 and
wrstuden-revivesa-base-3.
 1.21.2.1  21-Sep-2008  wrstuden file uvideo.c was added on branch wrstuden-revivesa on 2008-09-24 16:38:56 +0000
 1.26.2.1  13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.29.2.4  11-Aug-2010  yamt sync with head.
 1.29.2.3  11-Mar-2010  yamt sync with head
 1.29.2.2  04-May-2009  yamt sync with head.
 1.29.2.1  09-Mar-2009  yamt file uvideo.c was added on branch yamt-nfs-mp on 2009-05-04 08:13:22 +0000
 1.30.4.3  31-May-2011  rmind sync with head
 1.30.4.2  05-Mar-2011  rmind sync with head
 1.30.4.1  30-May-2010  rmind sync with head
 1.30.2.2  06-Nov-2010  uebayasi Sync with HEAD.
 1.30.2.1  30-Apr-2010  uebayasi Sync with HEAD.
 1.33.2.1  06-Jun-2011  jruoho Sync with HEAD.
 1.35.8.1  18-Feb-2012  mrg merge to -current.
 1.35.4.2  22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.35.4.1  23-Jan-2013  yamt sync with head
 1.37.6.3  03-Dec-2017  jdolecek update from HEAD
 1.37.6.2  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.37.6.1  25-Feb-2013  tls resync with head
 1.38.2.1  18-May-2014  rmind sync with head
 1.40.8.1  06-Sep-2016  skrll First pass at netbsd-7 updated with USB code from HEAD
 1.40.4.2  19-Feb-2018  snj Pull up following revision(s) (requested by skrll in ticket #1556):
sys/dev/usb/if_athn_usb.c: 1.25
sys/dev/usb/if_atu.c: 1.56
sys/dev/usb/if_aue.c: 1.142
sys/dev/usb/if_axe.c: 1.84
sys/dev/usb/if_axen.c: 1.12
sys/dev/usb/if_cdce.c: 1.45
sys/dev/usb/if_cue.c: 1.77
sys/dev/usb/if_kue.c: 1.91
sys/dev/usb/if_otus.c: 1.32
sys/dev/usb/if_rum.c: 1.59
sys/dev/usb/if_run.c: 1.25
sys/dev/usb/if_smsc.c: 1.33
sys/dev/usb/if_udav.c: 1.52
sys/dev/usb/if_upgt.c: 1.18
sys/dev/usb/if_upl.c: 1.61
sys/dev/usb/if_ural.c: 1.53
sys/dev/usb/if_url.c: 1.57
sys/dev/usb/if_urndis.c: 1.17
sys/dev/usb/if_urtw.c: 1.14
sys/dev/usb/if_urtwn.c: 1.56
sys/dev/usb/if_zyd.c: 1.45
sys/dev/usb/irmce.c: 1.4
sys/dev/usb/pseye.c: 1.24
sys/dev/usb/ubt.c: 1.60
sys/dev/usb/ucom.c: 1.120
sys/dev/usb/udsir.c: 1.6
sys/dev/usb/ugen.c: 1.137
sys/dev/usb/uhso.c: 1.27
sys/dev/usb/uirda.c: 1.43
sys/dev/usb/ulpt.c: 1.99
sys/dev/usb/umass.c: 1.163
sys/dev/usb/umidi.c: 1.74
sys/dev/usb/uscanner.c: 1.82
sys/dev/usb/usscanner.c: 1.43
sys/dev/usb/ustir.c: 1.39
sys/dev/usb/utoppy.c: 1.30
sys/dev/usb/uvideo.c: 1.46
PR kern/52931 Kernel panics with Atheros usb wireless interface
Audit the flags to usbd_create_xfer so that USBD_FORCE_SHORT_XFER is
supplied wherever such a transfer is setup. We can drop
USBD_SHORT_XFER_OK as it has not bearing on number of TDs
 1.40.4.1  05-Apr-2017  snj Pull up following revision(s) (requested by skrll in ticket #1395):
share/man/man4/axe.4: netbsd-7-nhusb
share/man/man4/axen.4: netbsd-7-nhusb
share/man/man4/cdce.4: netbsd-7-nhusb
share/man/man4/uaudio.4: netbsd-7-nhusb
share/man/man4/ucom.4: netbsd-7-nhusb
share/man/man4/uep.4: netbsd-7-nhusb
share/man/man4/urtw.4: netbsd-7-nhusb
share/man/man4/usb.4: netbsd-7-nhusb
share/man/man4/uyap.4: netbsd-7-nhusb
share/man/man4/xhci.4: netbsd-7-nhusb
share/man/man9/usbdi.9: netbsd-7-nhusb
sys/arch/amd64/conf/ALL: netbsd-7-nhusb
sys/arch/amd64/conf/GENERIC: netbsd-7-nhusb
sys/arch/amiga/dev/slhci_zbus.c: netbsd-7-nhusb
sys/arch/arm/allwinner/awin_otg.c: netbsd-7-nhusb
sys/arch/arm/allwinner/awin_usb.c: netbsd-7-nhusb
sys/arch/arm/amlogic/amlogic_dwctwo.c: netbsd-7-nhusb
sys/arch/arm/at91/at91ohci.c: netbsd-7-nhusb
sys/arch/arm/broadcom/bcm2835_dwctwo.c: netbsd-7-nhusb
sys/arch/arm/broadcom/bcm53xx_usb.c: netbsd-7-nhusb
sys/arch/arm/ep93xx/epohci.c: netbsd-7-nhusb
sys/arch/arm/gemini/obio_ehci.c: netbsd-7-nhusb
sys/arch/arm/imx/files.imx23: netbsd-7-nhusb
sys/arch/arm/imx/imxusb.c: netbsd-7-nhusb
sys/arch/arm/imx/imxusbreg.h: netbsd-7-nhusb
sys/arch/arm/omap/obio_ohci.c: netbsd-7-nhusb
sys/arch/arm/omap/omap3_ehci.c: netbsd-7-nhusb
sys/arch/arm/omap/omapl1x_ohci.c: netbsd-7-nhusb
sys/arch/arm/omap/tiotg.c: netbsd-7-nhusb
sys/arch/arm/s3c2xx0/ohci_s3c24x0.c: netbsd-7-nhusb
sys/arch/arm/samsung/exynos_usb.c: netbsd-7-nhusb
sys/arch/arm/xscale/pxa2x0_ohci.c: netbsd-7-nhusb
sys/arch/arm/zynq/zynq_usb.c: netbsd-7-nhusb
sys/arch/hpcarm/dev/nbp_slhci.c: netbsd-7-nhusb
sys/arch/hpcmips/dev/plumohci.c: netbsd-7-nhusb
sys/arch/i386/conf/ALL: netbsd-7-nhusb
sys/arch/i386/conf/GENERIC: netbsd-7-nhusb
sys/arch/i386/pci/gcscehci.c: netbsd-7-nhusb
sys/arch/luna68k/conf/GENERIC: netbsd-7-nhusb
sys/arch/mips/adm5120/dev/ahci.c: netbsd-7-nhusb
sys/arch/mips/adm5120/dev/ahcivar.h: netbsd-7-nhusb
sys/arch/mips/alchemy/dev/ohci_aubus.c: netbsd-7-nhusb
sys/arch/mips/atheros/dev/ehci_arbus.c: netbsd-7-nhusb
sys/arch/mips/atheros/dev/ohci_arbus.c: netbsd-7-nhusb
sys/arch/mips/conf/files.adm5120: netbsd-7-nhusb
sys/arch/mips/ralink/ralink_ehci.c: netbsd-7-nhusb
sys/arch/mips/ralink/ralink_ohci.c: netbsd-7-nhusb
sys/arch/mips/rmi/rmixl_ehci.c: netbsd-7-nhusb
sys/arch/mips/rmi/rmixl_ohci.c: netbsd-7-nhusb
sys/arch/playstation2/dev/ohci_sbus.c: netbsd-7-nhusb
sys/arch/powerpc/booke/dev/pq3ehci.c: netbsd-7-nhusb
sys/arch/powerpc/ibm4xx/dev/dwctwo_plb.c: netbsd-7-nhusb
sys/arch/x68k/dev/slhci_intio.c: netbsd-7-nhusb
sys/conf/files: netbsd-7-nhusb
sys/dev/cardbus/ehci_cardbus.c: netbsd-7-nhusb
sys/dev/cardbus/ohci_cardbus.c: netbsd-7-nhusb
sys/dev/cardbus/uhci_cardbus.c: netbsd-7-nhusb
sys/dev/ic/sl811hs.c: netbsd-7-nhusb
sys/dev/ic/sl811hsvar.h: netbsd-7-nhusb
sys/dev/isa/slhci_isa.c: netbsd-7-nhusb
sys/dev/marvell/ehci_mv.c: netbsd-7-nhusb
sys/dev/pci/ehci_pci.c: netbsd-7-nhusb
sys/dev/pci/ohci_pci.c: netbsd-7-nhusb
sys/dev/pci/uhci_pci.c: netbsd-7-nhusb
sys/dev/pci/xhci_pci.c: netbsd-7-nhusb
sys/dev/pcmcia/slhci_pcmcia.c: netbsd-7-nhusb
sys/dev/usb/Makefile.usbdevs: netbsd-7-nhusb
sys/dev/usb/TODO: netbsd-7-nhusb
sys/dev/usb/TODO.usbmp: netbsd-7-nhusb
sys/dev/usb/aubtfwl.c: netbsd-7-nhusb
sys/dev/usb/auvitek.c: netbsd-7-nhusb
sys/dev/usb/auvitek_audio.c: netbsd-7-nhusb
sys/dev/usb/auvitek_dtv.c: netbsd-7-nhusb
sys/dev/usb/auvitek_i2c.c: netbsd-7-nhusb
sys/dev/usb/auvitek_video.c: netbsd-7-nhusb
sys/dev/usb/auvitekvar.h: netbsd-7-nhusb
sys/dev/usb/ehci.c: netbsd-7-nhusb
sys/dev/usb/ehcireg.h: netbsd-7-nhusb
sys/dev/usb/ehcivar.h: netbsd-7-nhusb
sys/dev/usb/emdtv.c: netbsd-7-nhusb
sys/dev/usb/emdtv_dtv.c: netbsd-7-nhusb
sys/dev/usb/emdtv_ir.c: netbsd-7-nhusb
sys/dev/usb/emdtvvar.h: netbsd-7-nhusb
sys/dev/usb/ezload.c: netbsd-7-nhusb
sys/dev/usb/ezload.h: netbsd-7-nhusb
sys/dev/usb/files.usb: netbsd-7-nhusb
sys/dev/usb/hid.c: netbsd-7-nhusb
sys/dev/usb/hid.h: netbsd-7-nhusb
sys/dev/usb/if_athn_usb.c: netbsd-7-nhusb
sys/dev/usb/if_athn_usb.h: netbsd-7-nhusb
sys/dev/usb/if_atu.c: netbsd-7-nhusb
sys/dev/usb/if_atureg.h: netbsd-7-nhusb
sys/dev/usb/if_aue.c: netbsd-7-nhusb
sys/dev/usb/if_auereg.h: netbsd-7-nhusb
sys/dev/usb/if_axe.c: netbsd-7-nhusb
sys/dev/usb/if_axen.c: netbsd-7-nhusb
sys/dev/usb/if_axenreg.h: netbsd-7-nhusb
sys/dev/usb/if_axereg.h: netbsd-7-nhusb
sys/dev/usb/if_cdce.c: netbsd-7-nhusb
sys/dev/usb/if_cdcereg.h: netbsd-7-nhusb
sys/dev/usb/if_cue.c: netbsd-7-nhusb
sys/dev/usb/if_cuereg.h: netbsd-7-nhusb
sys/dev/usb/if_kue.c: netbsd-7-nhusb
sys/dev/usb/if_kuereg.h: netbsd-7-nhusb
sys/dev/usb/if_otus.c: netbsd-7-nhusb
sys/dev/usb/if_otusvar.h: netbsd-7-nhusb
sys/dev/usb/if_rum.c: netbsd-7-nhusb
sys/dev/usb/if_rumreg.h: netbsd-7-nhusb
sys/dev/usb/if_rumvar.h: netbsd-7-nhusb
sys/dev/usb/if_run.c: netbsd-7-nhusb
sys/dev/usb/if_runvar.h: netbsd-7-nhusb
sys/dev/usb/if_smsc.c: netbsd-7-nhusb
sys/dev/usb/if_smscreg.h: netbsd-7-nhusb
sys/dev/usb/if_smscvar.h: netbsd-7-nhusb
sys/dev/usb/if_udav.c: netbsd-7-nhusb
sys/dev/usb/if_udavreg.h: netbsd-7-nhusb
sys/dev/usb/if_upgt.c: netbsd-7-nhusb
sys/dev/usb/if_upgtvar.h: netbsd-7-nhusb
sys/dev/usb/if_upl.c: netbsd-7-nhusb
sys/dev/usb/if_ural.c: netbsd-7-nhusb
sys/dev/usb/if_uralreg.h: netbsd-7-nhusb
sys/dev/usb/if_uralvar.h: netbsd-7-nhusb
sys/dev/usb/if_url.c: netbsd-7-nhusb
sys/dev/usb/if_urlreg.h: netbsd-7-nhusb
sys/dev/usb/if_urndis.c: netbsd-7-nhusb
sys/dev/usb/if_urndisreg.h: netbsd-7-nhusb
sys/dev/usb/if_urtw.c: netbsd-7-nhusb
sys/dev/usb/if_urtwn.c: netbsd-7-nhusb
sys/dev/usb/if_urtwn_data.h: netbsd-7-nhusb
sys/dev/usb/if_urtwnreg.h: netbsd-7-nhusb
sys/dev/usb/if_urtwnvar.h: netbsd-7-nhusb
sys/dev/usb/if_urtwreg.h: netbsd-7-nhusb
sys/dev/usb/if_zyd.c: netbsd-7-nhusb
sys/dev/usb/if_zydreg.h: netbsd-7-nhusb
sys/dev/usb/irmce.c: netbsd-7-nhusb
sys/dev/usb/moscom.c: netbsd-7-nhusb
sys/dev/usb/motg.c: netbsd-7-nhusb
sys/dev/usb/motgvar.h: netbsd-7-nhusb
sys/dev/usb/ohci.c: netbsd-7-nhusb
sys/dev/usb/ohcireg.h: netbsd-7-nhusb
sys/dev/usb/ohcivar.h: netbsd-7-nhusb
sys/dev/usb/pseye.c: netbsd-7-nhusb
sys/dev/usb/slurm.c: netbsd-7-nhusb
sys/dev/usb/stuirda.c: netbsd-7-nhusb
sys/dev/usb/u3g.c: netbsd-7-nhusb
sys/dev/usb/uark.c: netbsd-7-nhusb
sys/dev/usb/uatp.c: netbsd-7-nhusb
sys/dev/usb/uaudio.c: netbsd-7-nhusb
sys/dev/usb/uberry.c: netbsd-7-nhusb
sys/dev/usb/ubsa.c: netbsd-7-nhusb
sys/dev/usb/ubsa_common.c: netbsd-7-nhusb
sys/dev/usb/ubsavar.h: netbsd-7-nhusb
sys/dev/usb/ubt.c: netbsd-7-nhusb
sys/dev/usb/uchcom.c: netbsd-7-nhusb
sys/dev/usb/ucom.c: netbsd-7-nhusb
sys/dev/usb/ucomvar.h: netbsd-7-nhusb
sys/dev/usb/ucycom.c: netbsd-7-nhusb
sys/dev/usb/udl.c: netbsd-7-nhusb
sys/dev/usb/udl.h: netbsd-7-nhusb
sys/dev/usb/udsbr.c: netbsd-7-nhusb
sys/dev/usb/udsir.c: netbsd-7-nhusb
sys/dev/usb/uep.c: netbsd-7-nhusb
sys/dev/usb/uftdi.c: netbsd-7-nhusb
sys/dev/usb/uftdireg.h: netbsd-7-nhusb
sys/dev/usb/ugen.c: netbsd-7-nhusb
sys/dev/usb/ugensa.c: netbsd-7-nhusb
sys/dev/usb/uhci.c: netbsd-7-nhusb
sys/dev/usb/uhcireg.h: netbsd-7-nhusb
sys/dev/usb/uhcivar.h: netbsd-7-nhusb
sys/dev/usb/uhid.c: netbsd-7-nhusb
sys/dev/usb/uhidev.c: netbsd-7-nhusb
sys/dev/usb/uhidev.h: netbsd-7-nhusb
sys/dev/usb/uhmodem.c: netbsd-7-nhusb
sys/dev/usb/uhso.c: netbsd-7-nhusb
sys/dev/usb/uhub.c: netbsd-7-nhusb
sys/dev/usb/uipad.c: netbsd-7-nhusb
sys/dev/usb/uipaq.c: netbsd-7-nhusb
sys/dev/usb/uirda.c: netbsd-7-nhusb
sys/dev/usb/uirdavar.h: netbsd-7-nhusb
sys/dev/usb/ukbd.c: netbsd-7-nhusb
sys/dev/usb/ukbdmap.c: netbsd-7-nhusb
sys/dev/usb/ukyopon.c: netbsd-7-nhusb
sys/dev/usb/ukyopon.h: netbsd-7-nhusb
sys/dev/usb/ulpt.c: netbsd-7-nhusb
sys/dev/usb/umass.c: netbsd-7-nhusb
sys/dev/usb/umass_isdata.c: netbsd-7-nhusb
sys/dev/usb/umass_isdata.h: netbsd-7-nhusb
sys/dev/usb/umass_quirks.c: netbsd-7-nhusb
sys/dev/usb/umass_quirks.h: netbsd-7-nhusb
sys/dev/usb/umass_scsipi.c: netbsd-7-nhusb
sys/dev/usb/umass_scsipi.h: netbsd-7-nhusb
sys/dev/usb/umassvar.h: netbsd-7-nhusb
sys/dev/usb/umcs.c: netbsd-7-nhusb
sys/dev/usb/umct.c: netbsd-7-nhusb
sys/dev/usb/umidi.c: netbsd-7-nhusb
sys/dev/usb/umidi_quirks.c: netbsd-7-nhusb
sys/dev/usb/umidi_quirks.h: netbsd-7-nhusb
sys/dev/usb/umodem.c: netbsd-7-nhusb
sys/dev/usb/umodem_common.c: netbsd-7-nhusb
sys/dev/usb/umodemvar.h: netbsd-7-nhusb
sys/dev/usb/ums.c: netbsd-7-nhusb
sys/dev/usb/uplcom.c: netbsd-7-nhusb
sys/dev/usb/urio.c: netbsd-7-nhusb
sys/dev/usb/urio.h: netbsd-7-nhusb
sys/dev/usb/usb.c: netbsd-7-nhusb
sys/dev/usb/usb.h: netbsd-7-nhusb
sys/dev/usb/usb_mem.c: netbsd-7-nhusb
sys/dev/usb/usb_mem.h: netbsd-7-nhusb
sys/dev/usb/usb_quirks.c: netbsd-7-nhusb
sys/dev/usb/usb_quirks.h: netbsd-7-nhusb
sys/dev/usb/usb_subr.c: netbsd-7-nhusb
sys/dev/usb/usbdevices.config: netbsd-7-nhusb
sys/dev/usb/usbdevs: netbsd-7-nhusb
sys/dev/usb/usbdevs.h: netbsd-7-nhusb
sys/dev/usb/usbdevs_data.h: netbsd-7-nhusb
sys/dev/usb/usbdi.c: netbsd-7-nhusb
sys/dev/usb/usbdi.h: netbsd-7-nhusb
sys/dev/usb/usbdi_util.c: netbsd-7-nhusb
sys/dev/usb/usbdi_util.h: netbsd-7-nhusb
sys/dev/usb/usbdivar.h: netbsd-7-nhusb
sys/dev/usb/usbhid.h: netbsd-7-nhusb
sys/dev/usb/usbhist.h: netbsd-7-nhusb
sys/dev/usb/usbroothub.c: netbsd-7-nhusb
sys/dev/usb/usbroothub.h: netbsd-7-nhusb
sys/dev/usb/usbroothub_subr.c: delete
sys/dev/usb/usbroothub_subr.h: delete
sys/dev/usb/uscanner.c: netbsd-7-nhusb
sys/dev/usb/uslsa.c: netbsd-7-nhusb
sys/dev/usb/usscanner.c: netbsd-7-nhusb
sys/dev/usb/ustir.c: netbsd-7-nhusb
sys/dev/usb/uthum.c: netbsd-7-nhusb
sys/dev/usb/utoppy.c: netbsd-7-nhusb
sys/dev/usb/uts.c: netbsd-7-nhusb
sys/dev/usb/uvideo.c: netbsd-7-nhusb
sys/dev/usb/uvisor.c: netbsd-7-nhusb
sys/dev/usb/uvscom.c: netbsd-7-nhusb
sys/dev/usb/uyap.c: netbsd-7-nhusb
sys/dev/usb/uyap_firmware.h: netbsd-7-nhusb
sys/dev/usb/uyurex.c: netbsd-7-nhusb
sys/dev/usb/x1input_rdesc.h: netbsd-7-nhusb
sys/dev/usb/xhci.c: netbsd-7-nhusb
sys/dev/usb/xhcireg.h: netbsd-7-nhusb
sys/dev/usb/xhcivar.h: netbsd-7-nhusb
sys/dev/usb/xinput_rdesc.h: netbsd-7-nhusb
sys/external/bsd/common/conf/files.linux: netbsd-7-nhusb
sys/external/bsd/common/include/linux/err.h: netbsd-7-nhusb
sys/external/bsd/common/include/linux/kernel.h: netbsd-7-nhusb
sys/external/bsd/common/include/linux/workqueue.h: netbsd-7-nhusb
sys/external/bsd/common/linux/linux_work.c: netbsd-7-nhusb
sys/external/bsd/drm2/dist/drm/radeon/atombios_encoders.c: netbsd-7-nhusb
sys/external/bsd/drm2/dist/drm/radeon/radeon_legacy_encoders.c: netbsd-7-nhusb
sys/external/bsd/drm2/drm/files.drmkms: netbsd-7-nhusb
sys/external/bsd/drm2/i915drm/files.i915drmkms: netbsd-7-nhusb
sys/external/bsd/drm2/include/linux/err.h: delete
sys/external/bsd/drm2/include/linux/workqueue.h: delete
sys/external/bsd/drm2/linux/files.drmkms_linux: netbsd-7-nhusb
sys/external/bsd/drm2/linux/linux_work.c: delete
sys/external/bsd/dwc2/dwc2.c: netbsd-7-nhusb
sys/external/bsd/dwc2/dwc2.h: netbsd-7-nhusb
sys/external/bsd/dwc2/dwc2var.h: netbsd-7-nhusb
sys/external/bsd/dwc2/dwctwo2netbsd: netbsd-7-nhusb
sys/external/bsd/dwc2/conf/files.dwc2: netbsd-7-nhusb
sys/external/bsd/dwc2/dist/dwc2_core.c: netbsd-7-nhusb
sys/external/bsd/dwc2/dist/dwc2_core.h: netbsd-7-nhusb
sys/external/bsd/dwc2/dist/dwc2_coreintr.c: netbsd-7-nhusb
sys/external/bsd/dwc2/dist/dwc2_hcd.c: netbsd-7-nhusb
sys/external/bsd/dwc2/dist/dwc2_hcd.h: netbsd-7-nhusb
sys/external/bsd/dwc2/dist/dwc2_hcdddma.c: netbsd-7-nhusb
sys/external/bsd/dwc2/dist/dwc2_hcdintr.c: netbsd-7-nhusb
sys/external/bsd/dwc2/dist/dwc2_hcdqueue.c: netbsd-7-nhusb
sys/external/bsd/dwc2/dist/dwc2_hw.h: netbsd-7-nhusb
sys/modules/drmkms_linux/Makefile: netbsd-7-nhusb
sys/modules/i915drmkms/Makefile: netbsd-7-nhusb
sys/rump/dev/lib/libugenhc/ugenhc.c: netbsd-7-nhusb
sys/rump/dev/lib/libusb/Makefile: netbsd-7-nhusb
sys/rump/dev/lib/libusb/USB.ioconf: netbsd-7-nhusb
sys/rump/dev/lib/libusb/usb_at_ugenhc.c: delete
sys/rump/dev/lib/libusb/opt/opt_usb.h: delete
sys/rump/dev/lib/libusb/opt/opt_usbverbose.h: delete
sys/sys/mbuf.h: netbsd-7-nhusb
usr.sbin/usbdevs/usbdevs.8: netbsd-7-nhusb
usr.sbin/usbdevs/usbdevs.c: netbsd-7-nhusb
Merge netbsd-7-nhusb:
- API / infrastructure changes to support memory management changes.
- Memory management improvements and bug fixes.
- HCDs should now be MP safe
- conversion to KERNHIST based debug
- FS/LS isoc support on ehci(4).
- conversion to kmem(9)
- Some USB 3 support - mostly from Takahiro HAYASHI (t-hash).
- interrupt transfers now get proper DMA operations
- general bug fixes
- kern/48308
- uhub status notification improvements
- umass(4) probe fix (applied to HEAD already)
- ohci(4) short transfer fix
- Change the SOFTINT level from NET to SERIAL for the USB softint handler.
This gives the callback a chance of running when another softint handler
at SOFTINT_NET has blocked holding a lock, e.g. softnet_lock and most of
the network stack.
- kern/49065 - ifconfig tun0 ... sequence locks up system / lockup:
softnet_lock held across usb xfr
- kern/50491 - unkillable wait in usbd_transfer while using usmsc0
on raspberry pi 2
- kern/51395 - USB Ethernet makes xhci hang
- Various improvements to slhci(4)
- Various improvements to dwc2(4)
 1.41.2.13  28-Aug-2017  skrll Sync with HEAD
 1.41.2.12  09-Jul-2016  skrll Sync with HEAD
 1.41.2.11  20-Mar-2016  skrll Whitespace
 1.41.2.10  28-Dec-2015  skrll Strictly follow the sequence abort pipe, destroy xfers, and close pipe as
API now requires. Plug some memory leaks in some drivers while doing
this.

Also, remove up_refcnt as it was broken and helped leak more memory.
 1.41.2.9  06-Oct-2015  skrll Move from usbd_{alloc,free}_xfer and usbd_{alloc,free}_buffer to
usbd_{create,destroy}_xfer. The API change will allow future changes
to HCDs to simplify the transfer resource allocation and activation.

Several devices tested including ucom, umass, smsc, uvideo, and uaudio.
 1.41.2.8  21-Mar-2015  skrll Add prefixes to attach_arg structure member names. No functional change.
 1.41.2.7  19-Mar-2015  skrll Do the same as OpenBSD and get rid of the *_handle typedefs and use
plain structures insteads
 1.41.2.6  23-Dec-2014  skrll KNF. No brackets around return value.
 1.41.2.5  06-Dec-2014  skrll KNF. Remove argument name from function declarations.

No functional change.
 1.41.2.4  03-Dec-2014  skrll Remove #include <sys/malloc.h> where it's not (no longer) needed
 1.41.2.3  03-Dec-2014  skrll The grand renaming of structure members.

No functional change.
 1.41.2.2  02-Dec-2014  skrll Step #1 of memory allocation re-organisation.

Centralised the buffer allocation routine which now supports DMA
and non-DMA capable host controllers. Remove the
ubm_{alloc,free}m methods from usbd_bus_methods.

The buffer allocation is only allowed in thread context and,
therefore, negates the usefulness of the reserve dma code which
is removed in this change.

USBD_NO_COPY is also no longer required as usbd_transfer and
usbd_transfer_complete now track buffer usage and handle any
copying.
 1.41.2.1  01-Dec-2014  skrll Remove the lbl argument from usbd_{bulk,intr}_transfer.
 1.44.2.1  31-Jan-2018  martin Pull up following revision(s) (requested by skrll in ticket #509):
sys/dev/usb/if_ural.c: revision 1.53
sys/dev/usb/if_run.c: revision 1.25
sys/dev/usb/ustir.c: revision 1.39
sys/dev/usb/irmce.c: revision 1.4
sys/dev/usb/if_urtwn.c: revision 1.56
sys/dev/usb/pseye.c: revision 1.24
sys/dev/usb/if_rum.c: revision 1.59
sys/dev/usb/if_upl.c: revision 1.61
sys/dev/usb/ucom.c: revision 1.120
sys/dev/usb/if_zyd.c: revision 1.45
sys/dev/usb/if_axen.c: revision 1.12
sys/dev/usb/umidi.c: revision 1.74
sys/dev/usb/if_udav.c: revision 1.52
sys/dev/usb/if_athn_usb.c: revision 1.25
sys/dev/usb/usscanner.c: revision 1.43
sys/dev/usb/ualea.c: revision 1.6 - 1.9
sys/dev/usb/if_upgt.c: revision 1.18
sys/dev/usb/if_atu.c: revision 1.56
sys/dev/usb/utoppy.c: revision 1.30
sys/dev/usb/ubt.c: revision 1.60
sys/dev/usb/if_urtw.c: revision 1.14
sys/dev/usb/uirda.c: revision 1.43
sys/dev/usb/umass.c: revision 1.163
sys/dev/usb/if_cdce.c: revision 1.45
sys/dev/usb/if_cue.c: revision 1.77
sys/dev/usb/if_kue.c: revision 1.91
sys/dev/usb/uvideo.c: revision 1.46
sys/dev/usb/uhso.c: revision 1.27
sys/dev/usb/if_smsc.c: revision 1.33
sys/dev/usb/ugen.c: revision 1.137
sys/dev/usb/if_axe.c: revision 1.84
sys/dev/usb/if_aue.c: revision 1.142
sys/dev/usb/uscanner.c: revision 1.82
sys/dev/usb/if_urndis.c: revision 1.17
sys/dev/usb/udsir.c: revision 1.6
sys/dev/usb/if_url.c: revision 1.57
sys/dev/usb/if_otus.c: revision 1.32
sys/dev/usb/ulpt.c: revision 1.99

PR kern/52931 Kernel panics with Atheros usb wireless interface
Audit the flags to usbd_create_xfer so that USBD_FORCE_SHORT_XFER is
supplied wherever such a transfer is setup. We can drop
USBD_SHORT_XFER_OK as it has not bearing on number of TDs

ualea: Tidy up a bit. Fulfil requests completely.
Don't subtract uninitialized pktsize in error path.
 1.46.4.3  13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.46.4.2  08-Apr-2020  martin Merge changes from current as of 20200406
 1.46.4.1  10-Jun-2019  christos Sync with HEAD
 1.47.2.1  29-Dec-2019  martin Pull up following revision(s) (requested by mlelstv in ticket #590):

sys/dev/usb/uvideo.c: revision 1.50
sys/dev/usb/uvideo.c: revision 1.51
sys/dev/usb/uvideo.c: revision 1.52

Avoid kmem_alloc(0,..), which hits an assertion.

PR kern/53734: Prevent kernel panic during Wide Vision FHD Camera detection
Check if size is zero, too.

PR kern/53734
we want to check that the allocation is going to be zero, not whether
some pointer is NULL (oops).

Should be the right version this time!
 1.53.2.1  29-Feb-2020  ad Sync with head.
 1.59.8.1  31-May-2021  cjep sync with head
 1.59.6.1  17-Jun-2021  thorpej Sync w/ HEAD.

RSS XML Feed