History log of /src/sys/dev/usb/ugen.c |
Revision | | Date | Author | Comments |
1.178 |
| 26-Apr-2025 |
skrll | Some USBHIST (aka KERNHIST) fixes from sc.dying on current-users.
|
1.177 |
| 29-Mar-2024 |
thorpej | ugen and ugenif share the same /dev/ugenN.xx namespace in such a way that the device unit number does not necessarily match the /dev/ugenN.xx unit number (N). If you ONLY have ugen devices, it happens to work out and devpubd scripts can be extremely naive. If you ONLY have ugenif devices, it also happens to work out, but your devpubd scripts have to slightly more informed. If you have a mix of ugen AND ugenif devices, though, you're pretty much out of luck.
So, this change adds a "ugen-unit" device property which devpubd scripts can query to determine which /dev/ugenN.xx nodes a given ugen or ugenif device is using.
|
1.176 |
| 26-Mar-2024 |
thorpej | Define a "flags 1" config directive for ugenif, which is similar to ugen's, but rather forces the ugenif to match at the *lowest* match priority rather than the highest. This allows ugenif to claim only otherwise unclaimed interfaces.
|
1.175 |
| 06-Nov-2023 |
hannken | Undo the DPRINTFN part of the last commit. It breaks i386 at least when KERNHIST_LOG casts the pointer to uintmax_t.
Kernel ALL/i386 compiles again.
|
1.174 |
| 10-Oct-2023 |
simonb | Debug printf tidy up, KNF comma,space nits.
|
1.173 |
| 31-Jul-2023 |
christos | Don't call versioned stuff "old". Follow the naming convention for versioning and name them after the last version of the OS they appeared on.
|
1.172 |
| 20-Jul-2023 |
mrg | various debug updates for some usb drivers
- several new *_DEBUG_DEFAULT options that allow usb debug values to be set to a default that is non-zero: EHCI_DEBUG_DEFAULT, UGEN_DEBUG_DEFAULT, URTWN_DEBUG_DEFAULT, UMS_DEBUG_DEFAULT, and USB_DEBUG_DEFAULT - ugen debug uses fewer usbhist lines for the same info - ums.c converted from printf() to usbhist
|
1.171 |
| 23-Oct-2022 |
riastradh | branches: 1.171.2; ugen(4): Make sure opened is initialized in ugenopen.
Otherwise the error branch is based on garbage.
|
1.170 |
| 23-Oct-2022 |
skrll | Fix USBDEBUG build on ILP32
|
1.169 |
| 21-Oct-2022 |
mrg | ugen(4): convert to USBHIST style debugging.
|
1.168 |
| 26-Sep-2021 |
thorpej | Change the kqueue filterops::f_isfd field to filterops::f_flags, and define a flag FILTEROP_ISFD that has the meaning of the prior f_isfd. Field and flag name aligned with OpenBSD.
This does not constitute a functional or ABI change, as the field location and size, and the value placed in that field, are the same as the previous code, but we're bumping __NetBSD_Version__ so 3rd-party module source code can adapt, as needed.
NetBSD 9.99.89
|
1.167 |
| 07-Sep-2021 |
riastradh | ugen(4): Keep fields null when not allocated; kassert on close.
This avoids silent leaks in DIAGNOSTIC kernels.
|
1.166 |
| 07-Sep-2021 |
riastradh | ugen(4): Use cv_wait loop for draining reference count on detach.
- Should be no need to use cv_timedwait because all users have now been given a wakeup (previously writers were not, so we relied on the timeouts to work out).
- Need to run this in a loop or else a spurious wakeup could cause us to free data structures before the users have actually drained.
|
1.165 |
| 07-Sep-2021 |
riastradh | ugen(4): Use cv_broadcast to wake all I/O operations on detach.
Nothing prevents two concurrent reads or two concurrent writes on any particular ugen endpoint, as far as I can tell, and we need to wake all of them, so use cv_broadcast rather than cv_signal on detach.
XXX It's not clear to me that cv_signal in the xfer completion callbacks is correct either: any one consumer might use less than the full buffer. So I think either we should use cv_broadcast, or consumers that don't use the whole buffer need to issue cv_signal too to wake up another consumer even if we want to avoid a thundering herd.
|
1.164 |
| 07-Sep-2021 |
riastradh | ugen(4): Issue explicit wakeup on detach for OUT endpoints too.
Writers can be blocked in cv_timedwait_sig too.
While here, fix comment: aborting the pipes does not cause all waiters to wake, because the xfer completion callbacks sometimes skip the notification. We should maybe change that, but this is a simpler fix to ensure everyone waiting on I/O is woken to notice sc_dying.
|
1.163 |
| 07-Sep-2021 |
riastradh | ugen(4): Ensure we close pipes on detach.
Calling vdevgone has the effect of VOP_REVOKE -> spec_node_revoke -> VOP_CLOSE -> spec_close -> cdev_close -> ugenclose, but:
(a) the flags passed to VOP_CLOSE don't have FREAD or FWRITE, and (b) ugenclose has no effect when sc_dying is set anyway.
So create another path into the close logic, ugen_do_close. We have to do this in detach _after_ the references have drained because we may free buffers that other users are still using while the reference count is nonzero.
|
1.162 |
| 07-Sep-2021 |
riastradh | ugen(4): Refuse non-forced detach with EBUSY if endpoints are open.
Sprinkle some comments.
|
1.161 |
| 07-Sep-2021 |
riastradh | ugen(4): Prevent ugenopen while ugen_set_config is in progress.
(except on the control endpoint)
Although we hold the kernel lock (which we should eventually change), we may sleep in usbd_set_config_no at which point ugenopen might happen and start making use of endpoint state which we'll stomp all over once usbd_set_config_no returns. Setting sc_is_open[endpt] while we wait prevents this.
|
1.160 |
| 07-Sep-2021 |
riastradh | ugen(4): Fix race of ugenopen against itself.
Even though we have the kernel lock held, a sleep during kmem_alloc or usbd_open_pipe could allow another ugenopen to run concurrently before we have marked the endpoint opened.
To avoid this, mark the endpoint open immediately (while we still have the kernel lock held and before any sleeps, so there is no TOCTOU error here), and then revert on unwind in the event of failure.
|
1.159 |
| 07-Sep-2021 |
riastradh | ugen(4): Sprinkle KERNEL_LOCKED_P assertions around sc_is_open.
|
1.158 |
| 18-Dec-2020 |
thorpej | Use sel{record,remove}_knote().
|
1.157 |
| 18-Aug-2020 |
riastradh | branches: 1.157.2; Fix ugen detach after partial attach.
While here, register null pmf handler even for partially attached devices so they don't needlessly interfere with suspend.
Reported-by: syzbot+5a091d2e62da20b77259@syzkaller.appspotmail.com
|
1.156 |
| 16-Aug-2020 |
riastradh | Fix sloppy mistakes in previous.
1. Give the offset of the rbnode, not some other random members to overwrite with garbage.
2. Don't try to unlock a mutex at NULL.
3. Make sure all paths out after ugenif_acquire go via ugenif_release.
|
1.155 |
| 16-Aug-2020 |
riastradh | Share unit numbering for ugen and ugenif.
This way putting ugenif in kernel config actually works to wire it to the /dev/ugenN.MM device nodes in userland.
Not a fully fleshed out solution to the ugen problem -- there's no way for a userland driver to kick out a kernel driver and take over, but this will let us, e.g., use uhidev(4) for Yubikey OTP/U2F/FIDO2 but ugen(4), with pcscd(8), for Yubikey CCID.
Fix various MP-safety issues while here (still not MPSAFE, but more progress).
|
1.154 |
| 16-Aug-2020 |
riastradh | Convert DIAGNOSTIC prints to KASSERTs.
|
1.153 |
| 16-Aug-2020 |
riastradh | Hold the lock over access to the data structures it covers.
Still not MPSAFE, but progress.
|
1.152 |
| 16-Aug-2020 |
riastradh | Remove UGEN_ASLP microoptimization.
cv_signal already has this microoptimization.
While here, make the lock cover the relevant things we're issuing cv_signal about -- progress toward real MP-safety.
|
1.151 |
| 21-Mar-2020 |
skrll | KNG
|
1.150 |
| 14-Mar-2020 |
christos | revert the 0x% -> %# change for fixed width formats pointed out by uwe.
|
1.149 |
| 13-Mar-2020 |
christos | PR/55068: sc.dying: Fix printf formats: - no %s/%p for kernel log - 0x% -> %# - always %j for kernel log
|
1.148 |
| 11-Dec-2019 |
bouyer | reading usbdi.c it looks like usbd_get_config_descriptor() can actually return NULL, so check for this. I got NULL pointer dereference here with a device showing: [ 303.732632] ugen0: autoconfiguration error: setting configuration index 0 failed
|
1.147 |
| 01-Dec-2019 |
maxv | localify
|
1.146 |
| 05-May-2019 |
mrg | branches: 1.146.2; remove explicit 'extern struct cfdriver <my>_cd;' and use ioconf.h
|
1.145 |
| 01-Mar-2019 |
pgoyette | Rename the MODULE_*_HOOK() macros to MODULE_HOOK_*() as briefly discussed on irc.
NFCI intended.
Ride the earlier kernel bump - it;s getting crowded.
|
1.144 |
| 07-Feb-2019 |
skrll | Remove (mostly useless) usb_detach_{broadcast,wait} and replace with cv_{broadcast,timedwait}
Really should loop on conditon.
|
1.143 |
| 29-Jan-2019 |
pgoyette | Normalize all the compat hooks' names to the form
<subsystem>_<function>_<version>_hook
NFCI
XXX Note that although this introduces a change in the kernel-to- XXX module interface, we are NOT bumping the kernel version number. XXX We will bump the version number once the interface stabilizes.
|
1.142 |
| 27-Jan-2019 |
pgoyette | Merge the [pgoyette-compat] branch
|
1.141 |
| 08-Nov-2018 |
manu | Enfore USB timeout on ugen(4) write operations
|
1.140 |
| 03-Sep-2018 |
riastradh | Rename min/max -> uimin/uimax for better honesty.
These functions are defined on unsigned int. The generic name min/max should not silently truncate to 32 bits on 64-bit systems. This is purely a name change -- no functional change intended.
HOWEVER! Some subsystems have
#define min(a, b) ((a) < (b) ? (a) : (b)) #define max(a, b) ((a) > (b) ? (a) : (b))
even though our standard name for that is MIN/MAX. Although these may invite multiple evaluation bugs, these do _not_ cause integer truncation.
To avoid `fixing' these cases, I first changed the name in libkern, and then compile-tested every file where min/max occurred in order to confirm that it failed -- and thus confirm that nothing shadowed min/max -- before changing it.
I have left a handful of bootloaders that are too annoying to compile-test, and some dead code:
cobalt ews4800mips hp300 hppa ia64 luna68k vax acorn32/if_ie.c (not included in any kernels) macppc/if_gm.c (superseded by gem(4))
It should be easy to fix the fallout once identified -- this way of doing things fails safe, and the goal here, after all, is to _avoid_ silent integer truncations, not introduce them.
Maybe one day we can reintroduce min/max as type-generic things that never silently truncate. But we should avoid doing that for a while, so that existing code has a chance to be detected by the compiler for conversion to uimin/uimax without changing the semantics until we can properly audit it all. (Who knows, maybe in some cases integer truncation is actually intended!)
|
1.139 |
| 05-Mar-2018 |
ws | branches: 1.139.2; 1.139.4; Fix last:
Since config(1) could not distinguish between device and interface attachments, it was generating only the latter. Thus devices without their own driver wouldn't match the ugen driver anymore.
Fix this by using a different device name for interface attachments.
|
1.138 |
| 20-Feb-2018 |
ws | Attach uftdi to each interface found in the device separately. This allows for other drivers (e.g. ugen) to attach to some of the other interfaces.
Allow ugen to attach only to some of the interfaces found in a device.
|
1.137 |
| 21-Jan-2018 |
skrll | 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.136 |
| 25-Oct-2017 |
maya | Use C99 initializer for filterops
Mostly done with spatch with touchups for indentation
@@ expression a; identifier b,c,d; identifier p; @@ const struct filterops p = - { a, b, c, d + { + .f_isfd = a, + .f_attach = b, + .f_detach = c, + .f_event = d, };
|
1.135 |
| 05-Sep-2017 |
mrg | remove redundant checks against sc and sc->sc_dying. check sc_dying in more places.
|
1.134 |
| 07-Jul-2016 |
msaitoh | branches: 1.134.10; KNF. Remove extra spaces. No functional change.
|
1.133 |
| 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.132 |
| 13-Mar-2016 |
skrll | KNF
|
1.131 |
| 22-Feb-2016 |
skrll | Provide a ugen_clear_endpoints declaration
|
1.130 |
| 22-Feb-2016 |
skrll | Only clear the endpoint information in ugen_set_interface only if setting the new altno suceeds.
Avoids the null de-ref in PR/50597 and PR/50810
|
1.129 |
| 21-Feb-2016 |
skrll | Remove always true conditional
|
1.128 |
| 20-Feb-2016 |
skrll | One more s/0/NULL/
|
1.127 |
| 20-Feb-2016 |
skrll | s/0/NULL/
|
1.126 |
| 20-Sep-2014 |
gson | branches: 1.126.2; Include opt_usb.h to make "options UGEN_DEBUG" work.
|
1.125 |
| 05-Sep-2014 |
matt | Don't nest structure definitions.
|
1.124 |
| 25-Jul-2014 |
dholland | branches: 1.124.2; 1.124.4; Add d_discard to all struct cdevsw instances I could find.
All have been set to "nodiscard"; some should get a real implementation.
|
1.123 |
| 16-Mar-2014 |
dholland | branches: 1.123.2; Change (mostly mechanically) every cdevsw/bdevsw I can find to use designated initializers.
I have not built every extant kernel so I have probably broken at least one build; however I've also found and fixed some wrong cdevsw/bdevsw entries so even if so I think we come out ahead.
|
1.122 |
| 05-Jan-2013 |
christos | branches: 1.122.2; - need opt_usb.h if depending on USB_DEBUG - remove trailing whitespace - add missing KERNEL_RCSID
|
1.121 |
| 04-Dec-2012 |
riastradh | Fix some error branches in ugen.
There remains some cruft that should perhaps be better organized, but at least this should reduce some memory leaks in screw cases, and at least this does fix panics when plugging in and unplugging a USB device with a botched configuration (a beaglebone with a hosed sd card).
|
1.120 |
| 10-Jun-2012 |
mrg | branches: 1.120.2; merge the jmcneill-usbmp branch. many thanks to jared for the initial work, and every one else who has tested things for me. this is largely my fault at this point :-)
the main changes are something like:
- usbd_bus_methods{} gains a get_lock() to enable the host controller to provide a lock for the USB code. if the lock isn't provided, old-style protection is (partially) applied.
- ehci/ohci/uhci have been converted to the new interfaces, including mutex/cv/etc conversion.
- usbdivar.h contains a discussion about locking and what locks are held for which method calls. more to come for usbdi(9) here.
- audio drivers (uaudio, umidi, auvitek) have been properly SMPified now that USB is ready.
- scsi drivers have been modified to take the kernel lock explicitly before calling into scsi code.
- usb pipes are associated with a lock, that is the same as the controller lock. (this could be split up further in the future.)
- several usbfoo_locked() or usbfoo_unlocked() functions have been added to the usbdi(9) to enable functionality with or without the USB lock (per controller) already being held.
the TODO.usbmp file has specific details on what is left to do, including what device-specific changes should be done now that the whole framework is ready.
|
1.119 |
| 25-Apr-2012 |
dholland | Remove duplicate break. PR 46368 from Henning Petersen.
|
1.118 |
| 06-Mar-2012 |
mrg | pull down from usbmp branch:
- rename usb_detach_{wake,waitup}() to usb_detach_{wake,waitup}old() - use some c99 struct .initialisers
|
1.117 |
| 24-Feb-2012 |
mrg | remove any remnants of freebsd/openbsd code.
|
1.116 |
| 23-Dec-2011 |
jakllsch | Revert previous due to active usbmp branch(es).
|
1.115 |
| 22-Dec-2011 |
jakllsch | Adjust-away inconsistent and trailing whitespace.
|
1.114 |
| 01-Dec-2011 |
jakllsch | branches: 1.114.2; Don't double clfree() when closing an interrupt endpoint. From Geoff C. Wing in PR#37934.
|
1.113 |
| 25-Nov-2011 |
jakllsch | Prevent poll and kqueue on the control endpoint. Addresses PR#33352.
(The control endpoint doesn't support pipes, so this would be of dubious usefulness even if it didn't expose bugs.)
|
1.112 |
| 20-Nov-2011 |
gavan | Implement timeouts when blocking the calling process with tsleep.
Fixes PR kern/33452
|
1.111 |
| 03-Nov-2010 |
dyoung | branches: 1.111.8; 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.110 |
| 27-Jul-2010 |
jakllsch | Tune ugen(4) isochronous parameters to better support high speed pipes.
Fixes PR#43159.
Justification:
UGEN_NISORFRMS, previously 4, is now 8 because that's the number of microframes per frame on a high speed bus. This allows data to be transfered every microframe if necessary.
UGEN_NISOREQS, previously 6, is now 4. This is harder to justify, but I didn't think the total number of buffer frames needed to be much more than it was.
UGEN_NISOFRAMES, previously 500, is now (UGEN_NISORFRMS * UGEN_NISOREQS) (32 with values as above). This is all the more we've actually used.
|
1.109 |
| 19-Feb-2010 |
pooka | branches: 1.109.2; Replace USB_GET_SC() instances with USB_GET_SC_OPEN(). The latter is exactly like the former, except it returns with ENXIO if sc is NULL instead of continuing on to use it. Most of the time this is handled by the fd layer and you get EBADF, but sometimes it's possible to race into the device method for whatever reason and you get a kernel panic. I have no idea what the "whatever reason" might be.
|
1.108 |
| 24-Dec-2009 |
jakllsch | branches: 1.108.2; defflag UGEN_BULK_RA_WB is no more. Hi pooka
|
1.107 |
| 23-Dec-2009 |
pooka | unifdef -D UGEN_BULK_RA_WB
Default behaviour unchanged, the feature must still be explicitly enabled for a ugen fd.
|
1.106 |
| 06-Dec-2009 |
dyoung | Simplify device-activation hooks.
|
1.105 |
| 24-Sep-2009 |
pooka | Add a simple kvm integer toggle to control ugen priority and override the autoconf flags value. This helps to change the priority at runtime. (XXX: is there a better way to do this?)
|
1.104 |
| 24-Sep-2009 |
pooka | ugen_get_cdesc() can return NULL. When this happens, return the karmic EINVAL error instead of crashing.
|
1.103 |
| 23-Sep-2009 |
plunky | fix up USB drivers printing of autoconf information
1. expand the USB_ATTACH_SETUP macro (requested by jmcneill)
2. reorder the attach function so that the first thing it does is print newlines.
3. after this, we can call usbd_devinfo_alloc(), which polls the device allowing a context switch, and aprint_normal() the device information.
this avoids problems where autoconf messages are getting mixed up.
|
1.102 |
| 20-Mar-2009 |
drochner | Putting a device into the unconfigured state by an ioctl seems legitimate, so check for a non-NULL configuration descriptor before dereferencing. Should fix a crash reported by Nicolas Joly per PR kern/41048. (It still doesn't look good that the ioctl which unconfigures the device returns EIO -- either it is legitimate or it isn't -- but since this is a pullup candidate I don't dare to change user visible behaviour.)
|
1.101 |
| 20-Jan-2009 |
drochner | branches: 1.101.2; Change major()/minor() to return 32-bit types again, called devmajor_t/devminor_t, as proposed on tech-kern. This avoids 64-bit arithmetics and 64-bit printf formats in parts of the kernel where it is not really useful, and helps clarity.
|
1.100 |
| 11-Jan-2009 |
cegger | make this compile
|
1.99 |
| 24-May-2008 |
cube | branches: 1.99.6; 1.99.8; Split device_t and softc for all USB device drivers, and related cosmetic changes.
Matthias Drochner kindly reviewed this patch, and tested ums, ubt, uaudio and ral. I tested umass myself.
|
1.98 |
| 28-Apr-2008 |
martin | branches: 1.98.2; Remove clause 3 and 4 from TNF licenses
|
1.97 |
| 01-Mar-2008 |
rmind | branches: 1.97.2; 1.97.4; Welcome to 4.99.55:
- Add a lot of missing selinit() and seldestroy() calls.
- Merge selwakeup() and selnotify() calls into a single selnotify().
- Add an additional 'events' argument to selnotify() call. It will indicate which event (POLL_IN, POLL_OUT, etc) happen. If unknown, zero may be used.
Note: please pass appropriate value of 'events' where possible. Proposed on: <tech-kern>
|
1.96 |
| 24-Dec-2007 |
smb | branches: 1.96.2; 1.96.6; Add missing call to pmf_deregister() in the USB_DETACH routine.
|
1.95 |
| 09-Dec-2007 |
jmcneill | branches: 1.95.2; Merge jmcneill-pm branch.
|
1.94 |
| 05-Dec-2007 |
pooka | branches: 1.94.2; Do not "return 1" from kqfilter for errors. That value is passed directly to the userland caller and results in a mysterious EPERM. Instead, return EINVAL or something else sensible depending on the case.
|
1.93 |
| 01-Dec-2007 |
jmcneill | branches: 1.93.2; aprintify
|
1.92 |
| 04-Mar-2007 |
christos | branches: 1.92.14; 1.92.16; 1.92.22; Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
|
1.91 |
| 26-Feb-2007 |
drochner | branches: 1.91.4; The manpage promises not to touch the device on USB_GET_DEVICEINFO. Make it so.
|
1.90 |
| 21-Feb-2007 |
wiz | Fix debug format strings (found on amd64).
|
1.89 |
| 03-Dec-2006 |
pavel | branches: 1.89.2; Restore compatibility of USB_DEVICEINFO ioctl and reads from /dev/usb with NetBSD 3.x. Patch from Stephan Thesing provided in http://mail-index.netbsd.org/current-users/2006/03/21/0002.html, with some modifications by me. See also http://mail-index.netbsd.org/current-users/2006/08/29/0017.html
The code is conditionally compiled depending on COMPAT_30.
Also fix a leak of struct usb_event in usbread() introduced while converting on-stack variables to dynamic allocation.
Reviewed by martin@.
|
1.88 |
| 16-Nov-2006 |
christos | branches: 1.88.2; __unused removal on arguments; approved by core.
|
1.87 |
| 12-Oct-2006 |
xtraeme | sigh, another missing __unused.
|
1.86 |
| 12-Oct-2006 |
christos | - sprinkle __unused on function decls. - fix a couple of unused bugs - no more -Wno-unused for i386
|
1.85 |
| 03-Sep-2006 |
christos | branches: 1.85.2; 1.85.4; add missing initializer
|
1.84 |
| 24-Jul-2006 |
gdt | Add UGEN_BULK_RA_WB, which allows users of ugen(4) to request read ahead and write behind, improving performance for the Universal Software Radio Peripheral (USRP) used with GNU Radio.
Enable UGEN_BULK_RA_WB in GENERIC and GENERIC_LAPTOP; behavior is unchanged unless the new ioctl is called.
This code was written by Joanne Mikkelson under funding from DARPA's ACERT program.
ok'd by christos@, tested by Berndt Josef Wulf
|
1.83 |
| 09-Jun-2006 |
christos | stack police: Don't allocate large buffers on the stack for I/O. Put the buffer in the softc instead.
|
1.82 |
| 14-Apr-2006 |
christos | branches: 1.82.2; Coverity CID 1354: Add a KASSERT to convince coverity that there is no NULL pointer dereference.
|
1.81 |
| 14-Apr-2006 |
christos | Coverity CID 1355: Add a KASSERT to convince coverity that this is not NULL.
|
1.80 |
| 28-Mar-2006 |
thorpej | Use device_unit().
|
1.79 |
| 01-Mar-2006 |
yamt | branches: 1.79.2; 1.79.4; 1.79.6; merge yamt-uio_vmspace branch.
- use vmspace rather than proc or lwp where appropriate. the latter is more natural to specify an address space. (and less likely to be abused for random purposes.) - fix a swdmover race.
|
1.78 |
| 11-Dec-2005 |
christos | branches: 1.78.2; 1.78.4; 1.78.6; merge ktrace-lwp.
|
1.77 |
| 28-Nov-2005 |
augustss | Add a new match level, UMATCH_HIGHEST.
|
1.76 |
| 23-Nov-2005 |
augustss | Normally a ugen device only attaches if no other driver wants the device. Add the ability to force ugen to attach with very high priority if "flags 1" is specified. This can be used with the vendor and product locators to force ugen to be used for certain devices. Similarly, uhid only attaches if no other HID driver (ums or ukbd) wants it. Again, "flags 1" will force uhid to attach anyway.
|
1.75 |
| 21-Jun-2005 |
ws | branches: 1.75.2; 1.75.8; PR-30566: Poll must not return <sys/errno.h> values. Start with those places I can easily test.
|
1.74 |
| 30-May-2005 |
christos | - const poisoning - eliminate variable shadowing
|
1.73 |
| 17-May-2005 |
augustss | Allow multiple opens of the control endpoint. This is unproblematic since the control endpoint is in some sense always open to the device.
From wulf@ping.net.au.
|
1.72 |
| 11-May-2005 |
augustss | Don't keep the devinfo string on the stack, instead use malloc/free. This should cure some rare stack overflows.
|
1.71 |
| 02-Mar-2005 |
mycroft | Copyright maintenance.
|
1.70 |
| 27-Feb-2005 |
perry | nuke trailing whitespace
|
1.69 |
| 03-Dec-2004 |
augustss | branches: 1.69.4; 1.69.6; Allow interrupt output devices. From FreeBSD.
|
1.68 |
| 23-Jun-2004 |
mycroft | Yes, some devices return incorrect lengths in their string descriptors. Rather than losing, do what Windows does: just request the maximum size, and allow a shorter response. Obsoletes the need for UQ_NO_STRINGS, and therefore these "quirks" are removed.
|
1.67 |
| 23-Apr-2004 |
itojun | use bounded string ops (snprintf, strl*)
|
1.66 |
| 04-Sep-2003 |
mycroft | branches: 1.66.2; Cast a printf() arg so that USB_DEBUG compiles on multiple platforms.
|
1.65 |
| 29-Jun-2003 |
fvdl | branches: 1.65.2; Back out the lwp/ktrace changes. They contained a lot of colateral damage, and need to be examined and discussed more.
|
1.64 |
| 28-Jun-2003 |
darrenr | Pass lwp pointers throughtout the kernel, as required, so that the lwpid can be inserted into ktrace records. The general change has been to replace "struct proc *" with "struct lwp *" in various function prototypes, pass the lwp through and use l_proc to get the process pointer when needed.
Bump the kernel rev up to 1.6V
|
1.63 |
| 26-Nov-2002 |
christos | si_ -> sel_
|
1.62 |
| 23-Oct-2002 |
jdolecek | merge kqueue branch into -current
kqueue provides a stateful and efficient event notification framework currently supported events include socket, file, directory, fifo, pipe, tty and device changes, and monitoring of processes and signals
kqueue is supported by all writable filesystems in NetBSD tree (with exception of Coda) and all device drivers supporting poll(2)
based on work done by Jonathan Lemon for FreeBSD initial NetBSD port done by Luke Mewburn and Jason Thorpe
|
1.61 |
| 23-Sep-2002 |
simonb | Remove breaks after returns, unreachable returns and returns after returns(!).
|
1.60 |
| 06-Sep-2002 |
gehenna | Merge the gehenna-devsw branch into the trunk.
This merge changes the device switch tables from static array to dynamically generated by config(8).
- All device switches is defined as a constant structure in device drivers.
- The new grammer ``device-major'' is introduced to ``files''.
device-major <prefix> char <num> [block <num>] [<rules>]
- All device major numbers must be listed up in port dependent majors.<arch> by using this grammer.
- Added the new naming convention. The name of the device switch must be <prefix>_[bc]devsw for auto-generation of device switch tables.
- The backward compatibility of loading block/character device switch by LKM framework is broken. This is necessary to convert from block/character device major to device name in runtime and vice versa.
- The restriction to assign device major by LKM is completely removed. We don't need to reserve LKM entries for dynamic loading of device switch.
- In compile time, device major numbers list is packed into the kernel and the LKM framework will refer it to assign device major number dynamically.
|
1.59 |
| 11-Jul-2002 |
augustss | Get rid of trailing white space.
|
1.58 |
| 20-Feb-2002 |
christos | branches: 1.58.8; Prefix structure members to protect them against clashes with eg. c++ keywords. Suggested by Alfred Perlstein, from FreeBSD, ok'd by augustss
|
1.57 |
| 11-Feb-2002 |
augustss | Give usbd_do_request_flags() an extra argument for the timeout.
|
1.56 |
| 02-Jan-2002 |
augustss | More whitespace fixes from FreeBSD.
|
1.55 |
| 31-Dec-2001 |
augustss | Whitespace fixes (from FreeBSD).
|
1.54 |
| 31-Dec-2001 |
augustss | Make a typedef for struct proc to make portingeasier.
|
1.53 |
| 31-Dec-2001 |
augustss | Don't allow setting the configuration when an endpoint is open. From FreeBSD.
|
1.52 |
| 31-Dec-2001 |
augustss | Only clear stall if endpoint is stalled. From FreeBSD.
|
1.51 |
| 13-Nov-2001 |
augustss | More test for NULL pipes.
|
1.50 |
| 13-Nov-2001 |
lukem | add RCSIDs
|
1.49 |
| 24-Oct-2001 |
augustss | Add commented out match level feature.
|
1.48 |
| 16-Sep-2001 |
yamt | branches: 1.48.2; make ugen use updated frlengths.
|
1.47 |
| 16-Sep-2001 |
wiz | Spell 'occurred' with two 'r's.
|
1.46 |
| 15-Sep-2001 |
yamt | correct debug messages.
|
1.45 |
| 13-Dec-2000 |
augustss | branches: 1.45.2; 1.45.4; 1.45.6; Don't try to access a device that is being disconnected when generating the detach event. Fixes (I hope) PR 11713 from itohy@netbsd.org (ITOH Yasufumi).
|
1.44 |
| 26-Nov-2000 |
augustss | Improve a debug message.
|
1.43 |
| 24-Oct-2000 |
augustss | Tell usbd_set_config_no() to be verbose. It's nice to know whyit fails.
|
1.42 |
| 08-Sep-2000 |
augustss | ANSIfy last patch.
|
1.41 |
| 08-Sep-2000 |
augustss | Add isoc support. From FreeBSD via Berndt Josef Wulf <wulf@ping.net.au>
|
1.40 |
| 01-Jun-2000 |
augustss | Bring the coding style into the 80s, i.e., get rid of __P and use ANSI prototypes and declarations.
|
1.39 |
| 31-May-2000 |
augustss | Add a comment.
|
1.38 |
| 27-Apr-2000 |
augustss | branches: 1.38.2; Change my email address.
|
1.37 |
| 27-Mar-2000 |
augustss | Change (almost) all static to Static. The symbol `Static' can then be defined to `' or `static' depending on if you want to debug or not.
|
1.36 |
| 06-Mar-2000 |
augustss | Generate better error codes on bulk write.
|
1.35 |
| 29-Feb-2000 |
augustss | Distinguish between device and interface classes. (I finally found a document that said that they were different.)
|
1.34 |
| 08-Feb-2000 |
augustss | Use NULL instead of 0.
|
1.33 |
| 02-Feb-2000 |
augustss | Generate usb events on attach and detach.
|
1.32 |
| 19-Jan-2000 |
augustss | Add an argument to usbd_open_pipe_intr() to specify the polling interval for an interrupt pipe in case we don't what what the descriptor suggests.
|
1.31 |
| 18-Dec-1999 |
augustss | Change the way the initial configuration value is picked. Idea from Matthias Drochner <M.Drochner@fz-juelich.de>
|
1.30 |
| 18-Nov-1999 |
augustss | Cosmetic changes and some small improvements. From FreeBSD and Nick Hibma.
|
1.29 |
| 17-Nov-1999 |
augustss | A few more purely stylistic changes that I missed in the last round.
|
1.28 |
| 12-Nov-1999 |
augustss | A number of stylistic changes to increase readability (many suggested by Nick Hibma): use NULL not 0 declare all local definitions static rename s/usbd_request/usbd_xfer/ s/reqh/xfer/ rename s/r/err/ use implicit test for no err KNF
|
1.27 |
| 28-Oct-1999 |
augustss | Add a few more tests for safety.
|
1.26 |
| 28-Oct-1999 |
augustss | Make sure read() and write() fails on the control pipe.
|
1.25 |
| 13-Oct-1999 |
augustss | branches: 1.25.2; 1.25.4; Merge in a large batch of changes from Nick Hibma <hibma@skylink.it> so the USB stack compiles on FreeBSD again.
|
1.24 |
| 12-Oct-1999 |
augustss | Add an event mechanism so that a userland process can watch devices come and go.
|
1.23 |
| 09-Sep-1999 |
augustss | branches: 1.23.2; Change the internal API to allow DMA buffers to be pre-allocated by the device driver instead of happening automagically in the HC driver. This affects both the HC-USBD interface as well as the USBD-device interface. This change will allow DMA buffers to be reused e.g. in isochronous traffic.
Add isochronous support to the UHCI driver (not for OHCI yet).
|
1.22 |
| 05-Sep-1999 |
augustss | Change the way the `struct device' base part of all driver softc are declared and accessed to make it more portable. Idea from Nick Hibma, FreeBSD. No functional changes.
|
1.21 |
| 04-Sep-1999 |
augustss | Change the way the direction is extracted from the endpoint descriptor. No functional changes to the drivers. From Nick Hibma, FreeBSD.
|
1.20 |
| 28-Aug-1999 |
augustss | Change some 'struct device' to 'bdevice'. From FreeBSD.
|
1.19 |
| 28-Aug-1999 |
augustss | Change a type name.
|
1.18 |
| 23-Aug-1999 |
augustss | Make sure to mark the device as dying already in the (de)activate routine. This avoids access to it before the detach routine has blown it away.
|
1.17 |
| 22-Aug-1999 |
augustss | Move more of the transfer completion processing to HC independent code. Fix some problems with transfer abort & timeout.
|
1.16 |
| 19-Aug-1999 |
augustss | Use the right type for the size argument when calling usbd_bulk_transfer().
|
1.15 |
| 17-Aug-1999 |
augustss | Make some small changes to make it compile on OpenBSD.
|
1.14 |
| 14-Aug-1999 |
augustss | Some changes from FreeBSD (no functional differences).
|
1.13 |
| 02-Aug-1999 |
augustss | Change it so that a pipe can be open RW instead of just R or W. This makes close() work properly, but it is still not ideal. Perhaps there should be different device nodes for input and output on to and endpoint with the same number? Pay attention to the SHORT_XFER_OK ioctl().
|
1.12 |
| 30-Jun-1999 |
augustss | Totally redo the way device detach is done. It now uses a kernel event thread and the config detach method. Squish a number of space leaks on detach.
|
1.11 |
| 08-Jan-1999 |
augustss | branches: 1.11.4; Various little fixes from the FreeBSD version.
|
1.10 |
| 07-Jan-1999 |
augustss | Fix some pastos.
|
1.9 |
| 03-Jan-1999 |
augustss | Add an ugly workaround for a bug (feature) in the NetBSD open()/close() protocol.
|
1.8 |
| 01-Jan-1999 |
augustss | Fix bug in reading from interrupt pipe. Make read and write on bulk pipes interruptible.
|
1.7 |
| 29-Dec-1998 |
augustss | Don't set configuration unnecessarily, some (broken) devices seem to break if you do.
|
1.6 |
| 29-Dec-1998 |
augustss | Make it possible to specify the request flags when issuing a raw USB request.
|
1.5 |
| 26-Dec-1998 |
augustss | Merge changes to make the USB stack work with FreeBSD. The original diffs from Nick Hibma <n_hibma@freebsd.org>, but with substantial changes from me. XXX Not tested on FreeBSD yet.
|
1.4 |
| 12-Dec-1998 |
augustss | Move initialization of sce around.
|
1.3 |
| 10-Dec-1998 |
augustss | Take care of some lines > 80 chars.
|
1.2 |
| 09-Dec-1998 |
augustss | Improvement to the ugen driver. Better error checking. Some code rearrengment.
|
1.1 |
| 08-Dec-1998 |
augustss | Add a generic USB driver. It allows easy access to descriptors, the control pipe via ioctl() and read() and write() access to bulk and interrupt pipes.
|
1.11.4.1 |
| 01-Jul-1999 |
thorpej | Sync w/ -current.
|
1.23.2.1 |
| 27-Dec-1999 |
wrstuden | Pull up to last week's -current.
|
1.25.4.1 |
| 15-Nov-1999 |
fvdl | Sync with -current
|
1.25.2.3 |
| 13-Dec-2000 |
bouyer | Sync with HEAD (for UBC fixes).
|
1.25.2.2 |
| 08-Dec-2000 |
bouyer | Sync with HEAD.
|
1.25.2.1 |
| 20-Nov-2000 |
bouyer | Update thorpej_scsipi to -current as of a month ago A i386 GENERIC kernel compiles without the siop, ahc and bha drivers (will be updated later). i386 IDE/ATAPI and ncr work, as well as sparc/esp_sbus. alpha should work as well (untested yet). siop, ahc and bha will be updated once I've updated the branch to current -current, as well as machine-dependant code.
|
1.38.2.1 |
| 22-Jun-2000 |
minoura | Sync w/ netbsd-1-5-base.
|
1.45.6.3 |
| 01-Oct-2001 |
fvdl | Catch up with -current.
|
1.45.6.2 |
| 26-Sep-2001 |
fvdl | * add a VCLONED vnode flag that indicates a vnode representing a cloned device. * rename REVOKEALL to REVOKEALIAS, and add a REVOKECLONE flag, to pass to VOP_REVOKE * the revoke system call will revoke all aliases, as before, but not the clones * vdevgone is called when detaching a device, so make it use REVOKECLONE to get rid of all clones as well * clean up all uses of VOP_OPEN wrt. locking. * add a few VOPS to spec_vnops that need to do something when it's a clone vnode (access and getattr) * add a copy of the vnode vattr structure of the original 'master' vnode to the specinfo of a cloned vnode. could possibly redirect getattr to the 'master' vnode, but this has issues with revoke * add a vdev_reassignvp function that disassociates a vnode from its original device, and reassociates it with the specified dev_t. to be used by cloning devices only, in case a new minor is allocated. * change all direct references in drivers to v_devcookie and v_rdev to vdev_privdata(vp) and vdev_rdev(vp). for diagnostic purposes when debugging race conditions that still exist wrt. locking and revoking vnodes. * make the locking state of a vnode consistent when passed to d_open and d_close (unlocked). locked would be better, but has some deadlock issues
|
1.45.6.1 |
| 07-Sep-2001 |
thorpej | Commit my "devvp" changes to the thorpej-devvp branch. This replaces the use of dev_t in most places with a struct vnode *.
This will form the basic infrastructure for real cloning device support (besides being architecurally cleaner -- it'll be good to get away from using numbers to represent objects).
|
1.45.4.7 |
| 10-Oct-2002 |
jdolecek | sync kqueue with -current; this includes merge of gehenna-devsw branch, merge of i386 MP branch, and part of autoconf rototil work
|
1.45.4.6 |
| 02-Oct-2002 |
jdolecek | do not need the (void *) cast for kn_hook anymore
|
1.45.4.5 |
| 06-Sep-2002 |
jdolecek | sync kqueue branch with HEAD
|
1.45.4.4 |
| 16-Mar-2002 |
jdolecek | Catch up with -current.
|
1.45.4.3 |
| 10-Jan-2002 |
thorpej | Sync kqueue branch with -current.
|
1.45.4.2 |
| 08-Sep-2001 |
thorpej | Use the seltrue filter as appropriate (or, rather, as the "poll" entry points of these drivers indicate).
|
1.45.4.1 |
| 08-Sep-2001 |
thorpej | Add kqueue support.
|
1.45.2.10 |
| 11-Dec-2002 |
thorpej | Sync with HEAD.
|
1.45.2.9 |
| 11-Nov-2002 |
nathanw | Catch up to -current
|
1.45.2.8 |
| 18-Oct-2002 |
nathanw | Catch up to -current.
|
1.45.2.7 |
| 17-Sep-2002 |
nathanw | Catch up to -current.
|
1.45.2.6 |
| 01-Aug-2002 |
nathanw | Catch up to -current.
|
1.45.2.5 |
| 28-Feb-2002 |
nathanw | Catch up to -current.
|
1.45.2.4 |
| 11-Jan-2002 |
nathanw | More catchup.
|
1.45.2.3 |
| 08-Jan-2002 |
nathanw | Catch up to -current.
|
1.45.2.2 |
| 14-Nov-2001 |
nathanw | Catch up to -current.
|
1.45.2.1 |
| 21-Sep-2001 |
nathanw | Catch up to -current.
|
1.48.2.1 |
| 12-Nov-2001 |
thorpej | Sync the thorpej-mips-cache branch with -current.
|
1.58.8.2 |
| 15-Jul-2002 |
gehenna | catch up with -current.
|
1.58.8.1 |
| 16-May-2002 |
gehenna | Add the character device switch. Replace the direct-access to devsw table with calling devsw API.
|
1.65.2.8 |
| 11-Dec-2005 |
christos | Sync with head.
|
1.65.2.7 |
| 10-Nov-2005 |
skrll | Sync with HEAD. Here we go again...
|
1.65.2.6 |
| 04-Mar-2005 |
skrll | Sync with HEAD.
Hi Perry!
|
1.65.2.5 |
| 18-Dec-2004 |
skrll | Sync with HEAD.
|
1.65.2.4 |
| 21-Sep-2004 |
skrll | Fix the sync with head I botched.
|
1.65.2.3 |
| 18-Sep-2004 |
skrll | Sync with HEAD.
|
1.65.2.2 |
| 03-Aug-2004 |
skrll | Sync with HEAD
|
1.65.2.1 |
| 02-Jul-2003 |
darrenr | Apply the aborted ktrace-lwp changes to a specific branch. This is just for others to review, I'm concerned that patch fuziness may have resulted in some errant code being generated but I'll look at that later by comparing the diff from the base to the branch with the file I attempt to apply to it. This will, at the very least, put the changes in a better context for others to review them and attempt to tinker with removing passing of 'struct lwp' through the kernel.
|
1.66.2.1 |
| 02-Jul-2004 |
he | Pull up revision 1.68 (requested by mycroft in ticket #572): Several fixes mostly related to USB: o Add a general workaround for devices returning incorrect lengths in string descriptors, so that we don't need separate quirk entries for these.
|
1.69.6.1 |
| 19-Mar-2005 |
yamt | sync with head. xen and whitespace. xen part is not finished.
|
1.69.4.1 |
| 29-Apr-2005 |
kent | sync with -current
|
1.75.8.1 |
| 29-Nov-2005 |
yamt | sync with head.
|
1.75.2.7 |
| 17-Mar-2008 |
yamt | sync with head.
|
1.75.2.6 |
| 21-Jan-2008 |
yamt | sync with head
|
1.75.2.5 |
| 07-Dec-2007 |
yamt | sync with head
|
1.75.2.4 |
| 03-Sep-2007 |
yamt | sync with head.
|
1.75.2.3 |
| 26-Feb-2007 |
yamt | sync with head.
|
1.75.2.2 |
| 30-Dec-2006 |
yamt | sync with head.
|
1.75.2.1 |
| 21-Jun-2006 |
yamt | sync with head.
|
1.78.6.1 |
| 22-Apr-2006 |
simonb | Sync with head.
|
1.78.4.1 |
| 09-Sep-2006 |
rpaulo | sync with head
|
1.78.2.1 |
| 05-Feb-2006 |
yamt | adapt dev/usb.
|
1.79.6.2 |
| 24-May-2006 |
tron | Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
|
1.79.6.1 |
| 31-Mar-2006 |
tron | Merge 2006-03-31 NetBSD-current into the "peter-altq" branch.
|
1.79.4.1 |
| 19-Apr-2006 |
elad | sync with head.
|
1.79.2.5 |
| 03-Sep-2006 |
yamt | sync with head.
|
1.79.2.4 |
| 11-Aug-2006 |
yamt | sync with head
|
1.79.2.3 |
| 26-Jun-2006 |
yamt | sync with head.
|
1.79.2.2 |
| 24-May-2006 |
yamt | sync with head.
|
1.79.2.1 |
| 01-Apr-2006 |
yamt | sync with head.
|
1.82.2.1 |
| 19-Jun-2006 |
chap | Sync with head.
|
1.85.4.2 |
| 10-Dec-2006 |
yamt | sync with head.
|
1.85.4.1 |
| 22-Oct-2006 |
yamt | sync with head
|
1.85.2.2 |
| 12-Jan-2007 |
ad | Sync with head.
|
1.85.2.1 |
| 18-Nov-2006 |
ad | Sync with head.
|
1.88.2.2 |
| 06-Apr-2007 |
bouyer | Pull up following revision(s) (requested by pavel in ticket #556): sys/dev/usb/ugen.c: revision 1.89 sys/dev/usb/usb.c: revisions 1.92, 1.93 sys/dev/usb/usb_subr.c: revision 1.139, 1.140 sys/dev/usb/usb.h: revision 1.75 sys/dev/usb/usbdi.h: revisions 1.71, 1.72 sys/dev/usb/usbdi.c: revision 1.115, 1.116 sys/dev/usb/uhid.c: revision 1.73 Restore compatibility of USB_DEVICEINFO ioctl and reads from /dev/usb with NetBSD 3.x. The code is conditionally compiled depending on COMPAT_30.
|
1.88.2.1 |
| 24-Feb-2007 |
bouyer | Pull up following revision(s) (requested by wiz in ticket #460): sys/dev/usb/if_rum.c: revision 1.5 sys/dev/usb/ugen.c: revision 1.90 Fix debug format strings (found on amd64).
|
1.89.2.2 |
| 12-Mar-2007 |
rmind | Sync with HEAD.
|
1.89.2.1 |
| 27-Feb-2007 |
yamt | - sync with head. - move sched_changepri back to kern_synch.c as it doesn't know PPQ anymore.
|
1.91.4.3 |
| 17-Jun-2007 |
itohy | - Pullup 1.92 in a different way. - struct lwp *l -> usb_proc_ptr p - Use macro to set vmspace of uio for portability.
|
1.91.4.2 |
| 16-Jun-2007 |
itohy | - Change order to fit current API: usbd_open_pipe() -> usbd_alloc_xfer; usbd_abort_pipe() -> usbd_free_xfer() -> usbd_close_pipe().
|
1.91.4.1 |
| 22-May-2007 |
itohy | Overhaul of USB stack, mostly DMA related
This applies to NetBSD 4.99.13 (March 1, 2007)
usbdi(9) interface is based on FreeBSD version, excluding - removal of portability code
Patch most NetBSD changes, excluding - DMA memory "reserve", since we don't need contiguous buffers any longer - volatiles in DMA structure, since it should not be needed with proper bus_dmamap_sync(9)s
DMA/non-DMA memory management overhaul - Move all DMA related code to usb_mem.[ch] (add usb_alloc_buffer_dma(), usb_free_buffer_dma(), etc.). XXX Should usb_mem.[ch] be renamed as usb_mem_dma.[ch] ? - Add corresponding non-DMA code to usb_mem_nodma.[ch] . Currently just use malloc(9). - Above files are conditionally used by config framework (added attributes to conf/files and dev/usb/files.usb). - Add diagnostic panics when resource allocation is requested on interrupt context. - Change memory allocations (that require context) from NOWAIT to WAITOK.
Allocate DMA/non-DMA buffer per host interface, not globally. advantage: Buffers can be freed on detaching host interface. Activity of a host interface does not affect others. disadvantages: It possibly consumes more memory.
API changes - usbd_alloc_xfer() is changed: old: usbd_xfer_handle usbd_alloc_xfer(usbd_device_handle dev); new: usbd_xfer_handle usbd_alloc_xfer(usbd_device_handle dev, usbd_pipe_handle pipe); - pipe argument of usbd_setup_*xfer() are now unused XXX the pipe argument should be removed? - add mapping APIs - async request will be processed as a task (kernel thread context), and delayed to some extent - usbdivar.h: struct usbd_xfer: renamed a member "allocbuf" to "hcbuffer" (mapped/allocated/refered buffer for HCI driver) - usb_port.h: change usb_proc_ptr from struct ptoc * to struct lwp * - usb_port.h: add usb_sigproc_ptr for psignal(9) (struct proc *) - usb.h: add UE_MAXPKTSZ(ep) and UE_MAXPKTSZ_MASK macros for USB 2.0
changes to USB device drivers - atu, aue, axe, cdce, cue, kue, rum, udav, upl, ural, url, uaudio, ubt, ucom, ugen, uhidev, uirda, ulpt, umidi, urio, uscanner, ustir, utoppy: * catch up API change of usbd_alloc_xfer() - umass, usscanner: * catch up API change of usbd_alloc_xfer() * eliminate memory copy for large transfer
ohci - free resources on detach - add lots of bus_dmamap_sync() operations - simplify the code of loading std chain - rewrite code of looking up TD/ITD from DMA addr by using allocation chunk - add workaround for CMD Tech 670 and 673 chipsets - make sure resources are not allocated in interrupt context - add support for mapping buffer and mbuf
slhci - allocate xfer and slhci_xfer at once, and simplify relevant code - add slhci_detach() - remove second arg of slhci_attach() since it is the same as the first arg. - add support for "mapping" (no, it doesn't map since it doesn't do DMA) buffer and mbuf - add pcmcia frontend - NOT TESTED, missing hardware
ehci - add lots of bus_dmamap_sync() operations, possibly too many - make sure resources are not allocated in interrupt context - add support for mapping buffer and mbuf - done only simple test
uhci - add lots of bus_dmamap_sync() operations, possibly too many - make sure resources are not allocated in interrupt context - add support for mapping buffer and mbuf
To do - review, test, debug - rewrite network drivers to utilize usbd_map_buffer_mbuf() - rewrite uaudio(4) to eliminate memcpy - "pipe" argument of usbd_setup_*xfer() should eventually be removed
|
1.92.22.2 |
| 27-Dec-2007 |
mjf | Sync with HEAD.
|
1.92.22.1 |
| 08-Dec-2007 |
mjf | Sync with HEAD.
|
1.92.16.2 |
| 23-Mar-2008 |
matt | sync with HEAD
|
1.92.16.1 |
| 09-Jan-2008 |
matt | sync with HEAD
|
1.92.14.4 |
| 09-Dec-2007 |
jmcneill | Sync with HEAD.
|
1.92.14.3 |
| 08-Dec-2007 |
jmcneill | Rename pnp(9) -> pmf(9), as requested by many.
|
1.92.14.2 |
| 01-Dec-2007 |
jmcneill | Sync with HEAD.
|
1.92.14.1 |
| 23-Nov-2007 |
joerg | Register with PM framework.
|
1.93.2.2 |
| 26-Dec-2007 |
ad | Sync with head.
|
1.93.2.1 |
| 08-Dec-2007 |
ad | Sync with head.
|
1.94.2.1 |
| 11-Dec-2007 |
yamt | sync with head.
|
1.95.2.1 |
| 02-Jan-2008 |
bouyer | Sync with HEAD
|
1.96.6.5 |
| 17-Jan-2009 |
mjf | Sync with HEAD.
|
1.96.6.4 |
| 02-Jun-2008 |
mjf | Sync with HEAD.
|
1.96.6.3 |
| 06-Apr-2008 |
mjf | - after some discussion with agc@ i agreed it would be a good idea to move device_unregister_* to device_deregister_* to be more like the pmf(9) functions, especially since a lot of the time the function calls are next to each other.
- add device_register_name() support for dk(4).
|
1.96.6.2 |
| 05-Apr-2008 |
mjf | - add "file-system DEVFS" and "pseudo-device devfsctl" to conf/std seeing as these are always needed.
- convert many, many drivers over to the New Devfs World Order. For a list of device drivers yet to be converted see, http://www.netbsd.org/~mjf/devfs-todo.html.
- add a new device_unregister_all(device_t) function to remove all device names associated with a device_t, which saves us having to construct device names when the driver is detached.
- add a DEV_AUDIO type for devices.
|
1.96.6.1 |
| 03-Apr-2008 |
mjf | Sync with HEAD.
|
1.96.2.1 |
| 24-Mar-2008 |
keiichi | sync with head.
|
1.97.4.4 |
| 11-Aug-2010 |
yamt | sync with head.
|
1.97.4.3 |
| 11-Mar-2010 |
yamt | sync with head
|
1.97.4.2 |
| 04-May-2009 |
yamt | sync with head.
|
1.97.4.1 |
| 16-May-2008 |
yamt | sync with head.
|
1.97.2.2 |
| 04-Jun-2008 |
yamt | sync with head
|
1.97.2.1 |
| 18-May-2008 |
yamt | sync with head.
|
1.98.2.1 |
| 23-Jun-2008 |
wrstuden | Sync w/ -current. 34 merge conflicts to follow.
|
1.99.8.4 |
| 25-Jan-2012 |
riz | Pull up following revision(s) (requested by gavan in ticket #1697): sys/dev/usb/ugen.c: revision 1.112 Implement timeouts when blocking the calling process with tsleep. Fixes PR kern/33452
|
1.99.8.3 |
| 09-Mar-2010 |
snj | Pull up following revision(s) (requested by pooka in ticket #1332): sys/dev/usb/ugen.c: revision 1.109 Replace USB_GET_SC() instances with USB_GET_SC_OPEN(). The latter is exactly like the former, except it returns with ENXIO if sc is NULL instead of continuing on to use it. Most of the time this is handled by the fd layer and you get EBADF, but sometimes it's possible to race into the device method for whatever reason and you get a kernel panic. I have no idea what the "whatever reason" might be.
|
1.99.8.2 |
| 26-Sep-2009 |
snj | Pull up following revision(s) (requested by pooka in ticket #1017): sys/dev/usb/ugen.c: revision 1.104 ugen_get_cdesc() can return NULL. When this happens, return the karmic EINVAL error instead of crashing.
|
1.99.8.1 |
| 24-Mar-2009 |
snj | branches: 1.99.8.1.4; Pull up following revision(s) (requested by drochner in ticket #603): sys/dev/usb/ugen.c: revision 1.102 Putting a device into the unconfigured state by an ioctl seems legitimate, so check for a non-NULL configuration descriptor before dereferencing. Should fix a crash reported by Nicolas Joly per PR kern/41048. (It still doesn't look good that the ioctl which unconfigures the device returns EIO -- either it is legitimate or it isn't -- but since this is a pullup candidate I don't dare to change user visible behaviour.)
|
1.99.8.1.4.1 |
| 21-Apr-2010 |
matt | sync to netbsd-5
|
1.99.6.3 |
| 28-Apr-2009 |
skrll | Sync with HEAD.
|
1.99.6.2 |
| 03-Mar-2009 |
skrll | Sync with HEAD.
|
1.99.6.1 |
| 19-Jan-2009 |
skrll | Sync with HEAD.
|
1.101.2.1 |
| 13-May-2009 |
jym | Sync with HEAD.
Commit is split, to avoid a "too many arguments" protocol error.
|
1.108.2.3 |
| 06-Nov-2010 |
uebayasi | Sync with HEAD.
|
1.108.2.2 |
| 17-Aug-2010 |
uebayasi | Sync with HEAD.
|
1.108.2.1 |
| 30-Apr-2010 |
uebayasi | Sync with HEAD.
|
1.109.2.1 |
| 05-Mar-2011 |
rmind | sync with head
|
1.111.8.6 |
| 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.111.8.5 |
| 23-Jan-2013 |
yamt | sync with head
|
1.111.8.4 |
| 16-Jan-2013 |
yamt | sync with (a bit old) head
|
1.111.8.3 |
| 30-Oct-2012 |
yamt | sync with head
|
1.111.8.2 |
| 23-May-2012 |
yamt | sync with head.
|
1.111.8.1 |
| 17-Apr-2012 |
yamt | sync with head
|
1.114.2.5 |
| 12-May-2012 |
mrg | port this to usbmp and also make it largely MPSAFE, but not yet enough for D_MPSAFE to be added. should be merge-ready now, but needs testing.
|
1.114.2.4 |
| 29-Apr-2012 |
mrg | sync to latest -current.
|
1.114.2.3 |
| 26-Feb-2012 |
mrg | rename old usb_detach_wakeup/wait to usb_detach_{wake,wakeup}old().
|
1.114.2.2 |
| 24-Feb-2012 |
mrg | sync to -current.
|
1.114.2.1 |
| 18-Feb-2012 |
mrg | merge to -current.
|
1.120.2.3 |
| 03-Dec-2017 |
jdolecek | update from HEAD
|
1.120.2.2 |
| 20-Aug-2014 |
tls | Rebase to HEAD as of a few days ago.
|
1.120.2.1 |
| 25-Feb-2013 |
tls | resync with head
|
1.122.2.1 |
| 18-May-2014 |
rmind | sync with head
|
1.123.2.1 |
| 10-Aug-2014 |
tls | Rebase.
|
1.124.4.2 |
| 07-Mar-2016 |
martin | Additionally pull up r1.131 for ticket #1124 (requested by skrll)
|
1.124.4.1 |
| 06-Mar-2016 |
martin | Pull up following revision(s) (requested by skrll in ticket #1124): sys/dev/usb/ugen.c: revision 1.127 sys/dev/usb/ugen.c: revision 1.128 sys/dev/usb/ugen.c: revision 1.129 sys/dev/usb/ugen.c: revision 1.130 s/0/NULL/ One more s/0/NULL/ Remove always true conditional Only clear the endpoint information in ugen_set_interface only if setting the new altno suceeds. Avoids the null de-ref in PR/50597 and PR/50810
|
1.124.2.5 |
| 25-Aug-2018 |
martin | Pull up following revision(s) (requested by mrg in ticket #1632):
sys/dev/usb/usbdivar.h: revision 1.117 sys/external/bsd/dwc2/dwc2.c: revision 1.52 sys/dev/usb/xhcivar.h: revision 1.10 sys/dev/usb/motg.c: revision 1.22 sys/dev/usb/ehci.c: revision 1.260 sys/dev/usb/ehci.c: revision 1.261 sys/dev/usb/xhci.c: revision 1.96 sys/dev/usb/ohci.c: revision 1.282 sys/dev/usb/ohci.c: revision 1.283 sys/dev/usb/ehcivar.h: revision 1.45 sys/dev/usb/uhci.c: revision 1.281 sys/dev/usb/uhci.c: revision 1.282 sys/dev/usb/usbdi.c: revision 1.177 sys/dev/usb/ohcivar.h: revision 1.60 sys/dev/usb/uhcivar.h: revision 1.55 (all via patch)
pull across abort fixes from nick-nhusb. add more abort fixes, using ideas from Taylor and Nick, and myself. special thanks to both who inspired much of the code here, if not wrote it directly.
among other problems, this assert should no longer trigger:
panic: kernel diagnostic assertion "xfer->ux_state == XFER_ONQU" failed: file "/current/src/sys/dev/usb/usbdi.c", line 914
using usbhist i was able to track down my instance of it being related to userland close() beginning, dropping the sc_lock, and then the usb softintr completes the transfer normally, and when it is done, the abort path attempts to re-complete the transfer, and the above assert is tripped.
changes from nhusb were commited with these logs: -- Move the struct usb_task to struct usbd_xfer for everyone to use. -- Set device transfer status to USBD_IN_PROGRESS if start methods succeeds -- Actually set the transfer status on transfers in ohci_abort_xfer and the controller is dying -- Don't supply the lock to callout_halt when polling as it won't be held -- Improve transfer abort -- Mark device transfers as USBD_IN_PROGRESS appropriately and improve abort handling -- -- Mark device transfers as USBD_IN_PROGRESS appropriately and improve abort handling --
additional changes include: - initialise the usb abort task in the HCI allocx routine, so that it can be safely usb_rem_task()'d. - rework the handling of softintr vs cancellation vs timeout abort based upon a scheme from Taylor: when completing a transfer normally: - if the status is not in progress, it must be cancelled or timed out, and we should not process this xfer. - set the status as normal. - unconditionallly callout_stop() and usb_rem_task(). they're safe and either aren't running, or will run and do nothing. - finally call usb_transfer_complete(). when aborting a transfer: - status should be cancelled or timed out. - if cancelling, callout_halt and usb_rem_task_wait() to make sure the timer is either done or cancelled. - at this point, the ux_status must not be cancelled or timed out, and if it is not in progress we're done. - set the status. - if the controller is dying, just return. - perform HCI-specific tasks to abort this xfer. - finally call usb_transfer_complete(). for the timeout and timeout task: - if the HCI is not dying, and the ux_status is in progress, then trigger the usb abort task. - remove UXFER_ABORTWAIT and UXFER_ABORTING.
tested on: - multiple PC systems with several types of devices: ugen/UPS, ucom, umass with disk, ssd and cdrom backends, kbd, ms, using uhci, ehci and xhci. - erlite3: sd@umass on dwc2. - sunblade2000: kbd/ms and umass disk on ohci.
untested: - motg, slhci and ahci. motg has some portion of the new scheme applied, but slhci and ahci require more study.
future work includes pushing a lot of the common abort handling into usbdi.c and leaving upm_abort() for HC specific tasks, but this change is pullup-able to netbsd-7 and netbsd-8 as it does not change any external API, as well as removing over 100 lines of code while adding over 30 new asserts.
XXX: pullup-7, pullup-8.
fix DIAGNOSTIC build by not copying ub_usepolling to stack before use
Sprinkle __diagused
|
1.124.2.4 |
| 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.124.2.3 |
| 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.124.2.2 |
| 07-Mar-2016 |
martin | branches: 1.124.2.2.2; Additionally pull up r1.131 for ticket #1124 (requested by skrll)
|
1.124.2.1 |
| 06-Mar-2016 |
martin | Pull up following revision(s) (requested by skrll in ticket #1124): sys/dev/usb/ugen.c: revision 1.127 sys/dev/usb/ugen.c: revision 1.128 sys/dev/usb/ugen.c: revision 1.129 sys/dev/usb/ugen.c: revision 1.130 s/0/NULL/ One more s/0/NULL/ Remove always true conditional Only clear the endpoint information in ugen_set_interface only if setting the new altno suceeds. Avoids the null de-ref in PR/50597 and PR/50810
|
1.124.2.2.2.3 |
| 31-Mar-2017 |
skrll | Whitespace
|
1.124.2.2.2.2 |
| 26-Jan-2017 |
skrll | Sync with HEAD/nhusb
|
1.124.2.2.2.1 |
| 06-Sep-2016 |
skrll | First pass at netbsd-7 updated with USB code from HEAD
|
1.126.2.16 |
| 27-Oct-2016 |
skrll | Retire usb_detach_{wait,broadcast} and simply use condvar(9) instead
|
1.126.2.15 |
| 09-Jul-2016 |
skrll | Sync with HEAD
|
1.126.2.14 |
| 19-Mar-2016 |
skrll | Sync with HEAD
|
1.126.2.13 |
| 28-Dec-2015 |
skrll | Use IPL_SOFTUSB instead of IPL_USB appropriately. Transfer completions are executed as a softint and so this is the priority level required.
|
1.126.2.12 |
| 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.126.2.11 |
| 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.126.2.10 |
| 23-Jun-2015 |
skrll | KNF
|
1.126.2.9 |
| 09-May-2015 |
skrll | Use NULL not 0 for pointer comparison
|
1.126.2.8 |
| 21-Mar-2015 |
skrll | Add prefixes to attach_arg structure member names. No functional change.
|
1.126.2.7 |
| 19-Mar-2015 |
skrll | Do the same as OpenBSD and get rid of the *_handle typedefs and use plain structures insteads
|
1.126.2.6 |
| 06-Dec-2014 |
skrll | KNF. Remove argument name from function declarations.
No functional change.
|
1.126.2.5 |
| 05-Dec-2014 |
skrll | KNF. Remove ( ) from return statements.
|
1.126.2.4 |
| 03-Dec-2014 |
skrll | Replace malloc(9) with kmem(9)
|
1.126.2.3 |
| 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.126.2.2 |
| 01-Dec-2014 |
skrll | Remove the lbl argument from usbd_{bulk,intr}_transfer.
|
1.126.2.1 |
| 30-Nov-2014 |
skrll | Use C99 types. u_int{8,16,32,64}_t to uint{8,16,32,64}_t.
No functional change.
|
1.134.10.2 |
| 12-Nov-2018 |
martin | Pull up following revision(s) (requested by manu in ticket #1090):
sys/dev/usb/ugen.c: revision 1.141
Enfore USB timeout on ugen(4) write operations
|
1.134.10.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.139.4.2 |
| 08-Apr-2020 |
martin | Merge changes from current as of 20200406
|
1.139.4.1 |
| 10-Jun-2019 |
christos | Sync with HEAD
|
1.139.2.10 |
| 22-Jan-2019 |
pgoyette | Convert the MODULE_{,VOID_}HOOK_CALL macros to do everything in-line rather than defining an intermediate hook##call function. Almost all of the hooks are called only once, and although we lose the ability of doing things like
if (MODULE_HOOK_CALL(...) == 0) ...
we simplify things quite a bit. With this change, we no longer need to have both declaration and definition macros, and the definition no longer needs to have both prototype argument list and a "real" argument list.
FWIW, the above if now needs to written as
int ret;
MODULE_HOOK_CALL(..., ret); if (ret == 0) ...
with appropriate use of braces {}.
|
1.139.2.9 |
| 18-Jan-2019 |
pgoyette | Don't restrict hooks to having only int or void types. Pass the hook's type to the various macros, as needed.
Allows us to reduce diffs to original in at least one or two places (we no longer have to provide an additional parameter to the hook routine for returning a non-int return value).
|
1.139.2.8 |
| 14-Jan-2019 |
pgoyette | Create a variant of the HOOK macros that handles hook routines of type void, and use them where appropriate.
|
1.139.2.7 |
| 13-Jan-2019 |
pgoyette | Remove the HOOK2 versions of the MODULE_HOOK macros. There were only a few uses, and using them led to some lack of clarity in the code. Instead, we now use two separate hooks, with names that make it clear(er) what we're doing.
This also positions us to start unraveling some of the rtsock_50 mess, which will need (at least) five hooks.
|
1.139.2.6 |
| 26-Nov-2018 |
pgoyette | Sync with HEAD, resolve a couple of conflicts
|
1.139.2.5 |
| 29-Sep-2018 |
pgoyette | In MODULE_HOOK_CALL_DECL we don't need to provide the actual argument list for calling the hook function, nor do we need to provide the default value (for when the hook has not been set).
|
1.139.2.4 |
| 18-Sep-2018 |
pgoyette | The COMPAT_HOOK macros were renamed to MODULE_HOOK, adjust all callers
|
1.139.2.3 |
| 18-Sep-2018 |
pgoyette | Split the COMPAT_CALL_HOOK to separate the declaration from the implementation. Some hooks are called from multiple source files, and the old method resulted in duplicate implementations.
Implement MP-safe hooks for the usb_subr_30 code. Pass the helper functions as arguments to the compat code so it does not have to determine if the kernel contains usb code.
|
1.139.2.2 |
| 06-Sep-2018 |
pgoyette | Sync with HEAD
Resolve a couple of conflicts (result of the uimin/uimax changes)
|
1.139.2.1 |
| 29-Mar-2018 |
pgoyette | Split out the usb compat_30 code and add it to the module
|
1.146.2.2 |
| 27-Aug-2020 |
martin | Pull up following revision(s) (requested by riastradh in ticket #1065):
sys/dev/usb/usbdevices.config: revision 1.41 (patch) sys/dev/usb/ugen.c: revision 1.152 sys/dev/usb/ugen.c: revision 1.153 sys/dev/usb/ugen.c: revision 1.154 sys/dev/usb/ugen.c: revision 1.155 (patch) sys/dev/usb/ugen.c: revision 1.156 sys/dev/usb/ugen.c: revision 1.157
Remove UGEN_ASLP microoptimization. cv_signal already has this microoptimization. While here, make the lock cover the relevant things we're issuing cv_signal about -- progress toward real MP-safety.
Hold the lock over access to the data structures it covers. Still not MPSAFE, but progress.
Convert DIAGNOSTIC prints to KASSERTs.
Share unit numbering for ugen and ugenif. This way putting ugenif in kernel config actually works to wire it to the /dev/ugenN.MM device nodes in userland.
Not a fully fleshed out solution to the ugen problem -- there's no way for a userland driver to kick out a kernel driver and take over, but this will let us, e.g., use uhidev(4) for Yubikey OTP/U2F/FIDO2 but ugen(4), with pcscd(8), for Yubikey CCID.
Fix various MP-safety issues while here (still not MPSAFE, but more progress).
Expose Yubikey CCID interface to userland via ugenif.
Fix sloppy mistakes in previous. 1. Give the offset of the rbnode, not some other random members to overwrite with garbage. 2. Don't try to unlock a mutex at NULL. 3. Make sure all paths out after ugenif_acquire go via ugenif_release.
Fix ugen detach after partial attach.
While here, register null pmf handler even for partially attached devices so they don't needlessly interfere with suspend.
|
1.146.2.1 |
| 11-Dec-2019 |
martin | Pull up following revision(s) (requested by bouyer in ticket #544):
sys/dev/usb/ugen.c: revision 1.148
reading usbdi.c it looks like usbd_get_config_descriptor() can actually return NULL, so check for this.
I got NULL pointer dereference here with a device showing: [ 303.732632] ugen0: autoconfiguration error: setting configuration index 0 failed
|
1.157.2.1 |
| 03-Jan-2021 |
thorpej | Sync w/ HEAD.
|
1.171.2.2 |
| 16-Apr-2024 |
martin | Pull up following revision(s) (requested by thorpej in ticket #651):
sys/dev/usb/ugen.c: revision 1.177
ugen and ugenif share the same /dev/ugenN.xx namespace in such a way that the device unit number does not necessarily match the /dev/ugenN.xx unit number (N). If you ONLY have ugen devices, it happens to work out and devpubd scripts can be extremely naive. If you ONLY have ugenif devices, it also happens to work out, but your devpubd scripts have to slightly more informed. If you have a mix of ugen AND ugenif devices, though, you're pretty much out of luck.
So, this change adds a "ugen-unit" device property which devpubd scripts can query to determine which /dev/ugenN.xx nodes a given ugen or ugenif device is using.
|
1.171.2.1 |
| 16-Apr-2024 |
martin | Pull up following revision(s) (requested by thorpej in ticket #649):
sys/dev/usb/uftdi.c: revision 1.77 share/man/man4/ugen.4: revision 1.39 sys/dev/usb/ugen.c: revision 1.176 sys/dev/usb/usbdevices.config: revision 1.43
Define a "flags 1" config directive for ugenif, which is similar to ugen's, but rather forces the ugenif to match at the *lowest* match priority rather than the highest. This allows ugenif to claim only otherwise unclaimed interfaces.
Add a "match quirk" mechanism to the uftdi driver that allows it to selectively reject individual interfaces based on the combination of - Vendor ID - Product ID - Interface number - Vendor string - Product string
This is necessary[*] to allow some devices that would otherwise match uftdi (and thus instantiate a ucom) to be matched by ugenif instead, which is required to make the device available to libusb1.
[*] ...due to a deficiency in the USB stack that does not provide a mechanism for a user-space driver to claim a device from a kernel driver and then return it back at a later time.
Use this new match quirk mechanism to reject "interface 1" of the FTDI 2232C-based Tigard debug board; On this board, "interface 0" is brought out to regular TTL-level UART pins, but "interface 1" is brought out to SWD and JTAG headers, and is really only useful when used with something like openocd. Because the FTDI 2232C on this board just uses the standard FTDI vendor and product IDs, it can only be distinguished by the strings, which cannot be specified usbdevices.config, thus necessitating the match quirk entry (that works in combination with the ugenif entry added in usbdevices.config).
|