summaryrefslogtreecommitdiffstats
path: root/sys/dev/ips/ips.c
Commit message (Collapse)AuthorAgeFilesLines
* Remove an extra mutex unlock in the morpheus interrupt handler.scottl2005-04-261-1/+4
| | | | | | PR: 80246 Submitted by: Dean Strik MFC After: 3 days
* Add crashdump support to the ips driver. It only works for the more modernscottl2005-01-301-14/+37
| | | | | | | | | ServeRAID 4 - 7 models right now. Support for older cards is possible, but I don't have any hardware to experiment with. Thanks to Jack Hammer at Adaptec for providing debugging hints. Sponsored by: ImproWare AG, Switzerland
* Remove all of the spl() markers.scottl2005-01-281-27/+0
|
* Lock the IPS driver and bring it out from under Giant. Also do somescottl2005-01-281-90/+56
| | | | | | | | | | | | | | | | significant clean up and optimizations: - don't call bioq_disksort() on every command, the hardware will do that for us. - remove all of the complicated bio deferral code. bio's that can't be serviced immediately can just wait on the bioq. - Only reserve one command object for doing control commands to the card. This simplifies a lot of code and significantly reduces the size of the command struct. - Allocate commands out of a slab instead of embedding them into the softc. - Call the command action method directly instead of having ips_get_free_cmd() call it indirectly. MFC After: 1 week
* Do the dreaded s/dev_t/struct cdev */phk2004-06-161-3/+3
| | | | Bump __FreeBSD_version accordingly.
* Use a unique malloc type rather than M_DEVBUF.scottl2004-05-301-4/+6
|
* Switch from using mutexes to using semaphores to protect against earlyscottl2004-02-281-17/+25
| | | | | | | completion of synchronous commands. Also switch to a per-array bioq as it appears to improve performance. Submitted by: mbr, imp.ch (bioq change)
* Device megapatch 4/6:phk2004-02-211-0/+2
| | | | | | | | Introduce d_version field in struct cdevsw, this must always be initialized to D_VERSION. Flip sense of D_NOGIANT flag to D_NEEDGIANT, this involves removing four D_NOGIANT flags and adding 145 D_NEEDGIANT flags.
* Remove the static major assignment for ips(4).scottl2004-02-141-2/+0
| | | | Submitted by: phk, inspired by others.
* Use same style for cdevsw as the rest of our drivers.phk2004-02-141-5/+5
|
* Fixed a memory leak.ru2004-01-181-0/+1
| | | | | Reported by: Stanford Metacompilation research group Reviewed by: scottl
* ServeRaid (at least 5i) didn't initialize correctly. To getmbr2003-11-271-2/+64
| | | | | | | | | | | | | | | | | | | | | them working (cache, automatic rebuild and hotswap) the FFDC info (First Failure Data Capture) on the adapter must be initialised. Logical drives in critical/degraded states weren't added to the drive list. FreeBSD was not able to see a degraded array after a reboot. Degraded drives are now also added to the drivelist and the state of the logical drive is given at boottime. The adapter type is detected from informations in nvram page 5 and displayed at boottime. Change IPS_OS_FREEBSD definition from 10 to 8 according to IBM specs. Submitted by: <Patrick Guelat> pgfb@imp.ch Reviewed by: mbr, scottl Approved by: re
* Use __FBSDID().obrien2003-08-241-4/+3
| | | | Also some minor style cleanups.
* Mega busdma API commit.scottl2003-07-011-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | 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
* Fix pointer/int warnings so this compiles on amd64. The driver wantspeter2003-06-271-1/+1
| | | | | | | to store an int in the bio->bio_driver1 (a void *). It is big enough, but you have to match the int sizes first before doing the cast. Glanced at by: scottl
* - Zero the buffers used to hold configuration data from the card. Not doingscottl2003-06-261-2/+8
| | | | | | | | | | so can leave stale data in the buffer and confuse the driver. - enable the ability to set the 'disable' hint for the driver to keep it from attaching. i.e. 'hw.ips.0.disable=1' will prevent the driver from attaching. - Only detach if attach suceeded. Submitted by: mjacob
* Add the 'ips' driver for the IBM (now Adaptec) ServeRAID controllerscottl2003-05-111-0/+697
series. This driver was generously developed and released by David Jeffreys and Adaptec. I've updated it to work with 5.x and fixed a few bugs. MFC After: 1 week
OpenPOWER on IntegriCloud