Commit Graph

124 Commits

Author SHA1 Message Date
augustss ed274219d5 Fix race condition when unlinking xfers. Thanks to IWAMOTO Toshihiro
<iwamoto@sat.t.u-tokyo.ac.jp> for analyzing the problem and suggesting a fix.
Fixes PR 10662.
2000-08-13 18:20:14 +00:00
augustss 4f325f2674 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.
2000-08-13 16:18:09 +00:00
tv 2b3a50d3de %b -> bitmask_snprintf()
Because this code is shared, add a macro for bitmask_snprintf() that
should expand to the equivalent snprintf() on non-NetBSD systems.  This is
only used in ?HCI_DEBUG cases anyway.
2000-08-08 19:51:46 +00:00
augustss a119131555 Be a little more explicit and careful about setting links in TDs and QHs. 2000-07-23 19:43:37 +00:00
augustss c6ddc6009b Make it compile with USB_DEBUG. 2000-06-01 15:51:26 +00:00
augustss ed9486e158 Bring the coding style into the 80s, i.e., get rid of __P and use
ANSI prototypes and declarations.
2000-06-01 14:28:57 +00:00
augustss 382a7af237 Don't print anything when detecting resume. 2000-05-30 16:56:54 +00:00
augustss e4217da6d0 As a safety, check that the controller is not suspended when we get
an interrupt.
2000-05-30 09:26:06 +00:00
jhawk 6513ba6e74 Make this compile with UHCI_DEBUG in the presence of
-Werror: uhci_dump is no longer static.
2000-05-28 22:02:05 +00:00
mycroft d0d92c23d0 Use USBD_NORMAL_COMPLETION in the previous. 2000-05-03 18:21:36 +00:00
mycroft ffe599486c When emulating UHF_PORT_POWER for the internal hub, make sure to initialize
the status return value.
2000-05-03 18:14:49 +00:00
augustss 30c20f930f Change my email address. 2000-04-27 15:26:44 +00:00
augustss df70862e8c Insert (very conservative!) bus_space_barrier() calls at all register accesses.
The bus_space(9) man page says you've gotta have them...
2000-04-25 14:28:13 +00:00
augustss 3f08804668 Pretend we know how to turn on port power (it's always on). 2000-04-21 15:40:01 +00:00
augustss e1f94170e5 Generate a diagnistic dump on "Host Controller Halted". 2000-04-14 14:11:36 +00:00
augustss 9355847b78 Fix typos in comments. 2000-04-06 23:44:20 +00:00
augustss 1b57fb1495 Remove some unused prototypes. 2000-03-29 18:55:36 +00:00
augustss a25e27e1eb Some OpenBSD portability fixes. 2000-03-29 18:24:52 +00:00
augustss 61db1b8e46 *SIGH* Revert back to the old method of aborting xfers.
I had tested the new stuff for two months now, but as soon as I commited
it the problems started to appear.  Murphy, no doubt...
2000-03-29 01:49:13 +00:00
augustss f606c26834 Be more defensive in a DIAGNOSTIC test. 2000-03-28 17:07:04 +00:00
augustss c2f90d0d43 Correct a debug message. 2000-03-28 10:53:59 +00:00
augustss 3316da3988 Another patch for xfer abort...
XXX The current xfer queueing and aborting semantics should really
XXX be changed.  It cannot be implemented in a sane way on UHCI.
XXX One day when I have lots of time I'll redesign it...
2000-03-28 09:47:10 +00:00
augustss 568b4d8190 Be a little more careful when aborting.
Preallocate some TDs for large buffers.
2000-03-27 22:42:57 +00:00
augustss fc72e72d7d Change (almost) all static to Static. The symbol `Static' can then be defined
to `' or `static' depending on if you want to debug or not.
2000-03-27 12:33:53 +00:00
augustss 2341e5679e Don't mess with QH in bulk abort for the moment. 2000-03-27 09:41:36 +00:00
augustss 9e5b3b729c Remove some debug nonsense. 2000-03-27 08:01:09 +00:00
augustss 9ffe849791 Make it compile without DIAGNOSTIC. 2000-03-27 07:39:48 +00:00
augustss a52e96b1eb Fix typo. Found by Aaron Campbell <aaron@cs.dal.ca>. 2000-03-26 21:42:54 +00:00
augustss 3fded57690 Rename and move around callout handles to make it more sane.
Add some DIAGNOSTIC.
Fix buglet in isoc abort on UHCI.
2000-03-25 18:02:32 +00:00
augustss 9893633d57 Improve uhci_dump_ii(). 2000-03-25 07:23:12 +00:00
augustss df370f0e48 More DIAGNOSTIC.
Initialize a callout handle I forgot.
2000-03-25 07:13:05 +00:00
augustss cefdf1aee3 Add more DIAGNOSTIC when aborting isoc. 2000-03-25 00:11:21 +00:00
augustss df8025fec8 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.
2000-03-24 22:57:58 +00:00
augustss 0069eba19b Some cleanup and renaming of the callouts used in USB drivers. 2000-03-24 22:03:28 +00:00
thorpej 6a6358ed5c Shake out some bugs from the callout changes. 2000-03-23 18:59:10 +00:00
thorpej fc96443d15 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.
2000-03-23 07:01:25 +00:00
tsutsui 6e0e3d609f Replace LE() macro with le32toh()/le32toh(). 2000-03-16 12:40:51 +00:00
augustss 7d05674ba7 Distinguish between device and interface classes.
(I finally found a document that said that they were different.)
2000-02-29 21:37:00 +00:00
augustss 009856b631 Save and restore a couple ofregisters in the power hook in case BIOS doesn't. 2000-02-22 16:03:42 +00:00
augustss 9056664327 Prepare a little for having USB interrupt processing done outside the hard
interrupt level (in a thread or a softintr).
No real soft processing done yet.
2000-02-22 11:30:54 +00:00
augustss 30f0efb4f2 Add uhci_root_ctrl_done() method. 2000-01-28 00:44:27 +00:00
augustss 4e9e8e52f4 Change the test to check if transfers are done. The old test was broken
and sometimes reported transfers as done prematurely.
This fix seems to stabilize the Ethernet drivers.
2000-01-28 00:15:54 +00:00
augustss 57d2439d74 Try to avoid accessing the HC if it is dead. Suggested by mycroft. 2000-01-26 10:04:38 +00:00
augustss b9a4fe55b5 Switch the HSE and HCPE messages. Pointed out my mycroft. 2000-01-25 17:31:05 +00:00
augustss 55c5d10627 Fix typos.
Never, never, never commit without compiling first.
2000-01-19 01:16:38 +00:00
augustss fe18229923 Obey the interrupt interval here also. 2000-01-19 01:04:26 +00:00
augustss a97cf3f9ce Fix a buglet in framelist locking. 2000-01-19 01:02:11 +00:00
augustss 21863071b1 Move the zeroing of the xfer to the individual methods. 2000-01-18 20:23:42 +00:00
augustss f14036861f 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.
2000-01-18 20:11:00 +00:00
augustss ed1996fc7d Be a little more talkative on with UHCIDEBUG on errors. 2000-01-17 01:01:07 +00:00