summaryrefslogtreecommitdiff
path: root/sys/dev/ips/ips.c
Commit message (Collapse)AuthorAgeFilesLines
* This commit was manufactured by cvs2svn to create tagrelease/6.1.0_cvscvs2svn2006-05-061-1/+1
| | | | | | 'RELENG_6_1_0_RELEASE'. This commit was manufactured to restore the state of the 6.1-RELEASE image.
* Remove an extra mutex unlock in the morpheus interrupt handler.Scott Long2005-04-261-1/+4
| | | | | | | | | PR: 80246 Submitted by: Dean Strik MFC After: 3 days Notes: svn path=/head/; revision=145545
* Add crashdump support to the ips driver. It only works for the more modernScott Long2005-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 Notes: svn path=/head/; revision=141062
* Remove all of the spl() markers.Scott Long2005-01-281-27/+0
| | | | Notes: svn path=/head/; revision=140924
* Lock the IPS driver and bring it out from under Giant. Also do someScott Long2005-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 Notes: svn path=/head/; revision=140923
* Do the dreaded s/dev_t/struct cdev */Poul-Henning Kamp2004-06-161-3/+3
| | | | | | | Bump __FreeBSD_version accordingly. Notes: svn path=/head/; revision=130585
* Use a unique malloc type rather than M_DEVBUF.Scott Long2004-05-301-4/+6
| | | | Notes: svn path=/head/; revision=129859
* Switch from using mutexes to using semaphores to protect against earlyScott Long2004-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) Notes: svn path=/head/; revision=126364
* Device megapatch 4/6:Poul-Henning Kamp2004-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. Notes: svn path=/head/; revision=126080
* Remove the static major assignment for ips(4).Scott Long2004-02-141-2/+0
| | | | | | | Submitted by: phk, inspired by others. Notes: svn path=/head/; revision=125833
* Use same style for cdevsw as the rest of our drivers.Poul-Henning Kamp2004-02-141-5/+5
| | | | Notes: svn path=/head/; revision=125808
* Fixed a memory leak.Ruslan Ermilov2004-01-181-0/+1
| | | | | | | | Reported by: Stanford Metacompilation research group Reviewed by: scottl Notes: svn path=/head/; revision=124680
* ServeRaid (at least 5i) didn't initialize correctly. To getMartin Blapp2003-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 Notes: svn path=/head/; revision=122999
* Use __FBSDID().David E. O'Brien2003-08-241-4/+3
| | | | | | | Also some minor style cleanups. Notes: svn path=/head/; revision=119418
* Mega busdma API commit.Scott Long2003-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 Notes: svn path=/head/; revision=117126
* Fix pointer/int warnings so this compiles on amd64. The driver wantsPeter Wemm2003-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 Notes: svn path=/head/; revision=116931
* - Zero the buffers used to hold configuration data from the card. Not doingScott Long2003-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 Notes: svn path=/head/; revision=116852
* Add the 'ips' driver for the IBM (now Adaptec) ServeRAID controllerScott Long2003-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 Notes: svn path=/head/; revision=114902