#
1.57 |
|
15-Mar-2020 |
skrll |
Use roundup. NFCI.
|
Revision tags: ad-namecache-base3 netbsd-9-0-RELEASE netbsd-9-0-RC2 ad-namecache-base2 ad-namecache-base1 ad-namecache-base netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 isaki-audio2-base pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930
|
#
1.56 |
|
17-Sep-2018 |
mrg |
reorder some struct members to remove holes.
|
Revision tags: pgoyette-compat-0906 jdolecek-ncqfixes-base
|
#
1.55 |
|
09-Aug-2018 |
mrg |
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 -- #ifdef DIAGNOSTIC -> KASSERT and add another KASSERT -- 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.
|
Revision tags: pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415
|
#
1.54 |
|
09-Apr-2018 |
jakllsch |
branches: 1.54.2; Stop potential misuse of vendor names and USB vendor IDs in root hub device and string descriptors.
Firstly: Few vendors have identical PCI-SIG vendor IDs and USB-IF vendor IDs. As such, using the PCI vendor ID as a USB vendor ID may trample on whomever is allocated that USB vendor ID.
Secondly: The vendor of the host controller hardware implementation has little to nothing to do with our usbroothub implementation. Thus we should not potentially associate any problems therewith to such third party.
This change will result in root hubs being identified by USB Vendor ID 0x0000. Root hub vendor string will now be "NetBSD" (or, specifically: ostype). Product ID (0x0000) and product strings remain unchanged.
|
Revision tags: netbsd-8-0-RELEASE netbsd-8-0-RC2 netbsd-8-0-RC1 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base tls-maxphys-base-20171202 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529
|
#
1.53 |
|
23-Apr-2016 |
skrll |
branches: 1.53.10; 1.53.16; 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
|
Revision tags: netbsd-7-1-2-RELEASE netbsd-7-1-1-RELEASE netbsd-7-1-RELEASE netbsd-7-1-RC2 netbsd-7-nhusb-base-20170116 netbsd-7-1-RC1 netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226 netbsd-7-0-RELEASE nick-nhusb-base-20150921 netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base netbsd-7-base yamt-pagecache-base9 tls-earlyentropy-base riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 rmind-smpnet-nbase riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base rmind-smpnet-base agc-symver-base tls-maxphys-base
|
#
1.52 |
|
29-Jan-2013 |
christos |
branches: 1.52.12; 1.52.14; 1.52.18; use a pool instead of a linked list to avoid synchronization problems.
|
Revision tags: yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6
|
#
1.51 |
|
10-Jun-2012 |
mrg |
branches: 1.51.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.
|
Revision tags: jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7 jmcneill-usbmp-base6
|
#
1.50 |
|
06-Mar-2012 |
mrg |
pull down from usbmp:
kill the !USE_USE_SOFTINTR code.
|
Revision tags: jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3
|
#
1.49 |
|
24-Feb-2012 |
mrg |
remove any remnants of freebsd/openbsd code.
|
Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base2 netbsd-6-base mrg-ohci-jmcneill-usbmp-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base rmind-uvmplock-nbase cherry-xenmp-base bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231 uebayasi-xip-base4 rmind-uvmplock-base
|
#
1.48 |
|
03-Nov-2010 |
dyoung |
branches: 1.48.8; 1.48.12; 1.48.14; 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
|
Revision tags: uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10 uebayasi-xip-base1 yamt-nfs-mp-base9
|
#
1.47 |
|
24-Feb-2010 |
dyoung |
branches: 1.47.2; A pointer typedef entails trading too much flexibility to declare const and non-const types, and the kernel uses both const and non-const PMF qualifiers and device suspensors, so change the pmf_qual_t and device_suspensor_t typedefs from "pointers to const" to non-pointer, non-const types.
|
Revision tags: uebayasi-xip-base
|
#
1.46 |
|
08-Jan-2010 |
dyoung |
branches: 1.46.2; Expand PMF_FN_* macros.
|
Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-premerge-20091211 yamt-nfs-mp-base8 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 yamt-nfs-mp-base7 netbsd-5-0-1-RELEASE jymxensuspend-base yamt-nfs-mp-base6 yamt-nfs-mp-base5 yamt-nfs-mp-base4 jym-xensuspend-nbase yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 nick-hppapmap-base2 netbsd-5-0-RC2 jym-xensuspend-base netbsd-5-0-RC1 haad-dm-base2 haad-nbase2 ad-audiomp2-base netbsd-5-base nick-hppapmap-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 haad-dm-base simonb-wapbl-nbase simonb-wapbl-base mjf-devfs2-base
|
#
1.45 |
|
28-Jun-2008 |
bouyer |
Add appropriate bus_dmamap_sync() calls to uhci(4), ohci(4) and ehci(4), as proposed on tech-kern@. While all DMA memory used in the USB framework is mapped BUS_DMAMAP_COHERENT (including data memory, which is memcpy'd from/to USB-private buffers), the CPU can reorder loads or stores from/to main memory, causing the controller to have an incoherent view of the DMA descriptors lists for a short time. bus_dmamap_sync() should contain memory barriers that prevents the CPU from reordering load/store. Note that BUS_DMAMAP_COHERENT is still required for the DMA descriptor lists - these can't work properly with software cache coherency. This fixes "host controller process error/host controller halted" errors I'm occasionally seeing with a umodem device on uhci on x86. Thanks to Michael Lorenz for testing it on his O2, and Izumi Tsutsui on his Cobalt Qube 2700.
|
Revision tags: wrstuden-revivesa-base-1 yamt-pf42-base4 yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-base2 yamt-nfs-mp-base2 wrstuden-revivesa-base
|
#
1.44 |
|
28-Apr-2008 |
martin |
branches: 1.44.2; 1.44.4; Remove clause 3 and 4 from TNF licenses
|
Revision tags: yamt-pf42-baseX yamt-nfs-mp-base yamt-pf42-base
|
#
1.43 |
|
28-Mar-2008 |
drochner |
branches: 1.43.2; 1.43.4; split device/softc for USB host controllers and the usb (control) device, this is hairy stuff, and I've only tested with uhci/ehci at pci, please test the rest and report problems
|
Revision tags: ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase keiichi-mipv6-base matt-armv6-nbase hpcarm-cleanup-base
|
#
1.42 |
|
22-Feb-2008 |
dyoung |
Add a method to detach child.
Cosmetic: use device_t and accessors. Use aprint_*_dev(). Use PMF_FN_{ARGS,CALL,PROTO}.
|
Revision tags: nick-net80211-sync-base bouyer-xeni386-merge1 vmlocking2-base3 bouyer-xeni386-nbase yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 bouyer-xeni386-base mjf-devfs-base matt-armv6-base
|
#
1.41 |
|
09-Dec-2007 |
jmcneill |
branches: 1.41.6; 1.41.10; Merge jmcneill-pm branch.
|
Revision tags: netbsd-4-0-1-RELEASE nick-csl-alignment-base5 matt-armv6-prevmlocking wrstuden-fixsa-base-1 netbsd-4-0-RELEASE yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase vmlocking2-base1 netbsd-4-0-RC5 matt-nb4-arm-base jmcneill-base netbsd-4-0-RC4 bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base netbsd-4-0-RC3 yamt-x86pmap-base3 yamt-x86pmap-base2 netbsd-4-0-RC2 yamt-x86pmap-base netbsd-4-0-RC1 matt-mips64-base jmcneill-pm-base nick-csl-alignment-base itohy-usb1-base yamt-idlelwp-base8 thorpej-atomic-base reinoud-bufcleanup-base mjf-ufs-trans-base vmlocking-base ad-audiomp-base post-newlock2-merge newlock2-nbase yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 abandoned-netbsd-4-base yamt-splraiseipl-base2 yamt-splraiseipl-base yamt-pdpolicy-base9 newlock2-base yamt-pdpolicy-base8 yamt-pdpolicy-base7 netbsd-4-base yamt-pdpolicy-base6 chap-midi-nbase gdamore-uart-base simonb-timcounters-final yamt-pdpolicy-base5 chap-midi-base yamt-pdpolicy-base4 yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 elad-kernelauth-base yamt-pdpolicy-base yamt-uio_vmspace-base5 simonb-timecounters-base rpaulo-netinet-merge-pcb-base
|
#
1.40 |
|
27-Dec-2005 |
chs |
branches: 1.40.24; 1.40.38; 1.40.40; 1.40.46; 1.40.48; 1.40.58; 1.40.60; changes for making DIAGNOSTIC not change the kernel ABI: - for structure fields that are conditionally present, make those fields always present. - for functions which are conditionally inline, make them never inline. - remove some other functions which are conditionally defined but don't actually do anything anymore. - make a lock-debugging function conditional on only LOCKDEBUG.
as discussed on tech-kern some time back.
|
#
1.39 |
|
11-Dec-2005 |
christos |
merge ktrace-lwp.
|
Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 yamt-readahead-base3 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 yamt-readahead-base2 netbsd-3-0-RC2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base netbsd-3-0-RC1 yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base yamt-km-base4 yamt-km-base3 netbsd-3-base yamt-km-base2 yamt-km-base kent-audio2-base ktrace-lwp-base
|
#
1.38 |
|
11-Jan-2005 |
imp |
branches: 1.38.8; 1.38.10; Merge from FreeBSD: sc_child is only used on NetBSD and OpenBSD, ifdef appropriately FreeBSD revisions: ehcivar.h 1.8 ohcivar.h 1.39 uhicvar.h 1.39
|
Revision tags: kent-audio1-beforemerge
|
#
1.37 |
|
21-Dec-2004 |
fvdl |
Implement an USB memory reserve. Allocate some memory per host controller in the wanted bus_dma space. If an allocation fails during operation (i.e. when hotplugging an umass device), fall back to using the reserve.
The amount can be configured as USB_MEM_RESERVE. The default value is 256k.
Ideally, there would be a way to steal pages in the desired area from UVM, but that's far more complicated, and this is not intrusive, plus it works.
|
Revision tags: netbsd-2-0-3-RELEASE netbsd-2-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-base kent-audio1-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base nathanw_sa_before_merge fvdl_fs64_base nathanw_sa_base
|
#
1.36 |
|
31-Dec-2002 |
augustss |
branches: 1.36.2; 1.36.8; Use a somewhat bigger buffer for the vendor string.
|
Revision tags: gmcgarry_ctxsw_base gmcgarry_ucred_base kqueue-aftermerge kqueue-beforemerge kqueue-base
|
#
1.35 |
|
29-Sep-2002 |
augustss |
Add #ifdef USB_USE_SOFTINTR for some softintr code. From FreeBSD.
|
Revision tags: gehenna-devsw-base
|
#
1.34 |
|
11-Jul-2002 |
augustss |
Get rid of trailing white space.
|
Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base eeh-devprop-base newlock-base ifpoll-base
|
#
1.33 |
|
11-Feb-2002 |
augustss |
branches: 1.33.8; Switch to new abort mechanism.
|
Revision tags: thorpej-mips-cache-base thorpej-devvp-base3 thorpej-devvp-base2 post-chs-ubcperf pre-chs-ubcperf thorpej-devvp-base thorpej_scsipi_beforemerge thorpej_scsipi_nbase thorpej_scsipi_base
|
#
1.32 |
|
13-Aug-2000 |
augustss |
branches: 1.32.2; 1.32.4; Implement what in Intel-speech is known as "bandwidth reclamation". It means that we continously poll USB devices that have a pending transfer instead of polling just once every ms. This speeds up some transfers at the expense of using more PCI bandwidth.
|
Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base
|
#
1.31 |
|
01-Jun-2000 |
augustss |
Bring the coding style into the 80s, i.e., get rid of __P and use ANSI prototypes and declarations.
|
Revision tags: minoura-xpg4dl-base
|
#
1.30 |
|
27-Apr-2000 |
augustss |
branches: 1.30.2; Change my email address.
|
#
1.29 |
|
25-Apr-2000 |
augustss |
Move the size of the mapped bus_space region into the bus independent softc.
|
#
1.28 |
|
06-Apr-2000 |
augustss |
Fix typos in comments.
|
#
1.27 |
|
25-Mar-2000 |
augustss |
Rename and move around callout handles to make it more sane. Add some DIAGNOSTIC. Fix buglet in isoc abort on UHCI.
|
#
1.26 |
|
24-Mar-2000 |
augustss |
Two major changes:
Make each xfer have its own intr_info. This is necessary if we want to queue multiple xfers on an endpoint. This should get rid of the (mostly harmless) DIAGNOSTICs about intr_infos (not) being done.
Change (again!) how xfers are aborted. Aborting a TD is a nightmare on the braindead UHCI controller. (Unless you stop the HC, thereby losing isoc traffic.) Hopefully I got it right this time.
|
#
1.25 |
|
24-Mar-2000 |
augustss |
Some cleanup and renaming of the callouts used in USB drivers.
|
#
1.24 |
|
23-Mar-2000 |
thorpej |
New callout mechanism with two major improvements over the old timeout()/untimeout() API: - Clients supply callout handle storage, thus eliminating problems of resource allocation. - Insertion and removal of callouts is constant time, important as this facility is used quite a lot in the kernel.
The old timeout()/untimeout() API has been removed from the kernel.
|
#
1.23 |
|
22-Feb-2000 |
augustss |
Save and restore a couple ofregisters in the power hook in case BIOS doesn't.
|
Revision tags: chs-ubc2-newbase
|
#
1.22 |
|
26-Jan-2000 |
augustss |
Try to avoid accessing the HC if it is dead. Suggested by mycroft.
|
#
1.21 |
|
18-Jan-2000 |
augustss |
Turn xfer allocation into a method in the HC driver. The reason is that an HC driver may want to subclass the xfer to have additional private fields.
|
#
1.20 |
|
16-Jan-2000 |
augustss |
Add shutdown hooks to ensure that the host controller is halted when a reboot occurs.
|
Revision tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base
|
#
1.19 |
|
06-Dec-1999 |
augustss |
Cosmetics and a couple of diagnostic messages.
|
#
1.18 |
|
18-Nov-1999 |
augustss |
Cosmetic changes and some small improvements. From FreeBSD and Nick Hibma.
|
Revision tags: fvdl-softdep-base
|
#
1.17 |
|
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
|
Revision tags: comdex-fall-1999-base
|
#
1.16 |
|
13-Oct-1999 |
augustss |
branches: 1.16.2; 1.16.4; Merge in a large batch of changes from Nick Hibma <hibma@skylink.it> so the USB stack compiles on FreeBSD again.
|
#
1.15 |
|
12-Oct-1999 |
augustss |
Deallocate resources (bus space and interrupts) when detaching from the bus.
|
#
1.14 |
|
15-Sep-1999 |
augustss |
branches: 1.14.2; Add preliminary (untested) code for detaching the USB host controller (needed for CardBus based controllers).
|
#
1.13 |
|
13-Sep-1999 |
augustss |
Rearrange the code a little so we can decide if we are in process or interrupt context in a reliable way. Mainly used for DIAGNOSTIC.
|
#
1.12 |
|
22-Aug-1999 |
augustss |
Merge the soft_{td,ed} with the real {td,ed}. This saves time and space. (And fix typo in corresponding uhci change.)
|
#
1.11 |
|
22-Aug-1999 |
augustss |
Merge the soft_{td,qh} with the real {td,qh}. This saves time and space.
|
#
1.10 |
|
22-Aug-1999 |
augustss |
Move more of the transfer completion processing to HC independent code. Fix some problems with transfer abort & timeout.
|
#
1.9 |
|
17-Aug-1999 |
augustss |
Make some small changes to make it compile on OpenBSD.
|
#
1.8 |
|
14-Aug-1999 |
augustss |
Some changes from FreeBSD (no functional differences).
|
Revision tags: chs-ubc2-base
|
#
1.7 |
|
26-Jun-1999 |
augustss |
Add suspend/resume handling to the UHCI driver. Currently it only works if the BIOS saves enough state of the controller. Once I find a machine with a dumber BIOS I'll try to improve that.
|
#
1.6 |
|
20-May-1999 |
augustss |
Keep track of vendor id and make sure the vendor string is NUL terminated.
|
Revision tags: netbsd-1-4-PATCH003 netbsd-1-4-PATCH002 kame_141_19991130 netbsd-1-4-PATCH001 kame_14_19990705 kame_14_19990628 netbsd-1-4-RELEASE netbsd-1-4-base
|
#
1.5 |
|
26-Dec-1998 |
augustss |
branches: 1.5.4; 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.
|
Revision tags: kenh-if-detach-base
|
#
1.4 |
|
25-Nov-1998 |
augustss |
Make the copyright header conform to the NetBSD template.
|
Revision tags: chs-ubc-base eeh-paddr_t-base
|
#
1.3 |
|
26-Jul-1998 |
augustss |
Use PCI class/subclass/interface to match USB host controllers instead of vendor/product id. This makes the probe find more controllers without recompilation.
|
#
1.2 |
|
24-Jul-1998 |
augustss |
Add special memory allocation routines that supports allocation DMA-able memory in small chunks (USB uses a lot of 8 byte chunks). Using the bus_dma functions directly is inefficient.
|
#
1.1 |
|
12-Jul-1998 |
augustss |
Add USB support. Supported so far: * UHCI and OHCI host controllers on PCI * Hubs * HID devices withe special drivers for mouse and keyboard * Printers
|
Revision tags: isaki-audio2-base pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930
|
#
1.56 |
|
17-Sep-2018 |
mrg |
reorder some struct members to remove holes.
|
Revision tags: pgoyette-compat-0906 jdolecek-ncqfixes-base
|
#
1.55 |
|
09-Aug-2018 |
mrg |
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 -- #ifdef DIAGNOSTIC -> KASSERT and add another KASSERT -- 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.
|
Revision tags: pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415
|
#
1.54 |
|
09-Apr-2018 |
jakllsch |
Stop potential misuse of vendor names and USB vendor IDs in root hub device and string descriptors.
Firstly: Few vendors have identical PCI-SIG vendor IDs and USB-IF vendor IDs. As such, using the PCI vendor ID as a USB vendor ID may trample on whomever is allocated that USB vendor ID.
Secondly: The vendor of the host controller hardware implementation has little to nothing to do with our usbroothub implementation. Thus we should not potentially associate any problems therewith to such third party.
This change will result in root hubs being identified by USB Vendor ID 0x0000. Root hub vendor string will now be "NetBSD" (or, specifically: ostype). Product ID (0x0000) and product strings remain unchanged.
|
Revision tags: netbsd-8-0-RELEASE netbsd-8-0-RC2 netbsd-8-0-RC1 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base tls-maxphys-base-20171202 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529
|
#
1.53 |
|
23-Apr-2016 |
skrll |
branches: 1.53.10; 1.53.16; 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
|
Revision tags: netbsd-7-1-2-RELEASE netbsd-7-1-1-RELEASE netbsd-7-1-RELEASE netbsd-7-1-RC2 netbsd-7-nhusb-base-20170116 netbsd-7-1-RC1 netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226 netbsd-7-0-RELEASE nick-nhusb-base-20150921 netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base netbsd-7-base yamt-pagecache-base9 tls-earlyentropy-base riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 rmind-smpnet-nbase riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base rmind-smpnet-base agc-symver-base tls-maxphys-base
|
#
1.52 |
|
29-Jan-2013 |
christos |
branches: 1.52.12; 1.52.14; 1.52.18; use a pool instead of a linked list to avoid synchronization problems.
|
Revision tags: yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6
|
#
1.51 |
|
10-Jun-2012 |
mrg |
branches: 1.51.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.
|
Revision tags: jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7 jmcneill-usbmp-base6
|
#
1.50 |
|
06-Mar-2012 |
mrg |
pull down from usbmp:
kill the !USE_USE_SOFTINTR code.
|
Revision tags: jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3
|
#
1.49 |
|
24-Feb-2012 |
mrg |
remove any remnants of freebsd/openbsd code.
|
Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base2 netbsd-6-base mrg-ohci-jmcneill-usbmp-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base rmind-uvmplock-nbase cherry-xenmp-base bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231 uebayasi-xip-base4 rmind-uvmplock-base
|
#
1.48 |
|
03-Nov-2010 |
dyoung |
branches: 1.48.8; 1.48.12; 1.48.14; 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
|
Revision tags: uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10 uebayasi-xip-base1 yamt-nfs-mp-base9
|
#
1.47 |
|
24-Feb-2010 |
dyoung |
branches: 1.47.2; A pointer typedef entails trading too much flexibility to declare const and non-const types, and the kernel uses both const and non-const PMF qualifiers and device suspensors, so change the pmf_qual_t and device_suspensor_t typedefs from "pointers to const" to non-pointer, non-const types.
|
Revision tags: uebayasi-xip-base
|
#
1.46 |
|
08-Jan-2010 |
dyoung |
branches: 1.46.2; Expand PMF_FN_* macros.
|
Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-premerge-20091211 yamt-nfs-mp-base8 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 yamt-nfs-mp-base7 netbsd-5-0-1-RELEASE jymxensuspend-base yamt-nfs-mp-base6 yamt-nfs-mp-base5 yamt-nfs-mp-base4 jym-xensuspend-nbase yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 nick-hppapmap-base2 netbsd-5-0-RC2 jym-xensuspend-base netbsd-5-0-RC1 haad-dm-base2 haad-nbase2 ad-audiomp2-base netbsd-5-base nick-hppapmap-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 haad-dm-base simonb-wapbl-nbase simonb-wapbl-base mjf-devfs2-base
|
#
1.45 |
|
28-Jun-2008 |
bouyer |
Add appropriate bus_dmamap_sync() calls to uhci(4), ohci(4) and ehci(4), as proposed on tech-kern@. While all DMA memory used in the USB framework is mapped BUS_DMAMAP_COHERENT (including data memory, which is memcpy'd from/to USB-private buffers), the CPU can reorder loads or stores from/to main memory, causing the controller to have an incoherent view of the DMA descriptors lists for a short time. bus_dmamap_sync() should contain memory barriers that prevents the CPU from reordering load/store. Note that BUS_DMAMAP_COHERENT is still required for the DMA descriptor lists - these can't work properly with software cache coherency. This fixes "host controller process error/host controller halted" errors I'm occasionally seeing with a umodem device on uhci on x86. Thanks to Michael Lorenz for testing it on his O2, and Izumi Tsutsui on his Cobalt Qube 2700.
|
Revision tags: wrstuden-revivesa-base-1 yamt-pf42-base4 yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-base2 yamt-nfs-mp-base2 wrstuden-revivesa-base
|
#
1.44 |
|
28-Apr-2008 |
martin |
branches: 1.44.2; 1.44.4; Remove clause 3 and 4 from TNF licenses
|
Revision tags: yamt-pf42-baseX yamt-nfs-mp-base yamt-pf42-base
|
#
1.43 |
|
28-Mar-2008 |
drochner |
branches: 1.43.2; 1.43.4; split device/softc for USB host controllers and the usb (control) device, this is hairy stuff, and I've only tested with uhci/ehci at pci, please test the rest and report problems
|
Revision tags: ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase keiichi-mipv6-base matt-armv6-nbase hpcarm-cleanup-base
|
#
1.42 |
|
22-Feb-2008 |
dyoung |
Add a method to detach child.
Cosmetic: use device_t and accessors. Use aprint_*_dev(). Use PMF_FN_{ARGS,CALL,PROTO}.
|
Revision tags: nick-net80211-sync-base bouyer-xeni386-merge1 vmlocking2-base3 bouyer-xeni386-nbase yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 bouyer-xeni386-base mjf-devfs-base matt-armv6-base
|
#
1.41 |
|
09-Dec-2007 |
jmcneill |
branches: 1.41.6; 1.41.10; Merge jmcneill-pm branch.
|
Revision tags: netbsd-4-0-1-RELEASE nick-csl-alignment-base5 matt-armv6-prevmlocking wrstuden-fixsa-base-1 netbsd-4-0-RELEASE yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase vmlocking2-base1 netbsd-4-0-RC5 matt-nb4-arm-base jmcneill-base netbsd-4-0-RC4 bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base netbsd-4-0-RC3 yamt-x86pmap-base3 yamt-x86pmap-base2 netbsd-4-0-RC2 yamt-x86pmap-base netbsd-4-0-RC1 matt-mips64-base jmcneill-pm-base nick-csl-alignment-base itohy-usb1-base yamt-idlelwp-base8 thorpej-atomic-base reinoud-bufcleanup-base mjf-ufs-trans-base vmlocking-base ad-audiomp-base post-newlock2-merge newlock2-nbase yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 abandoned-netbsd-4-base yamt-splraiseipl-base2 yamt-splraiseipl-base yamt-pdpolicy-base9 newlock2-base yamt-pdpolicy-base8 yamt-pdpolicy-base7 netbsd-4-base yamt-pdpolicy-base6 chap-midi-nbase gdamore-uart-base simonb-timcounters-final yamt-pdpolicy-base5 chap-midi-base yamt-pdpolicy-base4 yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 elad-kernelauth-base yamt-pdpolicy-base yamt-uio_vmspace-base5 simonb-timecounters-base rpaulo-netinet-merge-pcb-base
|
#
1.40 |
|
27-Dec-2005 |
chs |
branches: 1.40.24; 1.40.38; 1.40.40; 1.40.46; 1.40.48; 1.40.58; 1.40.60; changes for making DIAGNOSTIC not change the kernel ABI: - for structure fields that are conditionally present, make those fields always present. - for functions which are conditionally inline, make them never inline. - remove some other functions which are conditionally defined but don't actually do anything anymore. - make a lock-debugging function conditional on only LOCKDEBUG.
as discussed on tech-kern some time back.
|
#
1.39 |
|
11-Dec-2005 |
christos |
merge ktrace-lwp.
|
Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 yamt-readahead-base3 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 yamt-readahead-base2 netbsd-3-0-RC2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base netbsd-3-0-RC1 yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base yamt-km-base4 yamt-km-base3 netbsd-3-base yamt-km-base2 yamt-km-base kent-audio2-base ktrace-lwp-base
|
#
1.38 |
|
11-Jan-2005 |
imp |
branches: 1.38.8; 1.38.10; Merge from FreeBSD: sc_child is only used on NetBSD and OpenBSD, ifdef appropriately FreeBSD revisions: ehcivar.h 1.8 ohcivar.h 1.39 uhicvar.h 1.39
|
Revision tags: kent-audio1-beforemerge
|
#
1.37 |
|
21-Dec-2004 |
fvdl |
Implement an USB memory reserve. Allocate some memory per host controller in the wanted bus_dma space. If an allocation fails during operation (i.e. when hotplugging an umass device), fall back to using the reserve.
The amount can be configured as USB_MEM_RESERVE. The default value is 256k.
Ideally, there would be a way to steal pages in the desired area from UVM, but that's far more complicated, and this is not intrusive, plus it works.
|
Revision tags: netbsd-2-0-3-RELEASE netbsd-2-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-base kent-audio1-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base nathanw_sa_before_merge fvdl_fs64_base nathanw_sa_base
|
#
1.36 |
|
31-Dec-2002 |
augustss |
branches: 1.36.2; 1.36.8; Use a somewhat bigger buffer for the vendor string.
|
Revision tags: gmcgarry_ctxsw_base gmcgarry_ucred_base kqueue-aftermerge kqueue-beforemerge kqueue-base
|
#
1.35 |
|
29-Sep-2002 |
augustss |
Add #ifdef USB_USE_SOFTINTR for some softintr code. From FreeBSD.
|
Revision tags: gehenna-devsw-base
|
#
1.34 |
|
11-Jul-2002 |
augustss |
Get rid of trailing white space.
|
Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base eeh-devprop-base newlock-base ifpoll-base
|
#
1.33 |
|
11-Feb-2002 |
augustss |
branches: 1.33.8; Switch to new abort mechanism.
|
Revision tags: thorpej-mips-cache-base thorpej-devvp-base3 thorpej-devvp-base2 post-chs-ubcperf pre-chs-ubcperf thorpej-devvp-base thorpej_scsipi_beforemerge thorpej_scsipi_nbase thorpej_scsipi_base
|
#
1.32 |
|
13-Aug-2000 |
augustss |
branches: 1.32.2; 1.32.4; Implement what in Intel-speech is known as "bandwidth reclamation". It means that we continously poll USB devices that have a pending transfer instead of polling just once every ms. This speeds up some transfers at the expense of using more PCI bandwidth.
|
Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base
|
#
1.31 |
|
01-Jun-2000 |
augustss |
Bring the coding style into the 80s, i.e., get rid of __P and use ANSI prototypes and declarations.
|
Revision tags: minoura-xpg4dl-base
|
#
1.30 |
|
27-Apr-2000 |
augustss |
branches: 1.30.2; Change my email address.
|
#
1.29 |
|
25-Apr-2000 |
augustss |
Move the size of the mapped bus_space region into the bus independent softc.
|
#
1.28 |
|
06-Apr-2000 |
augustss |
Fix typos in comments.
|
#
1.27 |
|
25-Mar-2000 |
augustss |
Rename and move around callout handles to make it more sane. Add some DIAGNOSTIC. Fix buglet in isoc abort on UHCI.
|
#
1.26 |
|
24-Mar-2000 |
augustss |
Two major changes:
Make each xfer have its own intr_info. This is necessary if we want to queue multiple xfers on an endpoint. This should get rid of the (mostly harmless) DIAGNOSTICs about intr_infos (not) being done.
Change (again!) how xfers are aborted. Aborting a TD is a nightmare on the braindead UHCI controller. (Unless you stop the HC, thereby losing isoc traffic.) Hopefully I got it right this time.
|
#
1.25 |
|
24-Mar-2000 |
augustss |
Some cleanup and renaming of the callouts used in USB drivers.
|
#
1.24 |
|
23-Mar-2000 |
thorpej |
New callout mechanism with two major improvements over the old timeout()/untimeout() API: - Clients supply callout handle storage, thus eliminating problems of resource allocation. - Insertion and removal of callouts is constant time, important as this facility is used quite a lot in the kernel.
The old timeout()/untimeout() API has been removed from the kernel.
|
#
1.23 |
|
22-Feb-2000 |
augustss |
Save and restore a couple ofregisters in the power hook in case BIOS doesn't.
|
Revision tags: chs-ubc2-newbase
|
#
1.22 |
|
26-Jan-2000 |
augustss |
Try to avoid accessing the HC if it is dead. Suggested by mycroft.
|
#
1.21 |
|
18-Jan-2000 |
augustss |
Turn xfer allocation into a method in the HC driver. The reason is that an HC driver may want to subclass the xfer to have additional private fields.
|
#
1.20 |
|
16-Jan-2000 |
augustss |
Add shutdown hooks to ensure that the host controller is halted when a reboot occurs.
|
Revision tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base
|
#
1.19 |
|
06-Dec-1999 |
augustss |
Cosmetics and a couple of diagnostic messages.
|
#
1.18 |
|
18-Nov-1999 |
augustss |
Cosmetic changes and some small improvements. From FreeBSD and Nick Hibma.
|
Revision tags: fvdl-softdep-base
|
#
1.17 |
|
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
|
Revision tags: comdex-fall-1999-base
|
#
1.16 |
|
13-Oct-1999 |
augustss |
branches: 1.16.2; 1.16.4; Merge in a large batch of changes from Nick Hibma <hibma@skylink.it> so the USB stack compiles on FreeBSD again.
|
#
1.15 |
|
12-Oct-1999 |
augustss |
Deallocate resources (bus space and interrupts) when detaching from the bus.
|
#
1.14 |
|
15-Sep-1999 |
augustss |
branches: 1.14.2; Add preliminary (untested) code for detaching the USB host controller (needed for CardBus based controllers).
|
#
1.13 |
|
13-Sep-1999 |
augustss |
Rearrange the code a little so we can decide if we are in process or interrupt context in a reliable way. Mainly used for DIAGNOSTIC.
|
#
1.12 |
|
22-Aug-1999 |
augustss |
Merge the soft_{td,ed} with the real {td,ed}. This saves time and space. (And fix typo in corresponding uhci change.)
|
#
1.11 |
|
22-Aug-1999 |
augustss |
Merge the soft_{td,qh} with the real {td,qh}. This saves time and space.
|
#
1.10 |
|
22-Aug-1999 |
augustss |
Move more of the transfer completion processing to HC independent code. Fix some problems with transfer abort & timeout.
|
#
1.9 |
|
17-Aug-1999 |
augustss |
Make some small changes to make it compile on OpenBSD.
|
#
1.8 |
|
14-Aug-1999 |
augustss |
Some changes from FreeBSD (no functional differences).
|
Revision tags: chs-ubc2-base
|
#
1.7 |
|
26-Jun-1999 |
augustss |
Add suspend/resume handling to the UHCI driver. Currently it only works if the BIOS saves enough state of the controller. Once I find a machine with a dumber BIOS I'll try to improve that.
|
#
1.6 |
|
20-May-1999 |
augustss |
Keep track of vendor id and make sure the vendor string is NUL terminated.
|
Revision tags: netbsd-1-4-PATCH003 netbsd-1-4-PATCH002 kame_141_19991130 netbsd-1-4-PATCH001 kame_14_19990705 kame_14_19990628 netbsd-1-4-RELEASE netbsd-1-4-base
|
#
1.5 |
|
26-Dec-1998 |
augustss |
branches: 1.5.4; 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.
|
Revision tags: kenh-if-detach-base
|
#
1.4 |
|
25-Nov-1998 |
augustss |
Make the copyright header conform to the NetBSD template.
|
Revision tags: chs-ubc-base eeh-paddr_t-base
|
#
1.3 |
|
26-Jul-1998 |
augustss |
Use PCI class/subclass/interface to match USB host controllers instead of vendor/product id. This makes the probe find more controllers without recompilation.
|
#
1.2 |
|
24-Jul-1998 |
augustss |
Add special memory allocation routines that supports allocation DMA-able memory in small chunks (USB uses a lot of 8 byte chunks). Using the bus_dma functions directly is inefficient.
|
#
1.1 |
|
12-Jul-1998 |
augustss |
Add USB support. Supported so far: * UHCI and OHCI host controllers on PCI * Hubs * HID devices withe special drivers for mouse and keyboard * Printers
|
Revision tags: nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529
|
#
1.53 |
|
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
|
Revision tags: netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE nick-nhusb-base-20160422 nick-nhusb-base-20160319 nick-nhusb-base-20151226 netbsd-7-0-RELEASE nick-nhusb-base-20150921 netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 nick-nhusb-base-20150606 nick-nhusb-base-20150406 nick-nhusb-base netbsd-7-base yamt-pagecache-base9 tls-earlyentropy-base riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 rmind-smpnet-nbase riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base rmind-smpnet-base agc-symver-base tls-maxphys-base
|
#
1.52 |
|
29-Jan-2013 |
christos |
branches: 1.52.14; 1.52.18; use a pool instead of a linked list to avoid synchronization problems.
|
Revision tags: yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6
|
#
1.51 |
|
10-Jun-2012 |
mrg |
branches: 1.51.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.
|
Revision tags: jmcneill-usbmp-base10 yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7 jmcneill-usbmp-base6
|
#
1.50 |
|
06-Mar-2012 |
mrg |
pull down from usbmp:
kill the !USE_USE_SOFTINTR code.
|
Revision tags: jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3
|
#
1.49 |
|
24-Feb-2012 |
mrg |
remove any remnants of freebsd/openbsd code.
|
Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 jmcneill-usbmp-base2 netbsd-6-base mrg-ohci-jmcneill-usbmp-base jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base rmind-uvmplock-nbase cherry-xenmp-base bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231 uebayasi-xip-base4 rmind-uvmplock-base
|
#
1.48 |
|
03-Nov-2010 |
dyoung |
branches: 1.48.8; 1.48.12; 1.48.14; 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
|
Revision tags: uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10 uebayasi-xip-base1 yamt-nfs-mp-base9
|
#
1.47 |
|
24-Feb-2010 |
dyoung |
branches: 1.47.2; A pointer typedef entails trading too much flexibility to declare const and non-const types, and the kernel uses both const and non-const PMF qualifiers and device suspensors, so change the pmf_qual_t and device_suspensor_t typedefs from "pointers to const" to non-pointer, non-const types.
|
Revision tags: uebayasi-xip-base
|
#
1.46 |
|
08-Jan-2010 |
dyoung |
branches: 1.46.2; Expand PMF_FN_* macros.
|
Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-premerge-20091211 yamt-nfs-mp-base8 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 yamt-nfs-mp-base7 netbsd-5-0-1-RELEASE jymxensuspend-base yamt-nfs-mp-base6 yamt-nfs-mp-base5 yamt-nfs-mp-base4 jym-xensuspend-nbase yamt-nfs-mp-base3 nick-hppapmap-base4 nick-hppapmap-base3 netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 nick-hppapmap-base2 netbsd-5-0-RC2 jym-xensuspend-base netbsd-5-0-RC1 haad-dm-base2 haad-nbase2 ad-audiomp2-base netbsd-5-base nick-hppapmap-base matt-mips64-base2 haad-dm-base1 wrstuden-revivesa-base-4 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 haad-dm-base simonb-wapbl-nbase simonb-wapbl-base mjf-devfs2-base
|
#
1.45 |
|
28-Jun-2008 |
bouyer |
Add appropriate bus_dmamap_sync() calls to uhci(4), ohci(4) and ehci(4), as proposed on tech-kern@. While all DMA memory used in the USB framework is mapped BUS_DMAMAP_COHERENT (including data memory, which is memcpy'd from/to USB-private buffers), the CPU can reorder loads or stores from/to main memory, causing the controller to have an incoherent view of the DMA descriptors lists for a short time. bus_dmamap_sync() should contain memory barriers that prevents the CPU from reordering load/store. Note that BUS_DMAMAP_COHERENT is still required for the DMA descriptor lists - these can't work properly with software cache coherency. This fixes "host controller process error/host controller halted" errors I'm occasionally seeing with a umodem device on uhci on x86. Thanks to Michael Lorenz for testing it on his O2, and Izumi Tsutsui on his Cobalt Qube 2700.
|
Revision tags: wrstuden-revivesa-base-1 yamt-pf42-base4 yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-base2 yamt-nfs-mp-base2 wrstuden-revivesa-base
|
#
1.44 |
|
28-Apr-2008 |
martin |
branches: 1.44.2; 1.44.4; Remove clause 3 and 4 from TNF licenses
|
Revision tags: yamt-pf42-baseX yamt-nfs-mp-base yamt-pf42-base
|
#
1.43 |
|
28-Mar-2008 |
drochner |
branches: 1.43.2; 1.43.4; split device/softc for USB host controllers and the usb (control) device, this is hairy stuff, and I've only tested with uhci/ehci at pci, please test the rest and report problems
|
Revision tags: ad-socklock-base1 yamt-lazymbuf-base15 yamt-lazymbuf-base14 keiichi-mipv6-nbase keiichi-mipv6-base matt-armv6-nbase hpcarm-cleanup-base
|
#
1.42 |
|
22-Feb-2008 |
dyoung |
Add a method to detach child.
Cosmetic: use device_t and accessors. Use aprint_*_dev(). Use PMF_FN_{ARGS,CALL,PROTO}.
|
Revision tags: nick-net80211-sync-base bouyer-xeni386-merge1 vmlocking2-base3 bouyer-xeni386-nbase yamt-kmem-base3 cube-autoconf-base yamt-kmem-base2 bouyer-xeni386-base mjf-devfs-base matt-armv6-base
|
#
1.41 |
|
09-Dec-2007 |
jmcneill |
branches: 1.41.6; 1.41.10; Merge jmcneill-pm branch.
|
Revision tags: netbsd-4-0-1-RELEASE nick-csl-alignment-base5 matt-armv6-prevmlocking wrstuden-fixsa-base-1 netbsd-4-0-RELEASE yamt-kmem-base vmlocking2-base2 reinoud-bufcleanup-nbase vmlocking2-base1 netbsd-4-0-RC5 matt-nb4-arm-base jmcneill-base netbsd-4-0-RC4 bouyer-xenamd64-base2 vmlocking-nbase yamt-x86pmap-base4 bouyer-xenamd64-base netbsd-4-0-RC3 yamt-x86pmap-base3 yamt-x86pmap-base2 netbsd-4-0-RC2 yamt-x86pmap-base netbsd-4-0-RC1 matt-mips64-base jmcneill-pm-base nick-csl-alignment-base itohy-usb1-base yamt-idlelwp-base8 thorpej-atomic-base reinoud-bufcleanup-base mjf-ufs-trans-base vmlocking-base ad-audiomp-base post-newlock2-merge newlock2-nbase yamt-splraiseipl-base5 yamt-splraiseipl-base4 yamt-splraiseipl-base3 abandoned-netbsd-4-base yamt-splraiseipl-base2 yamt-splraiseipl-base yamt-pdpolicy-base9 newlock2-base yamt-pdpolicy-base8 yamt-pdpolicy-base7 netbsd-4-base yamt-pdpolicy-base6 chap-midi-nbase gdamore-uart-base simonb-timcounters-final yamt-pdpolicy-base5 chap-midi-base yamt-pdpolicy-base4 yamt-pdpolicy-base3 peter-altq-base yamt-pdpolicy-base2 elad-kernelauth-base yamt-pdpolicy-base yamt-uio_vmspace-base5 simonb-timecounters-base rpaulo-netinet-merge-pcb-base
|
#
1.40 |
|
27-Dec-2005 |
chs |
branches: 1.40.24; 1.40.38; 1.40.40; 1.40.46; 1.40.48; 1.40.58; 1.40.60; changes for making DIAGNOSTIC not change the kernel ABI: - for structure fields that are conditionally present, make those fields always present. - for functions which are conditionally inline, make them never inline. - remove some other functions which are conditionally defined but don't actually do anything anymore. - make a lock-debugging function conditional on only LOCKDEBUG.
as discussed on tech-kern some time back.
|
#
1.39 |
|
11-Dec-2005 |
christos |
merge ktrace-lwp.
|
Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 yamt-readahead-base3 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 yamt-readahead-base2 netbsd-3-0-RC2 yamt-readahead-pervnode yamt-readahead-perfile yamt-readahead-base netbsd-3-0-RC1 yamt-vop-base3 yamt-vop-base2 thorpej-vnode-attr-base yamt-vop-base yamt-km-base4 yamt-km-base3 netbsd-3-base yamt-km-base2 yamt-km-base kent-audio2-base ktrace-lwp-base
|
#
1.38 |
|
11-Jan-2005 |
imp |
branches: 1.38.8; 1.38.10; Merge from FreeBSD: sc_child is only used on NetBSD and OpenBSD, ifdef appropriately FreeBSD revisions: ehcivar.h 1.8 ohcivar.h 1.39 uhicvar.h 1.39
|
Revision tags: kent-audio1-beforemerge
|
#
1.37 |
|
21-Dec-2004 |
fvdl |
Implement an USB memory reserve. Allocate some memory per host controller in the wanted bus_dma space. If an allocation fails during operation (i.e. when hotplugging an umass device), fall back to using the reserve.
The amount can be configured as USB_MEM_RESERVE. The default value is 256k.
Ideally, there would be a way to steal pages in the desired area from UVM, but that's far more complicated, and this is not intrusive, plus it works.
|
Revision tags: netbsd-2-0-3-RELEASE netbsd-2-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-base kent-audio1-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base nathanw_sa_before_merge fvdl_fs64_base nathanw_sa_base
|
#
1.36 |
|
31-Dec-2002 |
augustss |
branches: 1.36.2; 1.36.8; Use a somewhat bigger buffer for the vendor string.
|
Revision tags: gmcgarry_ctxsw_base gmcgarry_ucred_base kqueue-aftermerge kqueue-beforemerge kqueue-base
|
#
1.35 |
|
29-Sep-2002 |
augustss |
Add #ifdef USB_USE_SOFTINTR for some softintr code. From FreeBSD.
|
Revision tags: gehenna-devsw-base
|
#
1.34 |
|
11-Jul-2002 |
augustss |
Get rid of trailing white space.
|
Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base eeh-devprop-base newlock-base ifpoll-base
|
#
1.33 |
|
11-Feb-2002 |
augustss |
branches: 1.33.8; Switch to new abort mechanism.
|
Revision tags: thorpej-mips-cache-base thorpej-devvp-base3 thorpej-devvp-base2 post-chs-ubcperf pre-chs-ubcperf thorpej-devvp-base thorpej_scsipi_beforemerge thorpej_scsipi_nbase thorpej_scsipi_base
|
#
1.32 |
|
13-Aug-2000 |
augustss |
branches: 1.32.2; 1.32.4; Implement what in Intel-speech is known as "bandwidth reclamation". It means that we continously poll USB devices that have a pending transfer instead of polling just once every ms. This speeds up some transfers at the expense of using more PCI bandwidth.
|
Revision tags: netbsd-1-5-PATCH003 netbsd-1-5-PATCH002 netbsd-1-5-PATCH001 netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base
|
#
1.31 |
|
01-Jun-2000 |
augustss |
Bring the coding style into the 80s, i.e., get rid of __P and use ANSI prototypes and declarations.
|
Revision tags: minoura-xpg4dl-base
|
#
1.30 |
|
27-Apr-2000 |
augustss |
branches: 1.30.2; Change my email address.
|
#
1.29 |
|
25-Apr-2000 |
augustss |
Move the size of the mapped bus_space region into the bus independent softc.
|
#
1.28 |
|
06-Apr-2000 |
augustss |
Fix typos in comments.
|
#
1.27 |
|
25-Mar-2000 |
augustss |
Rename and move around callout handles to make it more sane. Add some DIAGNOSTIC. Fix buglet in isoc abort on UHCI.
|
#
1.26 |
|
24-Mar-2000 |
augustss |
Two major changes:
Make each xfer have its own intr_info. This is necessary if we want to queue multiple xfers on an endpoint. This should get rid of the (mostly harmless) DIAGNOSTICs about intr_infos (not) being done.
Change (again!) how xfers are aborted. Aborting a TD is a nightmare on the braindead UHCI controller. (Unless you stop the HC, thereby losing isoc traffic.) Hopefully I got it right this time.
|
#
1.25 |
|
24-Mar-2000 |
augustss |
Some cleanup and renaming of the callouts used in USB drivers.
|
#
1.24 |
|
23-Mar-2000 |
thorpej |
New callout mechanism with two major improvements over the old timeout()/untimeout() API: - Clients supply callout handle storage, thus eliminating problems of resource allocation. - Insertion and removal of callouts is constant time, important as this facility is used quite a lot in the kernel.
The old timeout()/untimeout() API has been removed from the kernel.
|
#
1.23 |
|
22-Feb-2000 |
augustss |
Save and restore a couple ofregisters in the power hook in case BIOS doesn't.
|
Revision tags: chs-ubc2-newbase
|
#
1.22 |
|
26-Jan-2000 |
augustss |
Try to avoid accessing the HC if it is dead. Suggested by mycroft.
|
#
1.21 |
|
18-Jan-2000 |
augustss |
Turn xfer allocation into a method in the HC driver. The reason is that an HC driver may want to subclass the xfer to have additional private fields.
|
#
1.20 |
|
16-Jan-2000 |
augustss |
Add shutdown hooks to ensure that the host controller is halted when a reboot occurs.
|
Revision tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base
|
#
1.19 |
|
06-Dec-1999 |
augustss |
Cosmetics and a couple of diagnostic messages.
|
#
1.18 |
|
18-Nov-1999 |
augustss |
Cosmetic changes and some small improvements. From FreeBSD and Nick Hibma.
|
Revision tags: fvdl-softdep-base
|
#
1.17 |
|
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
|
Revision tags: comdex-fall-1999-base
|
#
1.16 |
|
13-Oct-1999 |
augustss |
branches: 1.16.2; 1.16.4; Merge in a large batch of changes from Nick Hibma <hibma@skylink.it> so the USB stack compiles on FreeBSD again.
|
#
1.15 |
|
12-Oct-1999 |
augustss |
Deallocate resources (bus space and interrupts) when detaching from the bus.
|
#
1.14 |
|
15-Sep-1999 |
augustss |
branches: 1.14.2; Add preliminary (untested) code for detaching the USB host controller (needed for CardBus based controllers).
|
#
1.13 |
|
13-Sep-1999 |
augustss |
Rearrange the code a little so we can decide if we are in process or interrupt context in a reliable way. Mainly used for DIAGNOSTIC.
|
#
1.12 |
|
22-Aug-1999 |
augustss |
Merge the soft_{td,ed} with the real {td,ed}. This saves time and space. (And fix typo in corresponding uhci change.)
|
#
1.11 |
|
22-Aug-1999 |
augustss |
Merge the soft_{td,qh} with the real {td,qh}. This saves time and space.
|
#
1.10 |
|
22-Aug-1999 |
augustss |
Move more of the transfer completion processing to HC independent code. Fix some problems with transfer abort & timeout.
|
#
1.9 |
|
17-Aug-1999 |
augustss |
Make some small changes to make it compile on OpenBSD.
|
#
1.8 |
|
14-Aug-1999 |
augustss |
Some changes from FreeBSD (no functional differences).
|
Revision tags: chs-ubc2-base
|
#
1.7 |
|
26-Jun-1999 |
augustss |
Add suspend/resume handling to the UHCI driver. Currently it only works if the BIOS saves enough state of the controller. Once I find a machine with a dumber BIOS I'll try to improve that.
|
#
1.6 |
|
20-May-1999 |
augustss |
Keep track of vendor id and make sure the vendor string is NUL terminated.
|
Revision tags: netbsd-1-4-PATCH003 netbsd-1-4-PATCH002 kame_141_19991130 netbsd-1-4-PATCH001 kame_14_19990705 kame_14_19990628 netbsd-1-4-RELEASE netbsd-1-4-base
|
#
1.5 |
|
26-Dec-1998 |
augustss |
branches: 1.5.4; 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.
|
Revision tags: kenh-if-detach-base
|
#
1.4 |
|
25-Nov-1998 |
augustss |
Make the copyright header conform to the NetBSD template.
|
Revision tags: chs-ubc-base eeh-paddr_t-base
|
#
1.3 |
|
26-Jul-1998 |
augustss |
Use PCI class/subclass/interface to match USB host controllers instead of vendor/product id. This makes the probe find more controllers without recompilation.
|
#
1.2 |
|
24-Jul-1998 |
augustss |
Add special memory allocation routines that supports allocation DMA-able memory in small chunks (USB uses a lot of 8 byte chunks). Using the bus_dma functions directly is inefficient.
|
#
1.1 |
|
12-Jul-1998 |
augustss |
Add USB support. Supported so far: * UHCI and OHCI host controllers on PCI * Hubs * HID devices withe special drivers for mouse and keyboard * Printers
|