Commit Graph

449 Commits

Author SHA1 Message Date
augustss ed9b74f17a Sort out some confusion about which vendor is really Belkin. 1999-09-14 22:06:21 +00:00
augustss c4d6d6b991 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.
1999-09-13 21:35:08 +00:00
augustss ba2c2e2ade * Make sure an aborted pipe is marked as not running.
* Start queued request in the right order.
* Insert some more DIAGNOSTIC sanity checks.
1999-09-13 21:33:25 +00:00
augustss bc5da9a8da Make sure timeouts count as interrupt context too. 1999-09-13 19:49:41 +00:00
augustss ff6a476e6c 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.
1999-09-13 19:18:17 +00:00
augustss eadd0f76da Add needs-flag to ukbd. Fixes PR 8385 from Izumi Tsutsui
<tsutsui@ceres.dti.ne.jp>.
1999-09-12 17:40:57 +00:00
augustss b1a719a6cc Add a flag in the request to determine if the data copying is done by the
driver or the usbdi layer.
1999-09-12 08:23:42 +00:00
augustss 305998532f Dot't forget to deactivate subdevices. 1999-09-12 08:21:49 +00:00
thorpej febf7ffb86 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)
1999-09-12 02:40:59 +00:00
thorpej f696794a34 Hot-unplug works now. 1999-09-11 21:45:28 +00:00
thorpej f7c20484b6 - 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.
1999-09-11 20:52:07 +00:00
augustss ca8281fbcc Pre-allocate the DMA buffer. This makes the driver slightly more efficient. 1999-09-11 10:40:07 +00:00
augustss 98b6524413 * Move DMA buffer allocation to HC independent code.
* Remove (almost) unused definitions USBD_XFER_OUT and USBD_XFER_IN.
1999-09-11 08:19:26 +00:00
augustss 90daa4736b Comment out the GET_DEVICE_ID code, because for some unknown reason it
causes printing to fail sometimes.
1999-09-10 19:28:26 +00:00
augustss 6b9aae738e Update doc URLs and fix a typo in umass_bulk_get_max_lun(). 1999-09-09 17:12:03 +00:00
augustss 9bebdb616f Remove some and add some. 1999-09-09 13:05:05 +00:00
augustss 8c655e84f2 An EXPERIMENTAL audio driver. It still needs work, e.g., in the mixer
part to give reasonable names to the mixer controls.
1999-09-09 12:28:25 +00:00
augustss 2aadcb5f47 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).
1999-09-09 12:26:43 +00:00
augustss 977c927d44 Do a brain dump of items to do. 1999-09-07 14:58:12 +00:00
augustss 6e6d511cf0 Add USUBCLASS_MIDISTREAM definition, per request from MAEKAWA Masahide
<bishop@rr.iij4u.or.jp>.
1999-09-06 17:16:47 +00:00
augustss 2425433ff6 Change some printf to DPRINTF for consistency. From Nick Hibma, FreeBSD. 1999-09-05 21:22:38 +00:00
augustss 24251055bc 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.
1999-09-05 19:32:18 +00:00
augustss f3421bec94 Change the way the direction is extracted from the endpoint descriptor.
No functional changes to the drivers.  From Nick Hibma, FreeBSD.
1999-09-04 22:26:11 +00:00
augustss d7a4829d27 Regen. 1999-09-02 22:07:43 +00:00
augustss 1fed6ca851 Add Logitech QuickCam. 1999-09-02 22:07:29 +00:00
augustss ba551e0c6a Regen. 1999-09-02 19:17:57 +00:00
augustss f6ae3ac6a9 Add some Entrega and Belkin serial adapters. 1999-09-02 19:13:43 +00:00
augustss 60179e2a13 Avoid null reference, from Nick Hibma, FreeBSD. 1999-09-02 18:13:50 +00:00
augustss 46fd81350a Rewrite interrupt routine from clarity. From Nick Hibma, FreeBSD. 1999-09-02 18:11:41 +00:00
thorpej dea48ccdf9 Oops, back out stuff I didn't mean to commit. 1999-08-30 01:05:08 +00:00
thorpej a138de1eb5 Add detach goo; still needs work in the `scsibus' and further layers. 1999-08-30 01:04:31 +00:00
augustss 7a3bd0ab27 Add some missing request codes. 1999-08-29 22:45:41 +00:00
thorpej dd611fa302 Set openings to 1; only one command may be queued with the device at
a time.
1999-08-29 20:41:12 +00:00
thorpej 54f6a91c01 Issue a Get Max Lun request to determine the max lun. 1999-08-29 19:58:55 +00:00
thorpej 04cd1cc8ee Make usbd_errstr() always return a useful error message; it's not like
the strings are that big.
1999-08-29 19:41:27 +00:00
thorpej d1088a5081 One more TODO item; sub-classes other than SCSI. 1999-08-29 18:58:03 +00:00
thorpej 59e86c6637 Correct typo in URL. From Bill Sommerfeld. 1999-08-29 18:57:15 +00:00
thorpej f88e157ddb Update the match routine to reflect that the driver actually matches
"Mass Storage/SCSI/Bulk".
1999-08-29 18:56:24 +00:00
thorpej e01cef341e Update documentation references. 1999-08-29 18:13:26 +00:00
thorpej f91881f24a Since we poll around the `done' member of a usbd_request, make it volatile. 1999-08-29 17:57:25 +00:00
thorpej cbd1c08a2c Note a few TODO items. 1999-08-29 17:34:11 +00:00
thorpej 246ab7936d One item off this list done! 1999-08-29 16:53:04 +00:00
thorpej cbb4401dfd 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.
1999-08-29 00:30:08 +00:00
augustss 036a9c6974 Change some 'struct device' to 'bdevice'. From FreeBSD. 1999-08-28 21:42:35 +00:00
augustss 1aa63c9fab Add some comments. 1999-08-28 10:04:01 +00:00
augustss 103e304a84 Add to the growing list. 1999-08-28 10:03:38 +00:00
augustss 2126f7df24 Change a type name. 1999-08-28 10:01:59 +00:00
augustss 598999e482 Fix from FreeBSD. 1999-08-28 10:01:42 +00:00
augustss e470b13e28 Regen. 1999-08-28 10:01:19 +00:00
augustss 4b398d8f1b Fixes/updates from FreeBSD. 1999-08-28 10:00:56 +00:00
augustss 65845c9e2a Regen. 1999-08-25 23:23:33 +00:00
augustss 7529455612 Add a PS2 to Mac USB Adapter from P.I. Eng. 1999-08-25 23:23:17 +00:00
augustss e0e1fbbe36 Regen. 1999-08-25 20:34:56 +00:00
augustss 02a79dc13e Add Multitech MT5634ZBA. From FreeBSD. 1999-08-25 16:28:12 +00:00
soren 205c3f5a73 Regenerate. 1999-08-24 21:25:52 +00:00
soren 82cb092b79 Fix typo in comment. 1999-08-24 21:25:22 +00:00
augustss 1f2661798f Make sure to mark the device as dying already in the (de)activate routine.
This avoids access to it before the detach routine has blown it away.
1999-08-23 22:55:14 +00:00
augustss 007da22e55 At attach time, get and print (parts of) the IEEE 1284 device id. 1999-08-23 22:35:19 +00:00
augustss 70020635c3 Regen. 1999-08-23 16:54:13 +00:00
augustss c206e4ab37 Add a Kawatsu mouse. 1999-08-23 16:53:32 +00:00
augustss 592de98a19 Remove some unneeded needs-flag. 1999-08-23 07:07:47 +00:00
augustss 4c217fdaf8 Merge the soft_{td,ed} with the real {td,ed}. This saves time and space.
(And fix typo in corresponding uhci change.)
1999-08-22 23:41:00 +00:00
augustss cc8b61583c Merge the soft_{td,qh} with the real {td,qh}. This saves time and space. 1999-08-22 23:19:56 +00:00
augustss be7e2fac07 More things to do... 1999-08-22 22:24:25 +00:00
augustss 1de0531d8b Simplify ulptwrite() by calling usbd_bulk_transfer(). This also makes
it interruptible.
1999-08-22 22:22:43 +00:00
augustss f747201099 Move more of the transfer completion processing to HC independent code.
Fix some problems with transfer abort & timeout.
1999-08-22 20:12:39 +00:00
augustss a293a6cc73 Make sure not to call tsleep() from suspend/resume routine. 1999-08-20 16:42:38 +00:00
mjacob f28eb7f5cc make alpha compiler happy 1999-08-19 21:29:04 +00:00
augustss 0f99933822 Use the right type for the size argument when calling usbd_bulk_transfer(). 1999-08-19 19:57:21 +00:00
augustss a9563e089b A first stab at making the UHCI driver endian independent.
(It doesn't seem to be quite working yet.)
1999-08-19 19:52:38 +00:00
augustss c0f0486836 Add a utility function, usbd_errstr(), to print error strings. From FreeBSD. 1999-08-19 19:51:36 +00:00
augustss 462e2614ff Add some mass storage definitions. 1999-08-19 19:50:42 +00:00
augustss bf35d2940c Add some more items. 1999-08-19 00:31:40 +00:00
augustss 1107c3f6ea Back out last change. The ugliness of the Audio Class should not have
to pollute the general USB definitions.
1999-08-18 07:55:19 +00:00
augustss 7fb139742d Update the endpoint descriptor struct with the two oddball entries
that only the Audio Class has.
1999-08-18 07:45:56 +00:00
augustss 54adf47f36 Redo the UHCI data toggle handling.
Make sure data toggles get synchronized on open and
when clearing an endpoint stall.
1999-08-17 20:59:04 +00:00
augustss 3016e1ebe0 Make some small changes to make it compile on OpenBSD. 1999-08-17 16:06:20 +00:00
augustss 24f66ce158 Get rid of FreeBSD code; there was so little to share in this driver
that it should be split.
1999-08-16 23:36:25 +00:00
augustss 9a0281ff87 Some new ioctl()s for the umodem driver. 1999-08-16 20:27:55 +00:00
augustss aa7264892d Implement a modem driver for the Abstract Control Model, i.e. AT commands.
It is accessible through the usual tty abstraction.
XXX The driver needs better error handling and a special call device.
XXX It also needs more testing.
1999-08-16 20:26:53 +00:00
augustss 290c03447b Change the way transfers are dequeued so thet we know that they
are removed from the queue before being deallocated.
1999-08-16 20:24:33 +00:00
augustss 23fa3682af Remove some, add some. 1999-08-16 20:21:09 +00:00
augustss 72b1f5a4b0 Add more CDC definitions. 1999-08-16 20:20:19 +00:00
augustss 7e4e93390d Change DIAGNOSTIC behaviour a little. 1999-08-16 20:19:55 +00:00
augustss df65083b45 A small roadmap of the USB files. 1999-08-16 20:18:07 +00:00
augustss b8b1e35ece Some changes from FreeBSD (no functional differences). 1999-08-14 14:49:31 +00:00
augustss b23490d39f Implement timeout and abort of requests.
Compute length of short transfers correctly.
1999-08-14 08:56:09 +00:00
augustss 38de172f03 Add usbd_set_hub_feature() and usbd_clear_hub_feature(). 1999-08-07 23:14:17 +00:00
augustss d6331b4ef4 Some new items. 1999-08-07 15:05:46 +00:00
augustss 208dad78d1 Get data toggle right for short bulk transfers.
(XXX This code needs to be rewritten.)
1999-08-02 23:35:55 +00:00
augustss caffcd4895 Another debug message. 1999-08-02 19:49:50 +00:00
augustss 2d4d29a1fa Test return values the right way. 1999-08-02 19:36:48 +00:00
augustss 094852eb36 Change it so that a pipe can be open RW instead of just R or W.
This makes close() work properly, but it is still not ideal.  Perhaps
there should be different device nodes for input and output on to
and endpoint with the same number?
Pay attention to the SHORT_XFER_OK ioctl().
1999-08-02 19:32:56 +00:00
augustss d2db832909 Do abort of transfers in a sane way. Fixes PR 8041. 1999-08-02 19:30:34 +00:00
augustss 09e76a1645 Remove two items that are done. 1999-07-30 11:40:19 +00:00
augustss 4047458551 More DIAGNOSTIC messages. 1999-07-24 01:40:19 +00:00
augustss 021319d9b3 Avoid crashing if we are forced to close() before teh open() completed
(can happen on disconnect, probably due do dubious logic in vdevgone()).
1999-07-14 19:12:07 +00:00
augustss 361422bc96 Apply some bulk transfer bug fixes from FreeBSD. 1999-07-12 05:22:50 +00:00
thorpej 7b3258b6a7 Make the kthread API a bit more friendly to loadable kernel modules. 1999-07-06 21:44:09 +00:00
augustss 319c42848d Add some sanity checks. 1999-07-06 07:12:03 +00:00
augustss b177c7a397 Totally redo the way device detach is done. It now uses a kernel event
thread and the config detach method.
Squish a number of space leaks on detach.
1999-06-30 06:44:22 +00:00
augustss 622f3d3db5 Regen. 1999-06-28 04:10:26 +00:00
augustss f69aea19d2 Add some weirdo modem. 1999-06-28 04:09:53 +00:00
tron b2c4582d6d Regen. 1999-06-26 16:26:57 +00:00
tron 0ddfad8dfa "www.usb.org" says that:
a) Logitech has vendor ID 0x046d.
b) That vendor ID 0x05ac is Apple Computer.
1999-06-26 16:26:20 +00:00
tron 6e72bbdb8a Regen. 1999-06-26 15:21:17 +00:00
tron 62f6e7122f Correct description of vendor "LOGITECH": this is not Apple. 1999-06-26 15:20:53 +00:00
augustss 3fd5344a95 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.
1999-06-26 08:30:17 +00:00
augustss 701eca7576 Remove unneeded #include. 1999-06-26 03:14:25 +00:00
augustss 7ef0c8eef3 Add a quirk for mice with reversed Z-axis. 1999-06-26 00:09:15 +00:00
augustss 55fbc23acc Regen. 1999-06-26 00:08:15 +00:00
augustss c4c81ec6fa Add another Logitech mouse. 1999-06-26 00:07:35 +00:00
augustss 475ed73e46 Get rid of a bunch of code that was part of an old USBDI proposal, but that
is unused in our USB stack.

Once upon a time, when I started writing the USB stack for NetBSD, there
was an effort to make a standard for how USB device drivers should interact
with the rest of the USB stack.  This effort had contributors from just
about all Un*x camps (but not Micro$oft :).  I based my design on one of their
early proposals since I thought it would be a good idea if we could all
share device drivers with a minimum effort.  Shortly after I started my work
all the free Un*x people were thrown out of the USBDI work since we did not
pay the USB membership fee.  Well, some time has passed now and the work of
the standardization group is almost public again.  But alas, the new standard
has grown to be a monster!  I do not want to have this as the basis for the
*BSD USB stack; it is far too complicated.
So, since we are not even close to being compilant with the standard, I've
thrown out some old baggage.
1999-06-14 17:09:57 +00:00
augustss 656245dc18 Check that the hub ports actually power up. 1999-06-14 16:59:47 +00:00
wrstuden 9f43c5a1f2 If we're the console keyboard, automatically enable the keyboard.
Should fix part of console keyboard problems on macppc. The usb keyboard will
now work on boot! Doesn't fix problems with keyboard freaking out when
changing LED state.

Thanks to Mattias & Lennart & Tsubai for input on resolving this problem.
1999-06-11 19:05:13 +00:00
augustss c65a504ed5 Add more debug. 1999-06-10 15:48:27 +00:00
augustss 2959234be5 Fix a bug in bulk input. Discovered by Joel Chen <jchen@liberate.com>. 1999-06-09 22:57:16 +00:00
wrstuden cd0a68c3f6 Fix use of & when % was appropriate. 1999-06-09 19:40:54 +00:00
augustss 27b9cd0724 Remove a redundant test. 1999-06-09 17:04:45 +00:00
augustss d80294fead Regen. 1999-06-05 14:14:42 +00:00
augustss c5255e5a48 Remove vendor from one of the descriptive strings; it's superfluous. 1999-06-05 14:14:02 +00:00
augustss 0e2edfb67a Very small formatting nit. 1999-06-05 13:43:03 +00:00
tron e9fe988d72 Regen. 1999-06-05 09:54:29 +00:00
tron 1c05aff552 Add Brother HL-1050 laser printer. Fixes second half of PR kern/7699
by Bjoern Labitzke.
1999-06-05 09:54:09 +00:00
augustss ac197c5354 Update documentation URLs. 1999-05-21 10:15:23 +00:00
augustss 4655ae1230 Keep track of vendor id and make sure the vendor string is NUL terminated. 1999-05-20 09:52:35 +00:00
augustss 3d6c3b5c03 Update for TI vendor id. 1999-05-20 09:51:13 +00:00
augustss 5d6176a144 Regen. 1999-05-20 09:50:39 +00:00
augustss d25385e28e Change vendor of id 0x0451 to Texas Instruments. 1999-05-20 09:50:09 +00:00
thorpej 29184c350f Add a few more Communication Interface Class subclasses (including Ethernet
and *shudder* ATM).
1999-05-18 23:42:56 +00:00
augustss 011be0080e Add vendor/product/release locators. Added in frustration as my HID
devices appeared as different devices after some plugging and unplugging. :-)
1999-05-16 13:51:05 +00:00
augustss 041a8536ac s/revision/release/ 1999-05-16 12:05:10 +00:00
augustss 00930acefa Improve error handling. Mostly from FreeBSD. 1999-05-16 11:43:32 +00:00
augustss 9bf01fcbe5 Fix debug printf. 1999-05-14 19:38:44 +00:00
thorpej 0d0cc4aa14 Rework the way ukbd attaches itself as the console (again). We now allow
the code to pick the first USB keyboard instance as the console, ignoring
which USB controller it's on.  Should eventually allow detaching of the
console keyboard.

From Jason Thorpe <thorpej@nas.nasa.gov>
1999-05-13 23:34:38 +00:00
augustss e16867970c More DIAGNOSTIC tests. 1999-05-13 23:29:41 +00:00
augustss aed277e3de More digitizer defines. 1999-05-13 23:29:11 +00:00
augustss d480a15932 Regen. 1999-05-11 09:56:56 +00:00
augustss 91e572f76d Another mouse. 1999-05-11 09:56:32 +00:00
augustss ea2a114cf0 Fix a serious bug in bandwidth accounting that thrashed memory.
Thanks to Joel Chen <jchen@nc.com> for tracking it down.
1999-05-09 22:48:35 +00:00
augustss 69e451c1ce Call ws routines at spltty() from interrupt routines. 1999-05-09 15:10:30 +00:00
augustss aaa0308140 Handle exclusive open bit differently. 1999-05-09 14:38:01 +00:00
augustss d11fcba216 More debug. 1999-05-09 14:37:18 +00:00
augustss 63e051b6cf Minor rearrengment for better readability. 1999-05-09 14:36:42 +00:00
augustss 86bb7f7d58 Add some Mass Storage constants. 1999-05-09 14:35:50 +00:00
augustss cbec5fc966 Regen. 1999-05-09 14:35:13 +00:00
augustss e4b1b00d56 Add Microsoft DDS80. 1999-05-09 14:34:41 +00:00
thorpej 375d7c32f2 Add a way for machine-dependent code to tell a USB controller that it
has the console input device.  The USB keyboard driver uses this to
attach the first USB keyboard instance as the console keyboard.

Unfortunately, this must still be deferred to autoconfiguration time,
but there's not much we can do about that right now.
1999-05-06 19:12:22 +00:00
thorpej bb619306e2 Add needs-flag to the ukbd device. 1999-05-06 00:42:16 +00:00
augustss a9cd83c7af Regen. 1999-04-27 21:32:05 +00:00