Commit Graph

25 Commits

Author SHA1 Message Date
Scott Long
f6b1c44d1f Mega busdma API commit.
Add two new arguments to bus_dma_tag_create(): lockfunc and lockfuncarg.
Lockfunc allows a driver to provide a function for managing its locking
semantics while using busdma.  At the moment, this is used for the
asynchronous busdma_swi and callback mechanism.  Two lockfunc implementations
are provided: busdma_lock_mutex() performs standard mutex operations on the
mutex that is specified from lockfuncarg.  dftl_lock() is a panic
implementation and is defaulted to when NULL, NULL are passed to
bus_dma_tag_create().  The only time that NULL, NULL should ever be used is
when the driver ensures that bus_dmamap_load() will not be deferred.
Drivers that do not provide their own locking can pass
busdma_lock_mutex,&Giant args in order to preserve the former behaviour.

sparc64 and powerpc do not provide real busdma_swi functions, so this is
largely a noop on those platforms.  The busdma_swi on is64 is not properly
locked yet, so warnings will be emitted on this platform when busdma
callback deferrals happen.

If anyone gets panics or warnings from dflt_lock() being called, please
let me know right away.

Reviewed by:	tmm, gibbs
2003-07-01 15:52:06 +00:00
Matthew N. Dodd
4ada039b14 - Track resources in our softc.
- Sanitize dpt_alloc().
- Add helper functions for resource alloc/release.
- Add detach method.
- Relocate definition of devclass_t.
- Move some debugging output behind bootverbose.
- Implement an identify method for ISA devices
  but don't use it right now.
2003-03-29 08:30:45 +00:00
Peter Wemm
16c1138c89 Change BUS_SPACE_UNRESTRICTED (~0ul) to plain ~0 when used in the
'int nsegments' argument to bus_dma_tag_create().  ~0ul does not fit in
an int on machines with 64 bit longs.
2002-10-09 08:54:32 +00:00
Mark Murray
ed34d0ade2 Turn on interrupt-entropy harvesting for all/any mass storage devices
I could find. I have no doubt missed a couple.

Interrupt entropy harvesting is still conditional on the
kern.random.sys.harvest_interrupt sysctl.
2001-03-01 17:09:09 +00:00
Peter Wemm
cffd8a1d93 Allow the DPT pci attachment to share IRQ's
Submitted by:	Jonathan Chen <jon@spock.org>
2000-08-26 22:19:53 +00:00
Peter Wemm
403b9111fb Use correct register values. This one was in aic7xxx and advansys too. 2000-05-28 15:50:40 +00:00
Matthew N. Dodd
833d4d91bc Use correct offset into register window.
Noticed by: 	Manfred Antar <mantar@pacbell.net>
2000-04-07 07:29:31 +00:00
Matthew N. Dodd
bfae5e3a16 - Convert dpt_pci.c to newbus.
- Add support for ISA based DPT adapters (this doesn't quite work yet).
- Sync dpt_eisa.c with my local copy.
  - Simplify how EISA IDs are matched.
  - Prototype.
  - Formatting nits.
  - Conform to how I do things in dpt_pci.c/dpt_isa.c.
- Modify dpt_scsi.c:dpt_alloc() to DTRT with newbus.
- Add some comments to dpt_scsi.c:dpt_pio_get_conf().
- Add additional check to dpt_scsi.c:dpt_get_conf().
- Add some useful error messages to dpt_scsi.c:dpt_init().
2000-04-07 02:50:24 +00:00
Matthew N. Dodd
6bab6ffeb8 Switch over to the new location in sys/dev/dpt.
Fix a forgotten #include
1999-10-09 03:46:28 +00:00
Peter Wemm
c3aac50f28 $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
Poul-Henning Kamp
9dcbe2404a Convert DEVFS hooks in (most) drivers to make_dev().
Diskslice/label code not yet handled.

Vinum, i4b, alpha, pc98 not dealt with (left to respective Maintainers)

Add the correct hook for devfs to kern_conf.c

The net result of this excercise is that a lot less files depends on DEVFS,
and devtoname() gets more sensible output in many cases.

A few drivers had minor additional cleanups performed relating to cdevsw
registration.

A few drivers don't register a cdevsw{} anymore, but only use make_dev().
1999-08-23 20:59:21 +00:00
Justin T. Gibbs
086646f7c6 Properly set the alignment argument to bus_dma_tag_create(). If we
don't care about the alignment, set it to 1, meaning single byte alignment.
1999-08-16 01:52:21 +00:00
Peter Wemm
579f45fa60 Simplify the COMPAT_PCI_DRIVER/DATA_SET hack. We can add:
#define COMPAT_PCI_DRIVER(name,data) DATA_SET(pcidevice_set,data)
.. to 2.2.x and 3.x if people think it's worth it.  Driver writers can do
this if it's not defined.  (The reason for this is that I'm trying to
progressively eliminate use of linker_sets where it hurts modularity and
runtime load capability, and these DATA_SET's keep getting in the way.)
1999-05-09 17:07:30 +00:00
Peter Wemm
96b3554e5c Use COMPAT_PCI_DRIVER() for registration if it exists. This shouldn't
hurt the driver portability to 3.x too much for where drivers are shared.
1999-04-24 20:17:05 +00:00
Matthew Dillon
2cbe36f725 probe function changed from returning char * to const char *. 1998-12-14 06:37:37 +00:00
Archie Cobbs
f1d19042b0 The "easy" fixes for compiling the kernel -Wunused: remove unreferenced static
and local variables, goto labels, and functions declared but not defined.
1998-12-07 21:58:50 +00:00
Justin T. Gibbs
6405ed07d7 ahc_pci.c:
Disable DPARCKEN in the DSCOMMAND0 register on the aic7890/91/96/97.
	Parity checking is broken for some chip/MB combinations and this
	is the work around recommended by Adaptec.

dpt_pci.c:
	Remove a superflous '{' that prevented DPT_ALLOW_MEMIO from working.

pcireg.h:
	Add a definition for Parity Error Reponse bit in the PCI Space
	command register.
1998-10-07 03:40:51 +00:00
Justin T. Gibbs
83cf1450a1 Conver the DPT driver to CAM. The dpt_control interface is not yet
functional, but will be in another day or so.
1998-09-15 08:33:38 +00:00
Eivind Eklund
b755b88510 Update DPT driver from 1.4.3 to 1.4.5
Submitted by: Simon Shapiro <shimon@simon-shapiro.org>
1998-08-05 00:54:38 +00:00
Eivind Eklund
e448e98a36 o Return error when the controller can't accept commands.
o Make driver less chatty on boot (only announce version under
  bootverbose)

Submitted by:	Simon Shapiro <shimon@simon-shapiro.org>
1998-06-02 00:32:38 +00:00
Julian Elischer
fdc021ba7f Add EISA support for DPT drivers
Submitted by: Matthew Dodd
Reviewd by:	shimon@simon-shapiro.org (DPT author)
1998-03-11 00:30:16 +00:00
Bruce Evans
39e4376ba7 Removed unused #includes. 1998-02-20 13:11:54 +00:00
Eivind Eklund
2f83bdb269 Staticize. (Diffs by me & and Simon in cooperation.) 1998-02-10 17:36:44 +00:00
Eivind Eklund
f4002e8278 Add #include "opt_devfs.h". 1998-02-09 02:31:47 +00:00
Julian Elischer
b37c91fdc7 Add Simon Shapiro's DPT driver
this shouldn't break anything existing.
Userland utilities to follow.
1998-01-26 06:11:18 +00:00