Commit Graph

59 Commits

Author SHA1 Message Date
drochner
04fc7d252f kill some abuse of __strong_alias which is not compatible with
split device/softc, this might fix crashes on umodem disconnect
reported by some people (eg PR kern/39050 from Matthias Pfaller)
2008-06-27 16:05:59 +00:00
cube
3624455eba Split device_t and softc for all USB device drivers, and related cosmetic
changes.

Matthias Drochner kindly reviewed this patch, and tested ums, ubt, uaudio
and ral.  I tested umass myself.
2008-05-24 16:40:58 +00:00
martin
ce099b4099 Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
drochner
8258b792b7 Introduce different autoconf interface attributes for USB drivers
matching (and handling) a whole device and those which match an
interface only. This will allow to enforce some rules, eg that
the former don't use interface information for matching or that the
latter don't modify global device state.
The previous way left too much freedom do the drivers which led to
inconsistencies and abuse.
For now, I've not changed locators and submatch rules, this will
happen later.
There should not be any change in behaviour, except in the case of
some drivers which did behave inconsistently:
if_atu, if_axe, uep: matched the configured device in the interface
 stage, but did configuration again. I've converted them to match
 in the device stage.
ustir, utoppy: matched in the interface stage, but only against
 vendor/device information, and used any configuration/interface
 without checking. Changed to match in device stage, and added
 some simple code to configure and use the first interface.
If you have one of those devices, please test!
2007-03-13 13:51:53 +00:00
hubertf
eda05c6413 Remove more duplicate headers.
Patch by Slava Semushin <slava.semushin@gmail.com>

Again, this was tested by comparing obj files from a pristine and a patched
source tree against an i386/ALL kernel, and also for src/sbin/fsck_ffs,
src/sbin/fsdb and src/usr.sbin/makefs. Only changes in assert() line numbers
were detected in 'objdump -d' output.
2007-01-29 01:52:43 +00:00
christos
95e1ffb156 merge ktrace-lwp. 2005-12-11 12:16:03 +00:00
drochner
1e5f8afdd2 remove debugging stuff which caused conflicts with USB_DEBUG kernels 2005-04-18 18:45:02 +00:00
itohy
8bd72ab6a4 If CM descriptor is found, use the data interface in it;
if CM descriptor is NOT found but UNION descriotor is found,
use the data interface in it.
Do not require CM or ACM descriptors as long as
the data interface is found.

Should fix NetBSD PR #29754 by rivo nurges.
2005-04-15 14:43:05 +00:00
itohy
70d7fffcc5 Split common modem part of umodem.c to umodem_common.c and umodemvar.h,
to be shared with other umodem-like drivers.
2005-04-15 14:14:09 +00:00
itohy
43d5a75df2 Allow multiple modem interfaces per configuration. 2005-04-12 13:12:10 +00:00
augustss
4430265c68 Use new functions for getting descriptors. 2004-10-23 13:28:26 +00:00
drochner
96b589fc18 a round of autoconf cleanup:
-convert submatch() style functions (passed to config_search() or
 config_found_sm()) to the locator passing variants
-pass interface attributes in some cases
-make submatch() functions look uniformly as far as possible
-avoid macros which just hide cfdata members, and reduce dependencies
 on "locators.h"
2004-09-13 12:55:47 +00:00
itojun
300aa0dcd5 use bounded string ops (snprintf, strl*) 2004-04-23 17:25:25 +00:00
wiz
6a2ed83373 URL updates, from Jared Yanovich and jmc@openbsd, forwarded by the latter. 2003-11-07 17:03:25 +00:00
simonb
4e3613273b Remove breaks after returns, unreachable returns and returns after
returns(!).
2002-09-23 05:51:10 +00:00
augustss
86650920c9 Get rid of trailing white space. 2002-07-11 21:14:24 +00:00
atatat
31144d9976 Convert ioctl code to use EPASSTHROUGH instead of -1 or ENOTTY for
indicating an unhandled "command".  ERESTART is -1, which can lead to
confusion.  ERESTART has been moved to -3 and EPASSTHROUGH has been
placed at -4.  No ioctl code should now return -1 anywhere.  The
ioctl() system call is now properly restartable.
2002-03-17 19:40:26 +00:00
augustss
152efb1a0e Make a typedef for struct proc to make portingeasier. 2001-12-31 12:15:21 +00:00
lukem
667807e40c add RCSIDs 2001-11-13 06:24:53 +00:00
augustss
e884187819 Small code rearrangement. 2001-03-25 23:02:34 +00:00
kenh
d6cdd9ad5b Connect to the interrupt endpoint on the control interface to receive
notification messages.  This lets us properly pass line status changes
down to the ucom driver (specifically, DSR, DCD, and RI).
2001-02-16 20:15:57 +00:00
augustss
4b0119383e Ad support for an extra message in the ucom attach code. 2001-01-23 21:56:17 +00:00
augustss
cbda952879 Make sure driver attach/detach events are generated in a consistent manner. 2001-01-23 14:04:13 +00:00
explorer
8fcc8721da Put the UQ_ASSUME_CM_OVER_DATA quirk back in. Without it, the Ricochet GS modem fails to work even with the other changes. 2001-01-11 20:35:02 +00:00
augustss
79f0bd6e1f Update many URLs. 2000-12-29 01:24:55 +00:00
augustss
6e11678a15 Get rid of UQ_ASSUME_CM_OVER_DATA quirk; it's handled differently now. 2000-12-11 05:41:00 +00:00
augustss
1bfab105b0 Don't try to set CM_OVER_DATA feature if features cannot be set.
From Ryutaroh MATSUMOTO <ryutaroh@ss.titech.ac.jp> in PR # 11428.
2000-11-10 14:08:32 +00:00
augustss
0510b1739c Update documentation link. From OpenBSD. 2000-11-10 13:53:23 +00:00
explorer
eb27dda01d Add a new quirk: ASSUME_CM_OVER_DATA.
Set this on the Metricom Ricochet GS USB modem.

This particular modem breaks if the USB command to enable the feature
CM_OVER_DATA.  Since it appears to wake up in that mode already,
just pretend it is already on, and don't try to set it.

Since this commit is happening over my Ricochet modem, I assume it works
now.
2000-10-22 08:20:09 +00:00
augustss
5cf4edb506 Handle output packet headers in a cleaner way. From IWAMOTO Toshihiro
<iwamoto@sat.t.u-tokyo.ac.jp>, fixes kern/10573.
2000-09-03 19:15:45 +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
30c20f930f Change my email address. 2000-04-27 15:26:44 +00:00
augustss
1767c08cba Add a capability for pre/post processing on write/read. 2000-04-14 14:21:55 +00:00
augustss
a302716de4 Let the parent device of a ucom decide what size the read and write
buffers should be since it knows about the speed.
Increase the buffer size of uvisor.
XXX The uvisor is still pitifully slow.  There must be a problem somewhere.
2000-04-06 13:32:28 +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
499e5cba01 Fix some uninitialized variables. From Krister Walfridsson <cato@df.lth.se> 2000-03-15 22:40:30 +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
e0c519464a Add methods for ucom to call back on open/close. 2000-02-08 09:18:01 +00:00
augustss
4b93911b25 Generate usb events on attach and detach. 2000-02-02 13:18:45 +00:00
augustss
a2b1ac707a Split the umodem driver into two parts: the part that emulates a tty over
two bulk pipes, and the setup and status fiddling goo.
This allows the former part to be shared by other drivers that need to
look like a tty.
2000-01-25 08:12:58 +00:00
augustss
97fc004770 Don't complain when umodemstartread() returns USBD_IN_PROGRESS. It's normal. 1999-11-26 09:12:50 +00:00
augustss
cdaec29859 A few more purely stylistic changes that I missed in the last round. 1999-11-17 23:00:49 +00:00
augustss
982eb1b4e6 Preallocate DMA buffers. Fixes problem reported by Hubert Feyrer. 1999-11-16 10:21:11 +00:00
augustss
0d2fabdf26 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
1999-11-12 00:34:57 +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
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
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
036a9c6974 Change some 'struct device' to 'bdevice'. From FreeBSD. 1999-08-28 21:42:35 +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