Home | History | Annotate | Download | only in usb
History log of /src/sys/dev/usb/umass.c
RevisionDateAuthorComments
 1.189  22-Sep-2022  riastradh umass(4): Reduce timeout for control xfers to standard USB timeout.

This should reduce the timeout for a failed sd@umass transfer from
n*(1min + 5sec) to 1min + n*5sec where n is the number of reset and
clear-stall steps.
 1.188  20-Mar-2022  andvar s/initialiase/initialise/ in comments.
 1.187  31-Dec-2021  riastradh umass(4): Omit needless reference counting.

autoconf never detaches before attach has completed, so there is no
longer any need for this mechanism.
 1.186  16-Sep-2021  andvar fix typos in word "successful".
 1.185  23-May-2021  riastradh umass(4): Assert that we got a cb up front.

Avoids jump to zero waaaaaaay down the line where we've forgotten why
we wanted to jump into oblivion.
 1.184  13-Apr-2020  jdolecek branches: 1.184.6; 1.184.8;
remove obsolete support for ISD-ATA umass(4) adapters
 1.183  14-Mar-2020  christos branches: 1.183.2;
fix more broken kernhist formats (now I got them all).
 1.182  14-Mar-2020  christos revert the 0x% -> %# change for fixed width formats pointed out by uwe.
 1.181  13-Mar-2020  christos PR/55068: sc.dying: Fix printf formats:
- no %s/%p for kernel log
- 0x% -> %#
- always %j for kernel log
 1.180  19-Feb-2020  riastradh umass dtrace probes
 1.179  19-Feb-2020  riastradh Make sure the umass transfer callback is run in error branches.
 1.178  19-Feb-2020  riastradh Consolidate logic to call the transfer callback.

No functional change intended.
 1.177  19-Feb-2020  riastradh Abort default pipe too on detach before detaching children.

This ensures that pending xfers on the default pipe will be aborted
before we wait for children, which, in the case of scsibus -> sd,
means waiting for pending xfers to complete -- xfers that may never
complete if something is wedged.
 1.176  06-Dec-2019  maxv branches: 1.176.2;
localify
 1.175  05-May-2019  mrg branches: 1.175.2;
remove explicit 'extern struct cfdriver <my>_cd;' and use ioconf.h
 1.174  10-Feb-2019  jdolecek move the deallocation of the protocol-specific softc into its own detach hook,
so that calls to kmem_alloc() and kmem_free() would agree on the size

fixes panic on umass detach reported by Tom Ivar Helbekkmo on current-users@
 1.173  07-Feb-2019  skrll Convert to kmem
 1.172  07-Feb-2019  skrll more KNF (remove names from prototypes)
 1.171  07-Feb-2019  skrll KNF
 1.170  07-Feb-2019  skrll typo in comment
 1.169  07-Feb-2019  skrll Remove (mostly useless) usb_detach_{broadcast,wait} and replace with
cv_{broadcast,timedwait}

Really should loop on conditon.
 1.168  03-Feb-2019  mrg - add or adjust /* FALLTHROUGH */ where appropriate
- add __unreachable() after functions that can return but won't in
this case, and thus can't be marked __dead easily
 1.167  22-Jan-2019  skrll Update a comment
 1.166  13-Nov-2018  mlelstv Handle abort paths gracefully on detach.
 1.165  24-Oct-2018  martin Remove no longer needed include of ata_dma.h
 1.164  24-Oct-2018  jdolecek only include umass_isdata.c if atabus present, and likewise ata_subr.c
 1.163  21-Jan-2018  skrll branches: 1.163.2; 1.163.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.162  28-Oct-2017  pgoyette And yet another one. :(
 1.161  28-Oct-2017  pgoyette Misssed one cast of pointer --> uintptr_t in previous kernhist(9) commit
 1.160  28-Oct-2017  pgoyette Update the kernhist(9) kernel history code to address issues identified
in PR kern/52639, as well as some general cleaning-up...

(As proposed on tech-kern@ with additional changes and enhancements.)

Details of changes:

* All history arguments are now stored as uintmax_t values[1], both in
the kernel and in the structures used for exporting the history data
to userland via sysctl(9). This avoids problems on some architectures
where passing a 64-bit (or larger) value to printf(3) can cause it to
process the value as multiple arguments. (This can be particularly
problematic when printf()'s format string is not a literal, since in
that case the compiler cannot know how large each argument should be.)

* Update the data structures used for exporting kernel history data to
include a version number as well as the length of history arguments.

* All [2] existing users of kernhist(9) have had their format strings
updated. Each format specifier now includes an explicit length
modifier 'j' to refer to numeric values of the size of uintmax_t.

* All [2] existing users of kernhist(9) have had their format strings
updated to replace uses of "%p" with "%#jx", and the pointer
arguments are now cast to (uintptr_t) before being subsequently cast
to (uintmax_t). This is needed to avoid compiler warnings about
casting "pointer to integer of a different size."

* All [2] existing users of kernhist(9) have had instances of "%s" or
"%c" format strings replaced with numeric formats; several instances
of mis-match between format string and argument list have been fixed.

* vmstat(1) has been modified to handle the new size of arguments in the
history data as exported by sysctl(9).

* vmstat(1) now provides a warning message if the history requested with
the -u option does not exist (previously, this condition was silently
ignored, with only a single blank line being printed).

* vmstat(1) now checks the version and argument length included in the
data exported via sysctl(9) and exits if they do not match the values
with which vmstat was built.

* The kernhist(9) man-page has been updated to note the additional
requirements imposed on the format strings, along with several other
minor changes and enhancements.

[1] It would have been possible to use an explicit length (for example,
uint64_t) for the history arguments. But that would require another
"rototill" of all the users in the future when we add support for an
architecture that supports a larger size. Also, the printf(3) format
specifiers for explicitly-sized values, such as "%"PRIu64, are much
more verbose (and less aesthetically appealing, IMHO) than simply
using "%ju".

[2] I've tried very hard to find "all [the] existing users of kernhist(9)"
but it is possible that I've missed some of them. I would be glad to
update any stragglers that anyone identifies.
 1.159  07-Oct-2017  jdolecek Merge support for SATA NCQ (Native Command Queueing) from jdolecek-ncq branch

ATA subsystem was changed to support several outstanding commands, and use
NCQ xfers if supported by both the controller and the disk, including NCQ
error recovery. Set NCQ high priority for BPRIO_TIMECRITICAL xfers
if supported. Added FUA support.

Done some work towards MP-safe, all ATA code tsleep()/wakeup() replaced
by condvars, and switched most code from spl* to mutexes (separate
wd(4) and ata channel lock).

Introduced new option WD_CHAOS_MONKEY to facilitate testing of error
handling, fixed several uncovered issues. Also fixed several problems
with kernel dump to wd(4) disk.

Tested with ahcisata(4), mvsata(4), siisata(4), piixide(4) on amd64,
with and without port multiplier, both disk and ATAPI devices; other
drivers and archs mechanically adjusted and compile-tested. NCQ is
supported for ahcisata(4) and siisata(4) for any controller, for
mvsata(4) only Gen IIe ones for now. Also enabled ATAPI support in
mvsata(4).

Thanks to Matt Thomas for initial ATA infrastructure patch, and
Jonathan A.Kollasch for siisata(4) NCQ changes and general testing.

Also fixes PR kern/43169 (wd(4)); and PR kern/11811, PR kern/47041,
PR kern/51979 (kernel dump)
 1.158  25-Apr-2017  skrll branches: 1.158.4;
In umass_detach set sc_dyring so that further attempts at transfers will
fail. This fixes part of

PR/51129 (Disconnecting USB SD card without umount causes file operations to hang)
 1.157  21-Nov-2016  skrll branches: 1.157.4;
No need to take the kernel lock in umass(4) anymore
 1.156  07-Jul-2016  msaitoh branches: 1.156.2;
KNF. Remove extra spaces. No functional change.
 1.155  03-Jul-2016  skrll Fix build for USB_DEBUG without UMASS_DEBUG
 1.154  03-Jul-2016  skrll Trailing whitespace
 1.153  01-Jul-2016  skrll Convert umass(4) to usbhist.
 1.152  29-Apr-2016  skrll Create the UMASS_INTRIN trasnfer against the correct pipe. Should fix a
problem reported to me by wiz@
 1.151  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.150  03-Apr-2016  martin Update links to usb.org specs
 1.149  12-Sep-2014  skrll branches: 1.149.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.148  22-Dec-2013  mlelstv branches: 1.148.4; 1.148.8;
Preallocate command and status buffers as auto allocation cannot
happen in intrrupt context.
 1.147  11-Jan-2013  skrll branches: 1.147.2;
Improve a panic message slightly
 1.146  24-Aug-2012  drochner branches: 1.146.2;
Another contribution to PR kern/42225 which will hopefully
bring the story to an end:

Always ignore the residue from the CSW, just use the real
transfer length counted by the USB stack. This was first
proposed by Markus Kilbinger but unfortunately ignored
later. (Too many cooks...)
According to Matthias Kretschmer, Darwin and Haiku do
the same.

Remove the "UMASS_QUIRK_IGNORE_RESIDUE" quirk which was
just for the one "SuperTop" device mentioned in the PR.
This device was successfully tested by Matthias Kretschmer /
Ignatios Souvatzis.

I've tested the patch with various other devices and
didn't find regressions.
 1.145  10-Jun-2012  mrg 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.144  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.143  04-Mar-2012  mrg replace the hack to pass USBD_SYNCHRONOUS down when called with
XS_CTL_POLL with one that doesn't modify global-to-softc state.
 1.142  24-Feb-2012  mrg remove any remnants of freebsd/openbsd code.
 1.141  24-Aug-2011  mbalmer branches: 1.141.2; 1.141.6; 1.141.10;
Wrap the include "opt_umass.h" in #ifdef _KERNEL_OPT.
 1.140  23-Aug-2011  christos defopt UMASS_DEBUG
 1.139  31-Jul-2011  jakllsch Restore original residue quirk proposed in PR#42225, it is necessary.
 1.138  13-Feb-2010  martin KNF
 1.137  13-Feb-2010  martin Remove UMASS_QUIRK_IGNORE_RESIDUE, instead max out the expected response
size at the actual transfer length. Fixes PR kern/42225 differently.
 1.136  12-Nov-2009  dyoung branches: 1.136.2;
Simplify activation hooks. (sc_dying must die!)
 1.135  30-Oct-2009  is Quirk to regenerate residue for borken UMASS devices; needed (at least)
for Supertop IDE bridge. From Matthias Kretschmer, PR 42225.
 1.134  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.133  16-Sep-2009  dyoung Nothing else handles DVACT_ACTIVATE, so why should umass(4)? Get
rid of the DVACT_ACTIVATE case in umass_activate(). This eliminates
the only call to config_activate() in the entire tree.
 1.132  23-Aug-2009  jmcneill Print devinfo on the same line as locators, and make the transfer mode
output aprint_verbose
 1.131  17-Mar-2009  dyoung Expand a lot of macros from sys/dev/usb/usb_port.h.

Handle child-detachment by NULL'ing the child pointer, so that
umass_detach() will not subsequently dereference the dangling
pointer.
 1.130  12-Dec-2008  jmorse branches: 1.130.2;
PR#39651
Fix two problems in umass:
* usb xfers being freed before being removed from pipe, leading to null deref
* config_activate requests not supported, which leads to config_deactivate requests not being passed through. Spotted by jmcneill@

Added mechanism to usbdi allowing the default pipe to be aborted
 1.129  06-Sep-2008  rmind branches: 1.129.2; 1.129.4;
PR/37948: Yojiro UO: Support for Sony GPS GPS-CS1 devices. Check the support
of UR_BBB_GET_MAX_LUN, and disable the logic, if needed.
 1.128  24-May-2008  cube branches: 1.128.4;
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.127  28-Apr-2008  martin branches: 1.127.2;
Remove clause 3 and 4 from TNF licenses
 1.126  21-Jan-2008  ichiro branches: 1.126.6; 1.126.8; 1.126.10;
change umass quirks logic in USB_MATCH()

PR/37687 from Yojiro UO
 1.125  09-Dec-2007  jmcneill branches: 1.125.2;
Merge jmcneill-pm branch.
 1.124  13-Mar-2007  drochner branches: 1.124.10; 1.124.12; 1.124.18; 1.124.20; 1.124.22;
Introduce different autoconf interface attributes for USB drivers
matching (and handling) a whole device and those which match an
interface only. This will allow to enforce some rules, eg that
the former don't use interface information for matching or that the
latter don't modify global device state.
The previous way left too much freedom do the drivers which led to
inconsistencies and abuse.
For now, I've not changed locators and submatch rules, this will
happen later.
There should not be any change in behaviour, except in the case of
some drivers which did behave inconsistently:
if_atu, if_axe, uep: matched the configured device in the interface
stage, but did configuration again. I've converted them to match
in the device stage.
ustir, utoppy: matched in the interface stage, but only against
vendor/device information, and used any configuration/interface
without checking. Changed to match in device stage, and added
some simple code to configure and use the first interface.
If you have one of those devices, please test!
 1.123  09-Jan-2007  christos branches: 1.123.2; 1.123.6; 1.123.8; 1.123.10;
PR/35385: Mihai Chelaru: Add a quirk for the Sony Cybershot USB camera, which
needs padding to 12.
 1.122  16-Nov-2006  christos __unused removal on arguments; approved by core.
 1.121  12-Oct-2006  christos - sprinkle __unused on function decls.
- fix a couple of unused bugs
- no more -Wno-unused for i386
 1.120  11-Dec-2005  christos branches: 1.120.20; 1.120.22;
merge ktrace-lwp.
 1.119  31-May-2005  drochner branches: 1.119.2;
cast-qual fallout
 1.118  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.117  28-Dec-2004  nathanw USB_DETACH(): Don't zero out sc->sc_pipe[i] after aborting the
pipe. This lets umass_disco() free the pipes and associated controller
state, rather than leaking 2-3 pipes per attach/detach cycle.
 1.116  30-Jun-2004  mycroft When starting a bulk-only transfer, punt early if the device is going away.
 1.115  26-Jun-2004  mycroft Do not do a CBI reset before returning STATUS_CMD_FAILED. This causes any
sense information to be thrown away, and is therefore nonsensical.
 1.114  25-Jun-2004  mycroft Fix usage of incorrect buffer in CBI, possibly causing general failure to
transfer data correctly. See PR 25676.
 1.113  25-Jun-2004  mycroft Do not return STATUS_WIRE_FAILED in response to a CBI stall. This is perfectly
normal, and is used to report errors. Instead, use STATUS_CMD_FAILED, which
causes us to do a REQUEST SENSE. Should address PR 22960.
 1.112  22-Jun-2004  mycroft Fix a printf() error.
 1.111  23-Apr-2004  itojun use bounded string ops (snprintf, strl*)
 1.110  22-Apr-2004  itojun sprintf -> snprintf
 1.109  04-Dec-2003  keihan branches: 1.109.2;
netbsd.org -> NetBSD.org

This was the last commit of this kind to src/sys, which is now totally
"NetBSD.org clean". Thanks for the patiance, and sorry for all the commits.
 1.108  07-Nov-2003  wiz URL updates, from Jared Yanovich and jmc@openbsd, forwarded by the latter.
 1.107  28-Oct-2003  mycroft The "bad status" case is impossible -- the switch value is constrained to 2
bits -- so just add the default case to the one that returns
STATUS_WIRE_FAILED.
 1.106  25-Oct-2003  christos Fix uninitialized variable warnings.
 1.105  29-Sep-2003  augustss The umass attach can fail in many ways. Print a message about why it
failed instead of just being silent about it.
 1.104  13-Sep-2003  mycroft Do the quirk initialization earlier.
 1.103  10-Sep-2003  mycroft Mostly stylistic change, making comments and printf()s similar between BBB
and CBI.
 1.102  10-Sep-2003  mycroft Copyright maintenance.
 1.101  10-Sep-2003  mycroft On a Bulk-In data stall, make sure we copy back the data received, per the
spec. This is the real problem behind FORCE_SHORT_INQUIRY.
 1.100  10-Sep-2003  mycroft cc -pipe -ffreestanding -O2 -Werror -Wall -Wno-main -Wno-format-zero-length -Fix several problems with CCI handling, and enable it:
* We were never calling the callback function when we got a UFI CCI(!).
* We were passing a bogus residual count on non-UFI CCIs.
* After a REQUEST SENSE, the UFI CCI may include the ASC/ASCQ from the sense
information -- don't consider this a failure.
In addition, remove a horrible hack that was causing us to drop sense
information on the floor and return empty INQUIRY responses, often in the case
where there is a UNIT ATTENTION pending during the INQUIRY. (Some drives send
the data and then fail, some don't.)

This eliminates the need for quirks for the Y-E DATA FlashBuster.

These changes work on:

umass0: SAMSUNG SFD-321U [FW 0C], rev 1.10/2.10, addr 2
umass0: using UFI over CBI with CCI
sd0 at atapibus1 drive 0: <SMSC, USB FDC, 2.10> disk removable

umass0: TEAC TEAC FD-05PUB, rev 1.10/0.00, addr 2
umass0: using UFI over CBI with CCI
sd0 at atapibus0 drive 0: <TEAC, FD-05PUB, 1026> disk removable

umass0: Y-E DATA FlashBuster-U, rev 1.00/3.04, addr 2
umass0: using UFI over CBI with CCI
sd0 at atapibus0 drive 0: <Y-E DATA, USB-FDU, 3.04> disk removable
 1.99  08-Sep-2003  mycroft If maxlun>0, automatically set PQUIRK_FORCELUNS, rather than using quirk
table entries.
 1.98  08-Sep-2003  mycroft Remove UMASS_QUIRK_NO_START_STOP and UMASS_QUIRK_NO_MAX_LUN.
 1.97  04-Sep-2003  mycroft Well, this is bloody obscure...
My Imation USB FlashGO! adapter responds to a Get Max Lun request with a
stall. With uhci, this does the expected thing. With ohci, it was returning
a "data underrun" error because we weren't setting "buffer rounding" (i.e.
USBD_SHORT_XFER_OK), and the underrun was taking priority. This happened with
both the ohci in a Mac cube and the builtin ohci on the S3C2410.

So, set USBD_SHORT_XFER_OK on the Get Max Lun. Now I get a stall reported and
umass attaches correctly.
 1.96  26-Apr-2003  dsainty branches: 1.96.2;
Use the correct bus name in "bus not configured" errors for SCSI and ATAPI
 1.95  16-Feb-2003  augustss Add a reference count to avoid detaching while the attach is still
waiting.
 1.94  06-Jan-2003  wiz successful with only one l.
 1.93  01-Jan-2003  toshii Assign NULL to sc_pipe after closing, so that usbd_close_pipe isn't
called twice. At least in NetBSD, the detach function is called when the
device is removed, even if the attach function has failed.
This is probably the cause of panics reported in kern/19326.
 1.92  18-Dec-2002  tron Use "NULL" instead of "0" in pointer checks.
 1.91  06-Dec-2002  erh kern/12837: Provide a way to get working devices that violate the usb spec by
returning a non-matching CSW tag.
Defined a quirk for this and set it for Scanlogic SL11R, which gets my
NEO Jukebox working.
 1.90  04-Nov-2002  pooka we don't own Jason, even if we'd like to

(fix typo in comment, in case you're wondering ;)
 1.89  27-Sep-2002  provos remove trailing \n in panic(). approved perry.
 1.88  11-Jul-2002  augustss Get rid of trailing white space.
 1.87  17-Mar-2002  augustss branches: 1.87.4; 1.87.6;
Whitespace fixes.
 1.86  07-Feb-2002  augustss Add quirk for devices without Get Max Lun.
 1.85  31-Dec-2001  augustss Dump enpoint number instead of endpoint index.
 1.84  31-Dec-2001  augustss Don't try to deactivate child if we have no bus yet.
 1.83  31-Dec-2001  augustss Dump more of the command.
 1.82  29-Dec-2001  augustss Introduce a field, busquirks, in the umass quirk table that is passed
directly to the quirk field for the bus.
 1.81  24-Dec-2001  augustss Get rid of the transfer_speed nonsense to calculate the timeout.
We get passed a timeout from the upper layer which is what matters.
 1.80  24-Dec-2001  augustss Add a preliminary version of a driver for In-System Designs non-standard
ATA-over-BulkOnly protocol. The ISD chip can be found, e.g., in the
Archos MP3 player.
The driver still lacks real error handling.
 1.79  24-Dec-2001  augustss Make the separation between wire protocol (umass.c) and command protocol
(umass_scsipi.c) more distinct.
It is now possible to add new command protocols with a minimum of change.
The umassbus.[ch] files have been renamed umass_scsipi.[ch] since this
reflects their purpose better.
 1.78  17-Dec-2001  gehenna Introduce the new umass quirk table.

Discussed with augustss.
 1.77  15-Dec-2001  augustss Add a hack for ScanLogic SL11R IDE adapter. From FreeBSD.
 1.76  14-Dec-2001  gehenna Stylistic changes
 1.75  14-Dec-2001  gehenna Define a new structure to store wire specific control methods.
The basic BBB/CBI functions are stored as members of constant structure.
When attached device, softc holds one of that constant structures.
 1.74  14-Dec-2001  gehenna Use device handle and interface number which are stored in softc.
 1.73  14-Dec-2001  gehenna Change style to store endpoint addresses and pipes.
 1.72  12-Dec-2001  augustss Move usbd_clear_endpoint_toggle() prototype to usbdi.h.
 1.71  12-Dec-2001  gehenna Use vendor/product variables
 1.70  12-Dec-2001  gehenna Don't change wire protocol state in umass generic function
 1.69  12-Dec-2001  gehenna bcopy -> memcpy
 1.68  25-Nov-2001  augustss Add a quirk for Olympus C-1. From FreeBSD (by iedowse)
 1.67  25-Nov-2001  augustss Pay attention to the timeout value passed down by the scsipi layer.
 1.66  23-Nov-2001  augustss Handle Zip quirks differently.
Ugh! This driver need major overhaul.
 1.65  13-Nov-2001  augustss Remove trailing `b' in some numbers for lengths. It just makes them look
like hex.
 1.64  13-Nov-2001  lukem add RCSIDs
 1.63  25-Oct-2001  augustss Better debug messages.
 1.62  04-Jun-2001  augustss branches: 1.62.2; 1.62.6;
Remove overly paranoid test (and not in the spec either). From OpenBSD.
 1.61  26-Apr-2001  enami s/\<PROTO_ATAPI/C&/
 1.60  19-Apr-2001  augustss Remove stuff I didn't mean to commit yet.
 1.59  19-Apr-2001  augustss Add HP 3400.
 1.58  17-Apr-2001  augustss Clean up formatting a little.
Split protocol variable into wire and command protocols.
 1.57  13-Apr-2001  augustss Make it link with debug flag.
 1.56  13-Apr-2001  augustss Split the umass driver into the part that handles the X-over-USB protocol
(umass.c) and the part that handles scsibus/atapibus (umassbus.c).
This way the must port specific stuff can be removed from umass.c.
 1.55  01-Apr-2001  augustss Make the ZiO! MMC adapter work.
 1.54  01-Apr-2001  augustss Change handling of the UFI protocol so it goes through atapibus instead
of scsibus. This removes a whole bunch of specioal cases for UFI.
All this great simplification comes from Brett McCoy <bmccoy@genuity.net>.
 1.53  23-Mar-2001  fvdl Remove a debugging printf.
 1.52  24-Feb-2001  cgd branches: 1.52.2;
"#else if" is not a valid CPP directive. Use "#elif".
 1.51  08-Feb-2001  tsutsui Fix INSYSTEM_USBCALBLE quirk entry:
- Make sure to pass iface properly to usbd_set_interface().
- Call usbd_set_interface before calling usbd_get_interface_descriptor().

It seems no one have tested this device. Anyway, my In-System ISD110
USB-IDE adapter does not work in this way..
 1.50  23-Jan-2001  augustss Make sure driver attach/detach events are generated in a consistent manner.
 1.49  21-Jan-2001  augustss Add a quirk for devices that cannot handle full length INQUIRY.
From FreeBSD.
 1.48  06-Jan-2001  augustss Change debugging output a little.
Don't the for the wrong id when UMASS_DEBUG is set.
 1.47  29-Dec-2000  augustss Update many URLs.
 1.46  18-Dec-2000  matt Don't use atapi_print since if there are no wdc's, it won't be present.
 1.45  08-Dec-2000  augustss Add a DIAGNOSTIC message.
 1.44  04-Nov-2000  augustss Add quirks for a Fuji camera.
 1.43  03-Oct-2000  augustss Only probe for drive 0. Fix es problem reported by Nathan Williams
<nathanw@MIT.EDU>.
 1.42  23-Sep-2000  augustss Recognize Sony memory sticks (from FreeBSD).
Add timing info in the debug output.
 1.41  17-Aug-2000  augustss From FreeBSD: add code for Insystem USB cable.
 1.40  12-Aug-2000  augustss Make attach message correct for non-umass devices.
Handle RBC (a SCSI subset).
 1.39  06-Jul-2000  augustss Fix reversed test in umass_activate(). Probably fixes PR 10520.
 1.38  01-Jun-2000  augustss branches: 1.38.2;
Bring the coding style into the 80s, i.e., get rid of __P and use
ANSI prototypes and declarations.
 1.37  31-May-2000  augustss Rename a define.
 1.36  31-May-2000  augustss Implement the scsipi_getgeom method and guess the geometry of floppies
based on the number of sectors.
 1.35  30-May-2000  augustss Massage the SCSI commands when using the UFI protocol in a better way.
Now the Y-E Data Flashbuster floppy seems to work.

Thanks to Y-E Data for giving one to the project when I couldn't find
one easily.
 1.34  28-Apr-2000  augustss branches: 1.34.2;
Don't request sense after INQUIRY. From FreeBSD & OpenBSD.
 1.33  06-Apr-2000  augustss Add another #if NATAPIBUS > 0 in case there is no atapibus attached.
 1.32  04-Apr-2000  augustss Make protocol message more accurate.
 1.31  03-Apr-2000  augustss Enable QIC157 command set. Untested.
 1.30  03-Apr-2000  augustss Enable UFI protocol. Still untested in NetBSD. Used by, e.g., Y-E Data
floppies.
 1.29  03-Apr-2000  enami Make this file compiles under some condition:
- #if 0'ed out the umass_reset for now.
- some atapibus specific code is conditionalized by NATAPIBUS.
 1.28  02-Apr-2000  augustss New and shiny version of the umass driver. This is a port of the new
FreeBSD umass driver by Nick Hibma <n_hibma@freebsd.org> and
MAEKAWA Masahide <bishop@rr.iij4u.or.jp>.
Improvements:
uses asynchronous USB requests
supports more transport protocols (Bulk-only and CBI)
supports more command sets (SCSI and ATAPI)
Tested with Zip100 and Imation Superdisk.
 1.27  29-Mar-2000  augustss Fix a buglet.
 1.26  24-Mar-2000  augustss Rename bulk only protocol (following FreeBSD).
 1.25  29-Feb-2000  augustss Distinguish between device and interface classes.
(I finally found a document that said that they were different.)
 1.24  02-Feb-2000  augustss Generate usb events on attach and detach.
 1.23  17-Nov-1999  augustss A few more purely stylistic changes that I missed in the last round.
 1.22  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.21  13-Oct-1999  augustss branches: 1.21.2; 1.21.4;
Merge in a large batch of changes from Nick Hibma <hibma@skylink.it> so
the USB stack compiles on FreeBSD again.
 1.20  30-Sep-1999  thorpej branches: 1.20.2;
Update for SCSIPI changes.
 1.19  16-Sep-1999  augustss Make defines follow the standard.
 1.18  13-Sep-1999  augustss Put a reference counter in the softc. Without this the driver might access
data that has been freed because the detach() routine returns to early.
 1.17  12-Sep-1999  thorpej Display more verbose information about the command protocol and wire
protocol used by the device, e.g.:

umass0 at uhub0 port 1 configuration 1 interface 0
umass0: Iomega USB Zip 100, rev 1.00/1.00, addr 2
umass0: SCSI over Bulk-Only (iclass 8/6/80)
 1.16  11-Sep-1999  thorpej Hot-unplug works now.
 1.15  11-Sep-1999  thorpej - If a command fails, assume the device returned CHECK CONDITION status,
and issue a REQUEST SENSE. This fixes the media change problems I was
having w/ my USB ZIP drive.
- Clean up some debugging code.
- Implement more hot-unplug stuff.
 1.14  09-Sep-1999  augustss Update doc URLs and fix a typo in umass_bulk_get_max_lun().
 1.13  09-Sep-1999  augustss 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.12  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.11  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.10  30-Aug-1999  thorpej Oops, back out stuff I didn't mean to commit.
 1.9  30-Aug-1999  thorpej Add detach goo; still needs work in the `scsibus' and further layers.
 1.8  29-Aug-1999  thorpej Set openings to 1; only one command may be queued with the device at
a time.
 1.7  29-Aug-1999  thorpej Issue a Get Max Lun request to determine the max lun.
 1.6  29-Aug-1999  thorpej One more TODO item; sub-classes other than SCSI.
 1.5  29-Aug-1999  thorpej Correct typo in URL. From Bill Sommerfeld.
 1.4  29-Aug-1999  thorpej Update the match routine to reflect that the driver actually matches
"Mass Storage/SCSI/Bulk".
 1.3  29-Aug-1999  thorpej Update documentation references.
 1.2  29-Aug-1999  thorpej Note a few TODO items.
 1.1  29-Aug-1999  thorpej Port the FreeBSD `umass' driver to NetBSD. This is still a work-in-progress
since a few things don't yet work properly:
- Sense data isn't reported properly (err, at all).
- It doesn't work with anything other than the Iomega USB Zip drive.
- Hot-unplug doesn't work yet.

...but this is enough to make my shiny new USB Zip drive go.
 1.20.2.1  27-Dec-1999  wrstuden Pull up to last week's -current.
 1.21.4.1  15-Nov-1999  fvdl Sync with -current
 1.21.2.14  21-Apr-2001  bouyer Sync with HEAD
 1.21.2.13  27-Mar-2001  bouyer Sync with HEAD.
 1.21.2.12  23-Mar-2001  bouyer Make compile again.
 1.21.2.11  12-Mar-2001  bouyer Sync with HEAD.
 1.21.2.10  11-Feb-2001  bouyer Sync with HEAD.
 1.21.2.9  22-Jan-2001  bouyer we don't need ACAP_LEN here
 1.21.2.8  18-Jan-2001  bouyer Sync with head (for UBC+NFS fixes, mostly).
 1.21.2.7  15-Jan-2001  bouyer req_sense_length is dead.
 1.21.2.6  05-Jan-2001  bouyer Sync with HEAD
 1.21.2.5  13-Dec-2000  bouyer Sync with HEAD (for UBC fixes).
 1.21.2.4  22-Nov-2000  bouyer Sync with HEAD.
 1.21.2.3  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.21.2.2  26-Oct-1999  thorpej Update for:

Deal a little more gracefully with the fact that xfer mode parameters
are for the I_T Nexus, and make all xfer mode updates `async events'.
 1.21.2.1  19-Oct-1999  thorpej Adapt to scsipi API changes.
 1.34.2.1  22-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.38.2.3  30-Sep-2001  he Apply patch (requested by wiz):
Minor coding fix in preprocessor directive. Fixes PR#13763.
 1.38.2.2  04-Oct-2000  augustss Pull up 1.42-1.43 from trunk. Avoids finding two disk when there is
only one.
Approved by thorpej.
 1.38.2.1  13-Jul-2000  thorpej Pull up rev. 1.39 (augustss):
Fix reversed test which caused umass detach failure.
 1.52.2.13  07-Jan-2003  thorpej Sync with HEAD.
 1.52.2.12  03-Jan-2003  thorpej Sync with HEAD.
 1.52.2.11  19-Dec-2002  thorpej Sync with HEAD.
 1.52.2.10  11-Dec-2002  thorpej Sync with HEAD.
 1.52.2.9  11-Nov-2002  nathanw Catch up to -current
 1.52.2.8  18-Oct-2002  nathanw Catch up to -current.
 1.52.2.7  01-Aug-2002  nathanw Catch up to -current.
 1.52.2.6  01-Apr-2002  nathanw Catch up to -current.
(CVS: It's not just a program. It's an adventure!)
 1.52.2.5  28-Feb-2002  nathanw Catch up to -current.
 1.52.2.4  08-Jan-2002  nathanw Catch up to -current.
 1.52.2.3  14-Nov-2001  nathanw Catch up to -current.
 1.52.2.2  21-Jun-2001  nathanw Catch up to -current.
 1.52.2.1  09-Apr-2001  nathanw Catch up with -current.
 1.62.6.1  12-Nov-2001  thorpej Sync the thorpej-mips-cache branch with -current.
 1.62.2.5  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.62.2.4  06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.62.2.3  23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.62.2.2  16-Mar-2002  jdolecek Catch up with -current.
 1.62.2.1  10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.87.6.2  05-Jan-2003  jmc Pull up revisions 1.91-1.92 (requested by tron in ticket #1055)
Use NULL instead of 0 in pointer checks.
 1.87.6.1  02-Jan-2003  tron Pull up revision 1.93 (requested by toshii in ticket #1054):
Assign NULL to sc_pipe after closing, so that usbd_close_pipe isn't
called twice. At least in NetBSD, the detach function is called when the
device is removed, even if the attach function has failed.
This is probably the cause of panics reported in kern/19326.
 1.87.4.1  15-Jul-2002  gehenna catch up with -current.
 1.96.2.5  10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.96.2.4  17-Jan-2005  skrll Sync with HEAD.
 1.96.2.3  21-Sep-2004  skrll Fix the sync with head I botched.
 1.96.2.2  18-Sep-2004  skrll Sync with HEAD.
 1.96.2.1  03-Aug-2004  skrll Sync with HEAD
 1.109.2.3  10-Jul-2004  tron Pull up revision 1.112 (requested by mycroft in ticket #631):
Fix a printf() error.
 1.109.2.2  02-Jul-2004  he Pull up revision 1.116 (requested by mycroft in ticket #582):
When starting a bulk-only transfer, punt early if the device
is going away.
 1.109.2.1  02-Jul-2004  he Pull up revisions 1.113-1.115 (requested by mycroft in ticket #572):
Several fixes mostly related to USB:
o Use STATUS_CMD_FAILED instead of STATUS_WIRE_FAILED in
response to a CBI stall, so that we do a REQUEST SENSE
thereafter. Fixes PR#22960.
o Fix usage of incorrect buffer in CBI, possibly causing
general failure to transfer data correctly. Fixes
PR#25676.
o Do not do a CBI resset before returning STATUS_CMD_FAILED.
This causes any sense information to be thrown away.
 1.119.2.4  04-Feb-2008  yamt sync with head.
 1.119.2.3  21-Jan-2008  yamt sync with head
 1.119.2.2  03-Sep-2007  yamt sync with head.
 1.119.2.1  26-Feb-2007  yamt sync with head.
 1.120.22.2  10-Dec-2006  yamt sync with head.
 1.120.22.1  22-Oct-2006  yamt sync with head
 1.120.20.2  12-Jan-2007  ad Sync with head.
 1.120.20.1  18-Nov-2006  ad Sync with head.
 1.123.10.2  18-Jun-2007  itohy Pullup 1.124 (attach driver per interface) with #ifdef USB_USE_IFATTACH.
 1.123.10.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.123.8.1  11-Jul-2007  mjf Sync with head.
 1.123.6.1  13-Mar-2007  ad Sync with head.
 1.123.2.1  24-Mar-2007  yamt sync with head.
 1.124.22.1  11-Dec-2007  yamt sync with head.
 1.124.20.1  26-Dec-2007  ad Sync with head.
 1.124.18.1  18-Feb-2008  mjf Sync with HEAD.
 1.124.12.2  23-Mar-2008  matt sync with HEAD
 1.124.12.1  09-Jan-2008  matt sync with HEAD
 1.124.10.2  08-Dec-2007  jmcneill Rename pnp(9) -> pmf(9), as requested by many.
 1.124.10.1  06-Nov-2007  joerg Refactor PNP API:
- Make suspend/resume directly a device functionality. It consists of
three layers (class logic, device logic, bus logic), all of them being
optional. This replaces D0/D3 transitions.
- device_is_active returns true if the device was not disabled and was
not suspended (even partially), device_is_enabled returns true if the
device was enabled.
- Change pnp_global_transition into pnp_system_suspend and
pnp_system_resume. Before running any suspend/resume handlers, check
that all currently attached devices support power management and bail
out otherwise. The latter is not done for the shutdown/panic case.
- Make the former bus-specific generic network handlers a class handler.
- Make PNP message like volume up/down/toogle PNP events. Each device
can register what events they are interested in and whether the handler
should be global or not.
- Introduce device_active API for devices to mark themselve in use from
either the system or the device. Use this to implement the idle handling
for audio and input devices. This is intended to replace most ad-hoc
watchdogs as well.
- Fix somes situations in which audio resume would lose mixer settings.
- Make USB host controllers better deal with suspend in the light of
shared interrupts.
- Flush filesystem cache on suspend.
- Flush disk caches on suspend. Put ATA disks into standby on suspend as
well.
- Adopt drivers to use the new PNP API.
- Fix a critical bug in the generic cardbus layer that made D0->D3
break.
- Fix ral(4) to set if_stop.
- Convert cbb(4) to the new PNP API.
- Apply the PCI Express SCI fix on resume again.
 1.125.2.1  23-Jan-2008  bouyer Sync with HEAD.
 1.126.10.4  11-Mar-2010  yamt sync with head
 1.126.10.3  16-Sep-2009  yamt sync with head
 1.126.10.2  04-May-2009  yamt sync with head.
 1.126.10.1  16-May-2008  yamt sync with head.
 1.126.8.2  04-Jun-2008  yamt sync with head
 1.126.8.1  18-May-2008  yamt sync with head.
 1.126.6.3  17-Jan-2009  mjf Sync with HEAD.
 1.126.6.2  28-Sep-2008  mjf Sync with HEAD.
 1.126.6.1  02-Jun-2008  mjf Sync with HEAD.
 1.127.2.2  18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.127.2.1  23-Jun-2008  wrstuden Sync w/ -current. 34 merge conflicts to follow.
 1.128.4.2  13-Dec-2008  haad Update haad-dm branch to haad-dm-base2.
 1.128.4.1  19-Oct-2008  haad Sync with HEAD.
 1.129.4.2  09-Mar-2010  snj Pull up following revision(s) (requested by is/martin):
sys/dev/usb/usbdevs: revision 1.535
sys/dev/usb/umass.c: revision 1.137
Add SuperTop and SuperTop IDE Bridge to usbdevs.
--
Max out the expected response size at the actual transfer length.
Fixes PR kern/42225.
 1.129.4.1  13-Dec-2008  bouyer branches: 1.129.4.1.4;
Pull up following revision(s) (requested by jmorse in ticket #185):
sys/dev/usb/usbdi.c: revision 1.125
sys/dev/usb/umass.c: revision 1.130
sys/dev/usb/usbdi.h: revision 1.77
PR#39651
Fix two problems in umass:
* usb xfers being freed before being removed from pipe, leading to null
deref
* config_activate requests not supported, which leads to
config_deactivate requests not being passed through. Spotted by jmcneill@=
Added mechanism to usbdi allowing the default pipe to be aborted
 1.129.4.1.4.1  21-Apr-2010  matt sync to netbsd-5
 1.129.2.2  28-Apr-2009  skrll Sync with HEAD.
 1.129.2.1  19-Jan-2009  skrll Sync with HEAD.
 1.130.2.1  13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.136.2.1  30-Apr-2010  uebayasi Sync with HEAD.
 1.141.10.1  21-Feb-2014  sborrill Pull up the following revisions(s) (requested by mlelstv in ticket #1032):
sys/dev/usb/umass.c: revision 1.148
sys/dev/usb/umassvar.h: revision 1.35
sys/dev/usb/usb_mem.c: revision 1.64

Fix problem where umass might allocate buffers in interrupt context which
causes it to fail or a DIAGNOSTIC kernel to panic.
 1.141.6.6  06-Mar-2012  mrg sync to -current
 1.141.6.5  06-Mar-2012  mrg sync to -current
 1.141.6.4  04-Mar-2012  mrg sync to latest -current.
 1.141.6.3  26-Feb-2012  mrg rename usb_detach_waitcv() to usb_detach_wait()
 1.141.6.2  25-Feb-2012  mrg convert to using SMP usb_detach_wait/wakeup().
 1.141.6.1  24-Feb-2012  mrg sync to -current.
 1.141.2.4  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.141.2.3  23-Jan-2013  yamt sync with head
 1.141.2.2  30-Oct-2012  yamt sync with head
 1.141.2.1  17-Apr-2012  yamt sync with head
 1.146.2.3  03-Dec-2017  jdolecek update from HEAD
 1.146.2.2  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.146.2.1  25-Feb-2013  tls resync with head
 1.147.2.1  18-May-2014  rmind sync with head
 1.148.8.2  26-Jan-2017  skrll Sync with HEAD/nhusb
 1.148.8.1  06-Sep-2016  skrll First pass at netbsd-7 updated with USB code from HEAD
 1.148.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.148.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.149.2.23  05-Sep-2017  skrll Whitespace
 1.149.2.22  29-Aug-2017  skrll Typo
 1.149.2.21  28-Aug-2017  skrll Sync with HEAD
 1.149.2.20  05-Feb-2017  skrll Fix build
 1.149.2.19  29-Jan-2017  skrll KNF
 1.149.2.18  29-Jan-2017  skrll Convert to kmem(9)
 1.149.2.17  29-Jan-2017  skrll Fix a comment
 1.149.2.16  05-Dec-2016  skrll Sync with HEAD
 1.149.2.15  27-Oct-2016  skrll Retire usb_detach_{wait,broadcast} and simply use condvar(9) instead
 1.149.2.14  09-Jul-2016  skrll Sync with HEAD
 1.149.2.13  29-May-2016  skrll Sync with HEAD
 1.149.2.12  22-Apr-2016  skrll Sync with HEAD
 1.149.2.11  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.149.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.149.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.149.2.8  21-Mar-2015  skrll Add prefixes to attach_arg structure member names. No functional change.
 1.149.2.7  19-Mar-2015  skrll Do the same as OpenBSD and get rid of the *_handle typedefs and use
plain structures insteads
 1.149.2.6  01-Mar-2015  skrll Use designated initializers
 1.149.2.5  01-Mar-2015  skrll KNF a comment
 1.149.2.4  06-Dec-2014  skrll KNF. Remove argument name from function declarations.

No functional change.
 1.149.2.3  05-Dec-2014  skrll KNF. Remove ( ) from return statements.
 1.149.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.149.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.156.2.2  26-Apr-2017  pgoyette Sync with HEAD
 1.156.2.1  07-Jan-2017  pgoyette Sync with HEAD. (Note that most of these changes are simply $NetBSD$
tag issues.)
 1.157.4.1  24-Jun-2017  jdolecek add detach code for umass_isdata; compile-tested only
 1.158.4.2  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.158.4.1  02-Nov-2017  snj Pull up following revision(s) (requested by pgoyette in ticket #335):
share/man/man9/kernhist.9: 1.5-1.8
sys/arch/acorn26/acorn26/pmap.c: 1.39
sys/arch/arm/arm32/fault.c: 1.105 via patch
sys/arch/arm/arm32/pmap.c: 1.350, 1.359
sys/arch/arm/broadcom/bcm2835_bsc.c: 1.7
sys/arch/arm/omap/if_cpsw.c: 1.20
sys/arch/arm/omap/tiotg.c: 1.7
sys/arch/evbarm/conf/RPI2_INSTALL: 1.3
sys/dev/ic/sl811hs.c: 1.98
sys/dev/usb/ehci.c: 1.256
sys/dev/usb/if_axe.c: 1.83
sys/dev/usb/motg.c: 1.18
sys/dev/usb/ohci.c: 1.274
sys/dev/usb/ucom.c: 1.119
sys/dev/usb/uhci.c: 1.277
sys/dev/usb/uhub.c: 1.137
sys/dev/usb/umass.c: 1.160-1.162
sys/dev/usb/umass_quirks.c: 1.100
sys/dev/usb/umass_scsipi.c: 1.55
sys/dev/usb/usb.c: 1.168
sys/dev/usb/usb_mem.c: 1.70
sys/dev/usb/usb_subr.c: 1.221
sys/dev/usb/usbdi.c: 1.175
sys/dev/usb/usbdi_util.c: 1.67-1.70
sys/dev/usb/usbroothub.c: 1.3
sys/dev/usb/xhci.c: 1.75
sys/external/bsd/drm2/dist/drm/i915/i915_gem.c: 1.34
sys/kern/kern_history.c: 1.15
sys/kern/kern_xxx.c: 1.74
sys/kern/vfs_bio.c: 1.275-1.276
sys/miscfs/genfs/genfs_io.c: 1.71
sys/sys/kernhist.h: 1.21
sys/ufs/ffs/ffs_balloc.c: 1.63
sys/ufs/lfs/lfs_vfsops.c: 1.361
sys/ufs/lfs/ulfs_inode.c: 1.21
sys/ufs/lfs/ulfs_vnops.c: 1.52
sys/ufs/ufs/ufs_inode.c: 1.102
sys/ufs/ufs/ufs_vnops.c: 1.239
sys/uvm/pmap/pmap.c: 1.37-1.39
sys/uvm/pmap/pmap_tlb.c: 1.22
sys/uvm/uvm_amap.c: 1.108
sys/uvm/uvm_anon.c: 1.64
sys/uvm/uvm_aobj.c: 1.126
sys/uvm/uvm_bio.c: 1.91
sys/uvm/uvm_device.c: 1.66
sys/uvm/uvm_fault.c: 1.201
sys/uvm/uvm_km.c: 1.144
sys/uvm/uvm_loan.c: 1.85
sys/uvm/uvm_map.c: 1.353
sys/uvm/uvm_page.c: 1.194
sys/uvm/uvm_pager.c: 1.111
sys/uvm/uvm_pdaemon.c: 1.109
sys/uvm/uvm_swap.c: 1.175
sys/uvm/uvm_vnode.c: 1.103
usr.bin/vmstat/vmstat.c: 1.219
Reorder to test for null before null deref in debug code
--
Reorder to test for null before null deref in debug code
--
KNF
--
No need for '\n' in UVMHIST_LOG
--
normalise a BIOHIST log message
--
Update the kernhist(9) kernel history code to address issues identified
in PR kern/52639, as well as some general cleaning-up...
(As proposed on tech-kern@ with additional changes and enhancements.)
Details of changes:
* All history arguments are now stored as uintmax_t values[1], both in
the kernel and in the structures used for exporting the history data
to userland via sysctl(9). This avoids problems on some architectures
where passing a 64-bit (or larger) value to printf(3) can cause it to
process the value as multiple arguments. (This can be particularly
problematic when printf()'s format string is not a literal, since in
that case the compiler cannot know how large each argument should be.)
* Update the data structures used for exporting kernel history data to
include a version number as well as the length of history arguments.
* All [2] existing users of kernhist(9) have had their format strings
updated. Each format specifier now includes an explicit length
modifier 'j' to refer to numeric values of the size of uintmax_t.
* All [2] existing users of kernhist(9) have had their format strings
updated to replace uses of "%p" with "%#jx", and the pointer
arguments are now cast to (uintptr_t) before being subsequently cast
to (uintmax_t). This is needed to avoid compiler warnings about
casting "pointer to integer of a different size."
* All [2] existing users of kernhist(9) have had instances of "%s" or
"%c" format strings replaced with numeric formats; several instances
of mis-match between format string and argument list have been fixed.
* vmstat(1) has been modified to handle the new size of arguments in the
history data as exported by sysctl(9).
* vmstat(1) now provides a warning message if the history requested with
the -u option does not exist (previously, this condition was silently
ignored, with only a single blank line being printed).
* vmstat(1) now checks the version and argument length included in the
data exported via sysctl(9) and exits if they do not match the values
with which vmstat was built.
* The kernhist(9) man-page has been updated to note the additional
requirements imposed on the format strings, along with several other
minor changes and enhancements.
[1] It would have been possible to use an explicit length (for example,
uint64_t) for the history arguments. But that would require another
"rototill" of all the users in the future when we add support for an
architecture that supports a larger size. Also, the printf(3)
format
specifiers for explicitly-sized values, such as "%"PRIu64, are much
more verbose (and less aesthetically appealing, IMHO) than simply
using "%ju".
[2] I've tried very hard to find "all [the] existing users of
kernhist(9)"
but it is possible that I've missed some of them. I would be glad
to
update any stragglers that anyone identifies.
--
For some reason this single kernel seems to have outgrown its declared
size as a result of the kernhist(9) changes. Bump the size.
XXX The amount of increase may be excessive - anyone with more detailed
XXX knowledge please feel free to further adjust the value
appropriately.
--
Misssed one cast of pointer --> uintptr_t in previous kernhist(9) commit
--
And yet another one. :(
--
Use correct mark-up for NetBSD version.
--
More improvements in grammar and readability.
--
Remove a stray '"' (obvious typo) and add a couple of casts that are
probably needed.
--
And replace an instance of "%p" conversion with "%#jx"
--
Whitespace fix. Give Bl tag table a width. Fix Xr.
 1.163.4.3  21-Apr-2020  martin Sync with HEAD
 1.163.4.2  08-Apr-2020  martin Merge changes from current as of 20200406
 1.163.4.1  10-Jun-2019  christos Sync with HEAD
 1.163.2.2  26-Jan-2019  pgoyette Sync with HEAD
 1.163.2.1  26-Nov-2018  pgoyette Sync with HEAD, resolve a couple of conflicts
 1.175.2.2  21-Jun-2021  martin Pull up following revision(s) (requested by riastradh in ticket #1306):

sys/dev/usb/umass.c: revision 1.185
sys/dev/usb/umass_scsipi.c: revision 1.68

umass(4): Use an empty function callback, not null pointer.

This stupid bug, with an `XXX Broken!' comment right above, has been
preventing NetBSD from suspend/resume with a USB drive plugged in for
longer than I want to even think about admitting. *sigh*
umass(4): Assert that we got a cb up front.

Avoids jump to zero waaaaaaay down the line where we've forgotten why
we wanted to jump into oblivion.
 1.175.2.1  01-Mar-2020  martin Pull up following revision(s) (requested by riastradh in ticket #745):

sys/dev/usb/umass.c: revision 1.177
sys/dev/usb/umass.c: revision 1.178
sys/dev/usb/umass.c: revision 1.179

Abort default pipe too on detach before detaching children.

This ensures that pending xfers on the default pipe will be aborted
before we wait for children, which, in the case of scsibus -> sd,
means waiting for pending xfers to complete -- xfers that may never
complete if something is wedged.

Consolidate logic to call the transfer callback.
No functional change intended.

Make sure the umass transfer callback is run in error branches.
 1.176.2.1  29-Feb-2020  ad Sync with head.
 1.183.2.1  20-Apr-2020  bouyer Sync with HEAD
 1.184.8.1  31-May-2021  cjep sync with head
 1.184.6.1  17-Jun-2021  thorpej Sync w/ HEAD.

RSS XML Feed