freebsd-skq/sys/dev
green 051e32299e Back out rev.1.91 which implemented bulk read transfers in ugen(4) as
asynchronous.  I realize that this means the custom application will
not work as written, but it is not okay to break most users of ugen(4).

The major problem is that a bulk read transfer is not an interrupt
saying that X bytes are available -- it is a request to be able to
receive up to X bytes, with T timeout, and S short-transfer-okayness.

The timeout is a software mechanism that ugen(4) provides and cannot
be implemented using asynchronous reads -- the timeout must start at
the time a read is done.

The status of up to how many bytes can be received in this transfer
and whether a short transfer returns data or error is also encoded
at least in ohci(4)'s requests to the controller.  Trying to detect
the "maximum width" results in using a single buffer of far too
small when an application requests a large read.

Even if you combat this by replacing all buffers again with the
maximal sized read buffer (1kb) that ugen(4) would allow you to
use before, you don't get the right semantics -- you have to
throw data away or make all the timeouts invalid or make the
short-transfer settings invalid.

There is no way to do this right without extending the ugen(4) API
much further -- it breaks the USB camera interfaces used because
they need a chain of many maximal-width transfers, for example, and
it makes cross-platform support for all the BSDs gratuitously hard.

Instead of trying to do select(2) on a bulk read pipe -- which has
neither the information on desired transfer length nor ability to
implement timeout -- an application can simply use a kernel thread
and pipe to turn that endpoint into something poll-able.

It is unfortunate that bulk endpoints cannot provide the same semantics
that interrupt and isochronous endpoints can, but it is possible to just
use ioctl(USB_GET_ENDPOINT_DESC) to find out when different semantics
must be used without preventing the normal users of the ugen(4) device
from working.
2004-10-13 04:12:20 +00:00
..
aac If the timeout handler runs and notices that commands are timed out, check 2004-09-16 02:37:40 +00:00
acpi_support Be sure to always unlock the sx lock when exiting the sysctl function. 2004-08-24 17:53:25 +00:00
acpica Attach the device description for ISA devices on the ACPI bus. 2004-10-12 21:33:08 +00:00
adlink Commit the new version of the adlink driver which can do non-cyclic 2004-09-19 21:52:15 +00:00
advansys Add missing <sys/module.h> includes 2004-05-30 20:08:47 +00:00
agp Add PCI ID for VIA K8T800Pro chipset. Tested with agptest and X with DRI 2004-10-05 04:40:32 +00:00
aha #include <isa/isavar.h> instead of <i386/isa/isa_dma.h> 2004-09-15 11:58:34 +00:00
ahb Convert callers to the new bus_alloc_resource_any(9) API. 2004-03-17 17:50:55 +00:00
aic Fix disordering of pccarddevs.h noticed by bde. Also remove a few 2004-05-27 03:49:45 +00:00
aic7xxx Correct a typo in a comment: alloated->allocated 2004-08-30 20:15:42 +00:00
amd Add missing <sys/module.h> includes 2004-05-30 20:08:47 +00:00
amr Set up the data flow flag correctly so that bounced buffers have a chance of 2004-09-14 16:36:12 +00:00
an Second part of ALTQ driver modifications, covering: 2004-08-01 23:58:04 +00:00
ar As the if_ar driver doesn't contain locking or run its interrupt 2004-08-13 22:52:11 +00:00
arl Since if_arl doesn't contain locking or run with INTR_MPSAFE, mark 2004-08-13 22:54:19 +00:00
asr - Set the CAM status to CAM_SCSI_STATUS_ERROR rather than CAM_REQ_CMP 2004-08-02 23:32:23 +00:00
ata Dont sleep with lock held. 2004-10-10 13:24:39 +00:00
ath Add missing bit of last if_start workaround: mark scan callout 2004-08-08 17:10:54 +00:00
atkbdc Introduce a tunable to disable support for Synaptics touchpads. A number of 2004-09-29 23:49:57 +00:00
auxio Port NetBSD auxio driver. The driver was modified to use led(4) and can 2004-10-09 07:31:03 +00:00
awi Since if_awi doesn't contain locking or run with INTR_MPSAFE, mark 2004-08-13 22:55:25 +00:00
bfe Fix sis, bfe and ndis in the same way dc was fixed: 2004-10-08 16:14:42 +00:00
bge Fix the statements for checking if we're dealing with a 5705/5750. 2004-09-25 05:07:20 +00:00
bktr Fix build if both of BKTR_USE_FREEBSD_SMBUS and BKTR_NEW_MSP34XX_DRIVER are 2004-09-11 04:32:55 +00:00
buslogic #include <isa/isavar.h> instead of <i386/isa/isa_dma.h> 2004-09-15 11:58:34 +00:00
cardbus MFp4: 2004-06-27 13:07:02 +00:00
ciss ciss's interrupt handler was missing the INTR_ENTROPY flag. 2004-08-16 23:13:16 +00:00
cm Since if_cm doesn't contain locking or run with INTR_MPSAFE, mark 2004-08-13 22:57:44 +00:00
cnw We don't need to initialize if_output, ether_ifattach() does it 2004-05-23 16:11:53 +00:00
cp Remove bogus cdevsw frobbing code which tries to prevent double 2004-09-23 12:21:11 +00:00
cs Since if_cs doesn't contain locking or run with INTR_MPSAFE, mark 2004-08-13 23:03:11 +00:00
ct Update for the KDB framework: 2004-07-10 20:57:43 +00:00
ctau Remove bogus cdevsw frobbing code which tries to prevent double 2004-09-23 12:21:11 +00:00
cx Remove bogus cdevsw frobbing code which tries to prevent double 2004-09-23 12:21:11 +00:00
cy Use generic tty code instead of local copy. 2004-10-05 07:42:19 +00:00
dc Read the MAC address in the EEPROM in the correct byte order. This 2004-10-01 15:23:31 +00:00
dcons Invalidate dcons buffer on shutdown. 2004-09-26 01:15:38 +00:00
de Since the if_de driver doesn't contain locking, mark it as 2004-08-13 22:48:05 +00:00
dec Use __FBSDID(). 2003-08-24 17:55:58 +00:00
digi Use generic tty code instead of local copies. 2004-10-06 20:01:49 +00:00
dpt Convert callers to the new bus_alloc_resource_any(9) API. 2004-03-17 17:50:55 +00:00
drm Fixed the module name (macros don't work here). 2004-08-29 07:49:53 +00:00
ed Remove layer intermixing. Device driver should pass the frame should 2004-09-06 21:14:32 +00:00
eisa Remove outb to "prime" the EISA ID registers of each slot. This was 2004-08-16 22:05:53 +00:00
em Don't count RNBC (internal buffer full) towards the RX error count since it's 2004-10-09 07:27:03 +00:00
en * Add a "how" argument to uma_zone constructors and initialization functions 2004-08-02 00:18:36 +00:00
ep Remove duplicate $FreeBSD$ 2004-07-22 07:11:15 +00:00
esp Pull the correct clock frequency value out of OFW. Why the helper function 2004-09-13 15:15:38 +00:00
ex Since if_ex doesn't contain locking or run with INTR_MPSAFE, mark 2004-08-13 23:06:55 +00:00
exca Didn't intend to commit debugging code enabled 2004-08-16 01:57:06 +00:00
fatm Convert callers to the new bus_alloc_resource_any(9) API. 2004-03-17 17:50:55 +00:00
fb Converge towards i386. I originally resisted creating <machine/pc/bios.h> 2004-09-24 01:08:34 +00:00
fdc Fix off-by-one error in fd_native_types that results in a panic on boot 2004-10-10 23:39:59 +00:00
fe Style. Use ETHER_IS_MULTICAST() appropriately instead of masking off the bit. 2004-10-07 20:56:29 +00:00
firewire Add a missing splx(). 2004-09-06 20:42:34 +00:00
fxp Add support for the fxp(4) based card in ICH6 (i915) chipsets. 2004-09-18 19:13:13 +00:00
gem Since if_gem doesn't contain locking or run with INTR_MPSAFE, mark 2004-08-13 23:11:24 +00:00
gfb Update for the KDB framework. Sanitize the alpha console code now that 2004-07-10 22:29:41 +00:00
gx Add missing <sys/module.h> includes 2004-05-30 20:08:47 +00:00
harp Do a pass over all modules in the kernel and make them return EOPNOTSUPP 2004-07-15 08:26:07 +00:00
hatm Convert callers to the new bus_alloc_resource_any(9) API. 2004-03-17 17:50:55 +00:00
hfa Apply error and success logic consistently to the function netisr_queue() and 2004-08-27 18:33:08 +00:00
hifn Consistently use __inline instead of __inline__ as the former is an empty macro 2004-07-04 16:11:03 +00:00
hme Make hme(4), i.e. the PCI-variant, MI by reading the MAC address on sytems 2004-08-14 22:38:20 +00:00
ic Remove advertising clause from University of California Regent's 2004-04-07 20:46:16 +00:00
ichsmb Add PCI Device ID for 6300ESB ICH. If allocating 16 bytes fails then try 32. 2004-06-24 18:21:28 +00:00
ichwd make code less broken, only try to create unit 0 since there can only 2004-06-13 05:00:19 +00:00
ida Do the dreaded s/dev_t/struct cdev */ 2004-06-16 09:47:26 +00:00
idt Apply error and success logic consistently to the function netisr_queue() and 2004-08-27 18:33:08 +00:00
ie Since if_ie doesn't contain locking or run with INTR_MPSAFE, mark 2004-08-13 23:15:44 +00:00
if_ndis Fix sis, bfe and ndis in the same way dc was fixed: 2004-10-08 16:14:42 +00:00
iicbus Since if_ic doesn't contain locking or run with INTR_MPSAFE, mark 2004-08-13 23:16:44 +00:00
iir Panic if given a CAM_DATA_PHYS pointer from CAM instead of trying to handle it. 2004-09-03 08:44:23 +00:00
io Add module versions. 2004-08-02 20:42:28 +00:00
ips Do the dreaded s/dev_t/struct cdev */ 2004-06-16 09:47:26 +00:00
isp PAE support changes that included at least some minimal actual testing 2004-09-23 05:25:22 +00:00
ispfw Do a pass over all modules in the kernel and make them return EOPNOTSUPP 2004-07-15 08:26:07 +00:00
ixgb Since if_ixgb doesn't contain locking or run with INTR_MPSAFE, mark 2004-08-14 00:17:04 +00:00
joy Do the dreaded s/dev_t/struct cdev */ 2004-06-16 09:47:26 +00:00
kbd Do the dreaded s/dev_t/struct cdev */ 2004-06-16 09:47:26 +00:00
led Remove a pointless check. 2004-07-10 15:38:27 +00:00
lge Since if_lge doesn't contain locking or run with INTR_MPSAFE, mark 2004-08-13 23:18:01 +00:00
lnc Pass a correct lowaddr to bus_dma_tag_create(), lnc(4) cards can only 2004-08-22 23:01:13 +00:00
matcd Do the dreaded s/dev_t/struct cdev */ 2004-06-16 09:47:26 +00:00
mc146818
mca Use __FBSDID(). 2003-08-24 17:55:58 +00:00
mcd Do the dreaded s/dev_t/struct cdev */ 2004-06-16 09:47:26 +00:00
md Account for failure in vm_pager_allocate() or vm_pager_get_pages() in 2004-10-12 04:47:16 +00:00
mem Fix module builds for i386 and amd64. 2004-08-04 18:30:31 +00:00
mii Add support for the BCM5750/5751. Unfortunately the documentation 2004-09-24 22:24:33 +00:00
mk48txx Correct value and description of the unused MK48TXX_WDAY_FT macro. 2004-09-20 00:09:32 +00:00
mlx Do the dreaded s/dev_t/struct cdev */ 2004-06-16 09:47:26 +00:00
mly Do the dreaded s/dev_t/struct cdev */ 2004-06-16 09:47:26 +00:00
mpt Correct style nit in rev 1.17. 2004-08-25 17:54:19 +00:00
mse Do the dreaded s/dev_t/struct cdev */ 2004-06-16 09:47:26 +00:00
musycc Add -1 to this non-existent use of m_print in the source tree so LINT 2004-09-28 20:14:51 +00:00
my Replace handrolled CRC calculation with ether_crc32_[lb]e(). 2004-06-09 14:34:04 +00:00
ncv Update for the KDB framework: 2004-07-10 21:05:14 +00:00
nge Fix a typo that affects !i386. 2004-09-15 03:39:18 +00:00
nmdm Preparation commit for the tty cleanups that will follow in the near 2004-07-15 20:47:41 +00:00
nsp Update for the KDB framework: 2004-07-10 21:06:08 +00:00
null Go back to the historical minor numbers. Add a module version while 2004-08-02 19:59:41 +00:00
ofw Add a couple of XXX comments and fix a couple of fine points. 2004-10-12 21:23:33 +00:00
owi Move to generating pccarddevs.h on the fly, both for the kernel and 2004-05-26 00:53:10 +00:00
patm Convert callers to the new bus_alloc_resource_any(9) API. 2004-03-17 17:50:55 +00:00
pbio Fix conflicts I didn't fix before I committed my busspace changes. 2004-10-11 00:58:24 +00:00
pccard Shame on me. I screwed up product ID for the 3COM Bluetooth PC-Card. 2004-09-09 18:48:09 +00:00
pccbb Don't need to declare cbb module. don't know why I never saw 2004-08-16 06:33:58 +00:00
pcf - Introduce an ofw_bus kobj-interface for retrieving the OFW node and a 2004-08-12 17:41:33 +00:00
pci Re-route interrupts on arm as well. 2004-09-23 22:58:43 +00:00
pdq Prefer C99's __func__ over GCC's __FUNCTION__. 2004-09-22 17:16:04 +00:00
ppbus Apply error and success logic consistently to the function netisr_queue() and 2004-08-27 18:33:08 +00:00
ppc Add missing <sys/module.h> includes 2004-05-30 20:08:47 +00:00
pst Use the correct type for iop_attach(). 2004-10-03 16:06:46 +00:00
puc - Introduce an ofw_bus kobj-interface for retrieving the OFW node and a 2004-08-12 17:41:33 +00:00
random Assert that the entropy source category provided by a caller submitting 2004-10-12 14:57:14 +00:00
ray Since if_ray doesn't contain locking or run with INTR_MPSAFE, mark 2004-08-13 23:39:07 +00:00
rc Use generic ttycode instead of local copy. 2004-10-07 06:19:11 +00:00
re fix jumbo frames as much as they can be fixed for re. We now cap the MTU 2004-09-28 18:22:24 +00:00
rndtest Use __FBSDID(). 2003-08-24 17:55:58 +00:00
rp Use tty layer generic code instead of local copy. 2004-10-04 09:38:53 +00:00
sab Use generic tty code instead of local copies. 2004-10-12 22:33:19 +00:00
safe Add missing <sys/module.h> includes 2004-05-30 20:08:47 +00:00
sbni Since if_sbni doesn't contain locking or run with INTR_MPSAFE, mark 2004-08-13 23:41:00 +00:00
sbsh Add missing <sys/module.h> includes 2004-05-30 20:08:47 +00:00
scd Avoid casts as lvalues. 2004-07-28 06:21:53 +00:00
sf Tag a last set of PCI network interfaces as IFF_NEEDSGIANT until they 2004-08-28 15:10:35 +00:00
si Add #ifdef _KERNEL which allows sicontrol(8) to include this file 2004-10-02 18:49:29 +00:00
sio Use ttyconsolemode() to set the console tty modes. 2004-10-12 20:16:02 +00:00
sk fix LOR's in sk. Original patch from dwhite. This moves the memory 2004-08-20 06:22:04 +00:00
smbus Do the dreaded s/dev_t/struct cdev */ 2004-06-16 09:47:26 +00:00
sn Replace handrolled CRC calculation with ether_crc32_[lb]e(). 2004-06-09 14:34:04 +00:00
snc Since if_snc doesn't contain locking or run with INTR_MPSAFE, mark 2004-08-13 23:47:01 +00:00
snp Hold thread reference while we frob cdevsw. 2004-09-24 08:12:41 +00:00
sound * Remove the acpi attachment from the es1888. It has an identify method 2004-10-12 01:56:03 +00:00
speaker Do the dreaded s/dev_t/struct cdev */ 2004-06-16 09:47:26 +00:00
sr Since if_sr doesn't contain locking or run with INTR_MPSAFE, mark 2004-08-13 23:49:48 +00:00
stg Update for the KDB framework: 2004-07-10 21:14:20 +00:00
streams Do a pass over all modules in the kernel and make them return EOPNOTSUPP 2004-07-15 08:26:07 +00:00
sx Use generic tty processing code instead of local copy. 2004-10-08 06:45:10 +00:00
sym Make it depend on PCI as well. 2004-09-10 18:39:02 +00:00
syscons Disallow negative coordinates and sizes in the syscons CONS_SCRSHOT 2004-09-29 21:36:07 +00:00
tdfx Do the dreaded s/dev_t/struct cdev */ 2004-06-16 09:47:26 +00:00
tga Remove redundant _FBSDID. 2004-09-01 22:53:13 +00:00
ti Tag a last set of PCI network interfaces as IFF_NEEDSGIANT until they 2004-08-28 15:10:35 +00:00
trm Add missing <sys/module.h> includes 2004-05-30 20:08:47 +00:00
twa Changes to make twa work on amd64. 2004-08-18 16:14:44 +00:00
twe Do the dreaded s/dev_t/struct cdev */ 2004-06-16 09:47:26 +00:00
tx Since if_tx doesn't contain locking or run with INTR_MPSAFE, mark 2004-08-13 23:52:33 +00:00
txp Since if_txp doesn't contain locking or run with INTR_MPSAFE, mark 2004-08-13 23:53:36 +00:00
uart Remove asserts which are not correct if the port is a tty. 2004-10-12 21:00:19 +00:00
ubsec Add missing <sys/module.h> includes 2004-05-30 20:08:47 +00:00
usb Back out rev.1.91 which implemented bulk read transfers in ugen(4) as 2004-10-13 04:12:20 +00:00
utopia Do a pass over all modules in the kernel and make them return EOPNOTSUPP 2004-07-15 08:26:07 +00:00
vge Remove unneeded TX channel wakeup from vge_txeof(). This was put 2004-09-11 22:13:25 +00:00
vinum Fix compilation of vinum(4) when VINUMDEBUG is not defined. 2004-09-20 00:13:10 +00:00
vr Revert rev 1.93 and replace it by grabbing the vr lock before calling 2004-08-11 04:30:49 +00:00
vx ss if_vx through indent, and use ANSI function definitions, prior to adding 2004-08-18 16:56:54 +00:00
watchdog Do the dreaded s/dev_t/struct cdev */ 2004-06-16 09:47:26 +00:00
wds Use __FBSDID(). 2003-08-24 17:55:58 +00:00
wi Second part of ALTQ driver modifications, covering: 2004-08-01 23:58:04 +00:00
wl Add missing <sys/module.h> includes 2004-05-30 20:08:47 +00:00
xe Since if_xe doesn't contain locking or run with INTR_MPSAFE, mark 2004-08-14 00:15:26 +00:00
zs Use tty->t_sc to find out softc. 2004-09-18 16:43:44 +00:00