summaryrefslogtreecommitdiffstats
path: root/sys/dev/aac
Commit message (Collapse)AuthorAgeFilesLines
* Start each of the license/copyright comments with /*-, minor shuffle of linesimp2005-01-061-1/+1
|
* Add the PCI ID for the Adaptec 2230SLP card.scottl2004-12-151-0/+2
| | | | Submitted by: Ray Gilstrap
* Complete the repo-copy of aac_ioctl.h from sys/dev/aac/to sys/sys.scottl2004-12-096-184/+5
|
* Don't force busdma to pre-allocate bounce pages for static allocations.scottl2004-11-211-2/+2
|
* Add support for the 21610SA 16-channel SATA card. Thanks to Adaptec forscottl2004-10-211-0/+2
| | | | providing hardware for testing.
* If the timeout handler runs and notices that commands are timed out, checkscottl2004-09-162-0/+11
| | | | | | | | the firmware status register on the card to see if the firmware is still running. There is no way to recover from this, but at least it can give a hint as whether the car has crashed (which happens all too often). MFC after: 3 days
* Put some of the probe messages under bootverbose so to lessen the noise.scottl2004-09-121-15/+16
|
* Add support for the Adaptec RAID-On-Chip architecture. This in turnscottl2004-08-134-3/+118
| | | | | provides support for the Adaptec 2130S adapter. Thanks to Adaptec for providing hardware for this.
* Destroy mutexes on detach.scottl2004-08-121-0/+4
|
* Change FREE() to free()scottl2004-08-121-1/+1
|
* Remove the AAC_LOCK macros. They no longer abstract anything and onlyscottl2004-08-124-48/+39
| | | | obfuscate the code. No functional differences.
* Release the sync fib after the controller has been shut down. This alsoscottl2004-08-121-0/+1
| | | | releases the I/O lock instead of just leaking it.
* Avoid casts as lvalues.kan2004-07-282-4/+5
|
* Do the dreaded s/dev_t/struct cdev */phk2004-06-162-5/+5
| | | | Bump __FreeBSD_version accordingly.
* Cast printf'ed values to intmax_t.obrien2004-06-131-3/+3
|
* Collapse sync fib locking into normal i/o locking. The former didn'tscottl2004-06-024-48/+30
| | | | | | | | protect the registers so it was trivially possible for a sync command and i/o command to fight each other and confuse the controller. Make the sync fib alloc/release functions inline and remove the somewhat worthless AAC_SYNC_LOCK_FORCE flag. Thanks to Adil Katchi for helping me to track this down in RELENG_4.
* Commit the correct version of the patch from last night. This fixes anscottl2004-06-011-7/+7
| | | | immediate panic when doing any i/o, and it closes a completion race.
* Collapse aac_map_command() into aac_startio(). Check the AAC_QUEUE_FRZN inscottl2004-06-011-43/+31
| | | | | | every iteration of aac_startio(). This ensures that a command that is deferred for lack of resources doesn't immediately get retried in the aac_startio() loop. This avoids an almost certain livelock.
* Turn down the queue size by 8 until I can figure out why the 512th commandscottl2004-05-301-1/+1
| | | | keeps on getting lost.
* Add missing <sys/module.h> includesphk2004-05-304-0/+4
|
* Unbreak the build.des2004-05-131-1/+1
|
* Enable INTR_ENTROPY if the interrupt is not set to INTR_FAST. Remove thescottl2004-05-131-5/+2
| | | | | | | testing and setting of the INTR_ENTROPY macro as it is not needed in FreeBSD 5.x. Submitted by: Alex Vasylenko
* Remove the 'timeout' argument from aac_wait_command() as it isn't used andscottl2004-04-141-14/+10
| | | | | never will be. Update the XXX comment for this function to accurately reflect why things are the way they are.
* Don peril-sensitive sunglasses and add PCI Id's for two new cards. I'vescottl2004-03-201-0/+4
| | | | | | only done minimal testing on one of these cards and the firmware folks have been extremely uncooperative in answering my qeustions about them, so hopefully they will work ok for everyone.
* Convert callers to the new bus_alloc_resource_any(9) API.njl2004-03-171-9/+9
| | | | | Submitted by: Mark Santcroos <marks@ripe.net> Reviewed by: imp, dfr, bde
* kthread_exit() no longer requires Giant, so don't force callers to acquirejhb2004-03-051-1/+0
| | | | | | Giant just to call kthread_exit(). Requested by: many
* Revert the last commit. I don't know what I was thinking, but this changescottl2004-02-251-1/+0
| | | | definitely doesn't help any thing.
* 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.
* Fix a major brain-o. If the command needs to be put on the deferred queue,scottl2004-02-211-0/+1
| | | | | take it off of the busy queue first. This should fix the 'command is on another queue' panic that showed up recently.
* Change the disk(9) API in order to make device removal more robust.phk2004-02-183-15/+17
| | | | | | | | | | | | | | | | | | | | | | | | Previously the "struct disk" were owned by the device driver and this gave us problems when the device disappared and the users of that device were not immediately disappearing. Now the struct disk is allocate with a new call, disk_alloc() and owned by geom_disk and just abandonned by the device driver when disk_create() is called. Unfortunately, this results in a ton of "s/\./->/" changes to device drivers. Since I'm doing the sweep anyway, a couple of other API improvements have been carried out at the same time: The Giant awareness flag has been flipped from DISKFLAG_NOGIANT to DISKFLAG_NEEDSGIANT A version number have been added to disk_create() so that we can detect, report and ignore binary drivers with old ABI in the future. Manual page update to follow shortly.
* Fall back to INTR_MPSAFE if INTR_FAST registration fails.scottl2004-02-091-2/+8
| | | | PR: kern/62276
* Remove the use of AACQ_COMPLETE here since there is no longer a completionscottl2004-02-071-3/+0
| | | | queue.
* Do some small cleanups to comments and remove AACQ_COMPLETE definitions sincescottl2004-02-073-7/+4
| | | | the completion queue is long-gone.
* Remove the hack of lowering AAC_MAX_FIB now that the root cause of thescottl2004-02-071-1/+1
| | | | problem was found.
* If a command has to be deferred because there are no more resources for itscottl2004-02-071-9/+11
| | | | | | | | | | | on the card, unmap it first. This allows it to be picked up properly when the queue gets kicked again. This was the root problem for the lost command (i.e. stuck in getblk/vinvalb) problem. While here, panic if commands don't map correctly instead of just silently ignoring the problem and dropping command. Also slow down the dynamic allocation of new commands. It should be safe to go back into the aac waters. Thanks to everyone who suffered through this and provided good feedback.
* Reduce AAC_MAX_FIBS to work around some yet-unidentified bugs in thescottl2004-02-071-1/+1
| | | | | | | | handling of resources shortages. The driver is now so fast that it can completely fill all 512 slots on the card, but for some reason only 511 slots are being allocated. Anything that tries to go into the 512th slot gets silently lost. Both bugs need to be fixed at a later date, but this should fix the reports of hangs in getblk and vinvalb.
* - Broaden the scope of locking in aac_command_thread() again to catch somescottl2004-02-071-11/+17
| | | | | | | | | edge cases in the loop. - Try to grab a command before dequeueing the bio from the bioq. The old behaviour of requeuing deferred bios to the end of the bioq is arguably wrong. This should be fixed in the future to check the bioq head without automatically dequeueing the bio.
* Add an #ifdef _KERNEL so that this file can be used from userland.scottl2004-02-071-1/+2
|
* Make LINT compile on amd64peter2004-02-061-2/+2
|
* Take the plunge and make this driver be INTR_FAST. This re-arranges thescottl2004-01-303-61/+55
| | | | | | | | | interrupt handler so that no locks are needed, and schedules the command completion routine with a taskqueue_fast. This also corrects the locking in the command thread and removes the need for operation flags. Simple load tests show that this is now considerably faster than FreeBSD 4.x in the SMP case when multiple i/o tasks are running.
* Temporary workaround for aac_cam to deal with CAM requiring Giant. Thisscottl2003-12-031-1/+9
| | | | | | should fix the panics on boot with newer Adaptec RAID cards. Approved by: re (rwatson)
* - Implement selwakeuppri() which allows raising the priority of atanimura2003-11-091-1/+1
| | | | | | | | | | | | | thread being waken up. The thread waken up can run at a priority as high as after tsleep(). - Replace selwakeup()s with selwakeuppri()s and pass appropriate priorities. - Add cv_broadcastpri() which raises the priority of the broadcast threads. Used by selwakeuppri() if collision occurs. Not objected in: -arch, -current
* Remove a bogus PCI ID entry.scottl2003-11-011-2/+0
|
* Change all SYSCTLS which are readonly and have a related TUNABLEsilby2003-10-211-1/+1
| | | | | from CTLFLAG_RD to CTLFLAG_RDTUN so that sysctl(8) can provide more useful error messages.
* Fix a couple of bugs with AIF handling:scottl2003-10-172-14/+19
| | | | | | | | | | - Correct the logic for the AIF array index pointers so that correct slot is always looked at. - Copy the full FIB payload size when copying AIF's, not just the first 64 bytes. Thanks to Mirapoint, Inc, for pointing these problems out and offering a solution.
* Eliminate the use of a statically assign major number for the aac device.scottl2003-09-291-3/+0
|
* Correctly wrap the producer queue index when dequeuing commands. This wasn'tscottl2003-09-161-1/+5
| | | | | | | | | | a problem for command responses since we rarely ever filled the queue. However, adapter-initiated commands have a much smaller queue and could tickle this bug. It's possible that this might fix the recently reported problems with the aac-2120s, though I haven't been able to reproduce the problem locally. MFC-After: 1 day
* Use PCIR_BAR() instead of a magic offset.scottl2003-09-091-1/+1
|
* Commands submitted through the management interface won't have scatter/scottl2003-09-011-0/+2
| | | | | gather lists. Stop ignoring them and instead call the callback directly. This unbreaks the management interface.
* If ~ chars were pennies, I'd be pennyless. This should fix all of thescottl2003-09-011-2/+3
| | | | 'command not in queue' panics. Also fix a nearby style problem.
OpenPOWER on IntegriCloud