Commit Graph

57 Commits

Author SHA1 Message Date
thorpej cb450cc444 Use device_lookup(). 2000-07-06 01:47:34 +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
perry d5a261206d Replace the #ifdef'ed variable DELAYs with a pair of non-ifdefed
DELAY(1)'s. This should fix interrupt driven lpt driver hang and
reboot problems for the group of users who have experienced them, and
shouldn't hurt anyone else.
1999-03-29 21:50:06 +00:00
perry 8ade3b61ba Add two #ifdef BROKEN_LPT_DELAY's in to the central write byte
& strobe cycle. These bracket DELAY()'s of BROKEN_LPT_DELAY
microseconds. This can be used to kludge around mysterious hangs and
reboots some users experience. The cause of these failures is still
not known, but is conjectured to be hardware bug originated failures
in the bus cycle.
1999-03-25 02:17:38 +00:00
thorpej 873e1d2a51 Fix printf format problems on Alpha. 1999-02-12 01:51:37 +00:00
perry 6413810bf3 Stop spurious lpt messages from being printed -- approved by fvdl. 1998-10-14 20:09:06 +00:00
mycroft 6d3d8a1350 Make copyright notices with my name consistent. 1998-08-15 03:02:31 +00:00
is 6054d626f9 Switching dev/ic/lpt.c to use spllpt() instead of spltty(). It doesn't use
tty structures, and on some machines (namely the DraCo internal lpt, and some
multi-i/o boards for Amigas and DraCos), tying spltty to the pretty high printer
interupt level would hurt serial performance.

On all affected ports but Amiga, spllpt() has been defined in machine/intr.h
to be spltty(), thus preserving old behaviour. Portmasters are encouraged to
change is, if they feel something else is better (e.g., one of its own were
possible).
1998-07-18 21:27:25 +00:00
cgd c2f42b2213 Implement a flag to indicate that the driver attached correctly.
This is useful in the case where an attachment's probe routine
verifies that there is indeed hardware present but something goes
"wrong" in the attach causing the device to be unusable.  (Without
keeping track of this, in that case incorrect ports could be
accessed or uninitted pointers could be deferenced on open or at
other times.)
1998-02-02 22:54:55 +00:00
thorpej 095c4c092d Adjust for config changes. 1998-01-12 09:23:08 +00:00
thorpej 0ac93f48ea Use malloc()/free(), not geteblk()/brelse(), for the device buffer. 1997-12-07 16:09:36 +00:00
is 59129515bb Finalize the isa/lpt.c split:
The isa attachment code is in isa/lpt_isa.c now, which attaches to the
already created ic/lpt* files.
You don't need to change your config files, but you need to re-"config" if
using lpt at isa.
XXX The "lpt" device definition should be in sys/conf/files instead, but to
my knowledge, there are some ports which have private copies of lpt, and would
choke on that. No need to make people unhappy 7 days before release branching.
1997-10-14 15:50:15 +00:00
is 3ad599d701 First part of splitting lpt.c, and the NetBSD/Amiga "supio" frontend. Needs
a bit more work to allow an ISA frontend.
1997-09-27 22:44:11 +00:00
mikel 06ecebc8c0 add missing argument to LPRINTF() declaration; from Geoff Wing in PR 4072.
I also made inclusion of LPRINTF() dependent solely on the symbol
  LPTDEBUG, initialized lptdebug variable to 0 instead of 1, and
  matched arguments to format strings in LPRINTF() calls.
1997-09-02 01:37:19 +00:00
cgd 197d80c63a update these so they compile whether or not __BROKEN_INDIRECT_CONFIG
is defined.
1996-12-05 01:25:23 +00:00
thorpej 769a499800 New bus.h implementation/interface:
- No more distinction between i/o-mapped and memory-mapped
	  devices.  It's all "bus space" now, and space tags
	  differentiate the space with finer grain than the
	  bus chipset tag.
	- Add memory barrier methods.
	- Implement space alloc/free methods.
	- Implement region read/write methods (like memcpy to/from
	  bus space).
This interface provides a better abstraction for dealing with
machine-independent chipset drivers.
1996-10-21 22:34:38 +00:00
christos 86373f8cf9 backout kprintf changes 1996-10-13 01:37:04 +00:00
christos 58953408cb printf -> kprintf, sprintf -> ksprintf 1996-10-10 22:04:48 +00:00
mycroft cec36bf8d5 Use intr.h. 1996-05-12 23:51:23 +00:00
christos a1609dc859 - Fix gcc -Wall warnings
- BUG: if (error = ...() == EWOULDBLOCK)
1996-04-29 20:30:48 +00:00
cgd 51e85d07b9 update for addition of a machine-dependent cookie as the first argument
to isa_intr_{,dis}establish().
1996-04-11 22:27:59 +00:00
mycroft 0609135a66 Add explicit return types. 1996-04-10 19:03:46 +00:00
cgd b55176ea0c since this driver tries to block its interrupt with spltty(), it must
attach that interrupt with IPL_TTY.
1996-03-18 09:14:32 +00:00
cgd b5c1728e22 clean up <machine/bus.h> changes a bit; no real functional change.
prototype lpt_port_test().
1996-03-17 13:40:29 +00:00
thorpej 6d9ea4cf59 New device attachment scheme:
- split softc size and match/attach out from cfdriver into
	  a new struct cfattach.

	- new "attach" directive for files.*.  May specify the name of
	  the cfattach structure, so that devices may be easily attached
	  to parents with different autoconfiguration semantics.
1996-03-17 00:43:52 +00:00
cgd 2c11ad408c convert to use I/O mapping/access macros in <machine/bus.h>.
Mostly mechanical changes, except for probe/attach, which have
to map (and, in the case of probe, unmap) the I/O space that the
chip will use.
1996-03-08 22:17:58 +00:00
mycroft 3da4b2a160 The IST_* and IPL_* constants are not bus-specific; don't treat them as such.
Change splimp -> splnet in Ethernet, ARCnet, and FDDI drivers.
1995-12-24 02:29:35 +00:00
cgd 8a640328ed clean up several ISA device interfaces: autoconfiguration, header
inclusion, and interrupt configuration.  more work still needs to be done,
but it's getting better...
1995-04-17 12:06:30 +00:00
cgd 3a7bbb1acd lip service to making ISA support machine-independent. This is the first
round: moving the drivers into a machine-independent directory.
Some drivers (e.g. fd.c) not moved because they use other pc features (e.g.
CMOS settings), and none of the non-driver files moved, because they're
still pretty much PC specific.  eventually (when other ports with ISA
busses really start using this code), more 'high-level' ISA support will
live here.
1995-01-29 07:36:54 +00:00
mycroft c5d5ca8150 Don't check the control port at all; too unreliable. 1995-01-26 07:35:49 +00:00
mycroft 3dddacd1ce Rearrange tests so `offline' has higher priority than `out of paper'. 1995-01-22 00:12:39 +00:00
mycroft b5cf1b5ddd Add interrupt sharing types. 1995-01-03 01:30:14 +00:00
mycroft 35cdd801e6 Convert port, IRQ, and DRQ numbers to ints. 1994-11-18 21:57:40 +00:00
cgd 6ac2bbfc35 be more careful with types, also pull in headers where necessary. 1994-10-30 21:43:03 +00:00
cgd 022ee8f7fe new RCS ID format. 1994-10-27 04:14:23 +00:00
mycroft a69dd750a2 b_un.b_addr -> b_data 1994-06-16 01:07:30 +00:00
mycroft 37c76e16d1 Only print the blasted messages *once* per error. 1994-05-27 08:54:52 +00:00
cgd e47989d1e5 turn off spontaneous printing of messages when DEBUG turned on 1994-05-23 02:33:23 +00:00
mycroft 685508a6b4 Remove now-bogus cast. 1994-05-05 07:52:53 +00:00
cgd a0a7429482 lots of changes: prototype migration, move lots of variables, definitions,
and structure elements around.  kill some unnecessary type and macro
definitions.  standardize clock handling.  More changes than you'd want.
1994-05-05 05:35:42 +00:00
mycroft eb036e74c5 Don't need isa.h. 1994-04-22 23:02:40 +00:00
mycroft 3f5e4f423f Implement dynamic IRQ configuration and IRQ sharing. Inline spl*() calls.
Reorganize and clean up the relevant code.
1994-04-07 06:48:19 +00:00
mycroft 592ec61b17 Updates for new autoconfig. 1994-03-29 04:35:37 +00:00
mycroft 0c082bcaf8 DELAY() --> delay(). This is not a macro. 1994-03-06 17:18:43 +00:00
mycroft 7408373b25 Speed it up a little... 1994-02-19 03:36:12 +00:00
mycroft 06dbad88db Minor tweak of no importance. 1994-02-19 02:43:53 +00:00
mycroft 5f76c23bdf Combined version from magnum branch. Somewhat faster and less buggy. 1994-02-18 19:50:56 +00:00
mycroft bbb3e7618c All ioctl routines take a struct proc * now. 1994-02-09 21:06:46 +00:00
mycroft f2a0b4b335 Canonicalize all #includes, and add pio.h where appropriate. 1993-12-20 09:05:17 +00:00
cgd b85a24ec4e get rid of stray printfs (turn them into "lprintf"s) 1993-09-28 21:26:59 +00:00