summaryrefslogtreecommitdiffstats
path: root/sys/dev/ic/aic79xx_openbsd.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Since dlg@'s 2009 scsi midlayer refactoring the 'struct scsi_generic *cmd'krw2020-09-221-2/+2
| | | | | | | | | | | | member of 'struct scsi_xfer' has always been pointed at the 'struct scsi_generic cmdstore' member of the same instance. So nuke 'cmdstore' and remove the '*' from cmd. Take the address of cmd as required by the various casts. No intentional functional change. luna88k test by aoyama@, sparc64 test by jmatthew@ Identification of 2009's last *cmd use and ok jmatthew@
* SC_DEBUG() and friends are for debugging the SCSI code, not for scattered randomkrw2020-07-281-4/+10
| | | | | | | uses in drivers. Use AHD_DEBUG/AHC_DEBUG sections like all the other debug output does. Don't #include scsi_debug.h.
* Move remaining scsi bus initialization info from "prototype scsi link"krw2020-07-201-5/+5
| | | | | | | fields to struct scsibus_attach_args. Nuke the struct scsi_link * (saa_sc_link) in scaibus_attach_args. Explicitly initialize each field in scsibus_attach_args variables.
* Move the adapter related items (luns, adapter, adapter_target,krw2020-07-191-6/+6
| | | | | | | adapter_buswidth, adapter_softc) from struct scsi_link to struct scsibus_attach_args. Additional compile tests by jmatthew@ (sparc64) and aoyam@ (luna88k).
* Access adapter softc via link->bus->sb_adapter_softc.krw2020-07-161-3/+3
| | | | | | | | In sparc64 autoconf access 'luns' via sb_luns and 'adapter_buswidth' via sb_adapter_buswidth. Removes last post-config uses of the copies of bus related information in scsi_link.
* Remove some pointless casting of void * when assigning onekrw2020-07-131-3/+3
| | | | (scsi_link.adapter_softc) to a pointer of a particular softc type.
* Expunge some Captain Obvious comments, tweak whitespace a bit, move a debugkrw2020-07-111-4/+1
| | | | statement. All to make upcoming diff(s) smaller and easier to read.
* Shuffle things around so that sc->sc_link initialization iskrw2020-07-021-11/+11
| | | | even more concentrated just before config_found().
* No need to bzero()/memset() 'struct scsibus_attach_args' variableskrw2020-06-271-2/+1
| | | | immediately before initializing the only field in the struct.
* *_minphys() functions that cap i/o sizes at a value larger than thekrw2020-02-151-18/+2
| | | | | | | | | | | | | | | value minphys() uses (MAXPHYS) are pointless since minphys() is always called after the *_minphys() function. MAXPHYS (64 * 1024) == 16 * 4096. 4096 is the smallest PAGE_SIZE we have. So a *_minphys() function that caps the i/o size at N * PAGE_SIZE where N is > 16 is just wasting cycles. Nuke adv_minphys (40 * PAGE_SIZE), adw_minphys (254 * PAGE_SIZE), ahc_minphys (128 * PAGE_SIZE), ahd_minphys (128 * PAGE_SIZE), ami_minphys (26 * PAGE_SIZE), cac_minphys (65535 (!!!) * 512), iha_minphsy (32 * PAGE_SIZE), trm_minphys (31 * PAGE_SIZE), twe_minphys (62 * PAGE_SIZE). uha_minphys (32 * PAGE_SIZE),
* Whitespace tweak.krw2020-02-061-3/+2
|
* Drivers that implement their own *minphys() don't need to call thekrw2020-01-251-2/+1
| | | | | | | system minphys(). scsi_minphys() will do that and cd/sd/st will call scsi_minphys(). ok jmatthew@ as part of larger diff
* Use a consistant idiom/format when declaring scsi_adapter structureskrw2020-01-231-5/+2
| | | | | | | | | | | in drivers. Terse one liners, NULLs instead of 0's, explicitly specify all members, etc. Nuke #ifdef notyet blocks related to the scsi_adapter in aic. No intentional functional change. ok tedu@
* Nuke some forward-only struct's and functions and functions therebykrw2017-12-121-25/+1
| | | | | | made empty. Found by new ctfconv(1) feature and validated by clang. ok mpi@
* Move to iopool. No voluntary testers after several years of requests so nowkrw2016-08-171-30/+9
| | | | everybody gets to test!
* Reduces the noise around the global ``ticks'' variable by renamingmpi2016-03-191-11/+11
| | | | | | all the local ones to ``nticks''. ok stefan@, deraadt@
* Nuke a bunch of leading and trailing whitespace so I don't go blindkrw2015-07-171-13/+13
| | | | reading this code. No intentional functional change.
* add a size argument to free. will be used soon, but for now default to 0.tedu2014-07-121-2/+2
| | | | after discussions with beck deraadt kettenis.
* if the hardware is too busy or its queues are too full, return XS_BUSY,dlg2014-01-171-7/+3
| | | | | | not XS_NO_CCB. discussed with krw@ who agrees
* Enforce ca_activate tree-walks over the entire heirarchy for all events,deraadt2013-05-301-4/+1
| | | | | | cleaning up some shutdown-hook related code on the way. (A few drivers related to sparc are still skipped at kettenis' request) ok kettenis mlarkin, tested by many others too
* Remove excessive sys/cdefs.h inclusionderaadt2012-12-051-6/+1
| | | | ok guenther millert kettenis
* Correct the spelling of "transferred" and "transferring"guenther2012-02-241-2/+2
| | | | from Tobias Ulmer (tobiasu at tmux.org); ok jmc@, krw@
* Remove all adapter-specific 'struct scsi_device's. They are never used. Firstkrw2010-06-281-11/+1
| | | | | | | | step in elminating 'struct scsi_device' entirely. Spotted and initial diff from matthew@. ok matthew@ dlg@ deraadt@ marco@ miod@
* Change the scsi_cmd function member of scsi_adapter from int tokrw2010-03-231-19/+21
| | | | | | | | | | | | | void. Use XS_NO_CCB error in the scsi command (xs) to report the NO_CCB condition. Eliminates all SUCCESSFULLY_QUEUED and COMPLETE confusion and untangles the midlayer from the adapter a bit more. Eyes and some fixes by miod@ There may be some compile issues on little used (i.e. I don't have any) drivers but the change is mechanical and thus easy to remedy. ok dlg@
* Remove horrible hack in ahc/ahd that made some commands retrykrw2010-01-201-11/+3
| | | | | | | | | | | endlessly. Use the shiny new XS_NO_CCB instead to retry commands that can't start. Neither dlg@ nor I can figure out why 4.6 and earlier worked. Problem noted, debugged with and fix tested by Jeff Ross and his new external enclosure. Thanks! ok dlg@
* Set ITSDONE in scsi_done() and zap trivial instances of setting itkrw2010-01-101-4/+1
| | | | | | in the drivers just before calling scsi_done(). ok dlg@ beck@
* Bring last drivers fully into the NO_CCB world by replacingkrw2009-11-221-2/+2
| | | | | | | | | | | TRY_AGAIN_LATER uses with equivalent NO_CCB. Eliminates confusion between the two as was always intended. buf I/O's that can't be started get pushed back onto the front of the queue and retried. Others get sent back to originator as failures. No more epi-cycle looping inside the SCSI midlayer hoping the problem goes away. Various testers, no objection from miod@ as vs(4) was tested by nick@.
* Extend the scsi_adapter minphys() callback to take a struct scsi_link *miod2009-02-161-3/+3
| | | | | | as additional argument. This will allow intermediate layers between scsi devices such as sd and scsi host adapters to take appropriate action if necessary.
* Replace timeout_add(msecs * hz / 1000) with timeout_add_msec(msecs).grange2009-01-211-2/+2
| | | | | | No functional changes. ok krw@ miod@
* dontqueue is set but never used. garbage collect it.krw2008-11-251-5/+1
|
* Return NO_CCB instead of TRY_AGAIN_LATER when ccb's run out.krw2008-11-241-2/+2
| | | | "I'm all for it." marco@ "Yeah" deraadt@
* Put scsi_done() invocations inside existing splbio/splx pairs to makekrw2007-10-201-6/+5
| | | | damned sure scsi_done is invoked at splbio. Noted by deraadt@.
* The obvious bzero/memset -> M_ZERO changes.krw2007-09-071-3/+2
|
* give scsi controllers a real attach args to fill in when attaching scsibus.dlg2006-11-281-3/+6
| | | | ok miod@ marco@ deraadt@
* Attach routines can fail before calling *hook_establish(), and theykrw2006-05-221-2/+3
| | | | | | | | often rely on the detach routine for cleanup. So be consistant and careful by checking for a NULL hook before calling *hook_disestablish in detach routines. ok mickey@ brad@ dlg@
* All CAM_* values stored in xs->error must be 'interpreted' bykrw2006-03-041-2/+2
| | | | | | | | | | | | | | ah[cd]_done() into XS_* values understood by the SCSI code before returning xs to the tender mercies of the SCSI code. So if we bail out without calling ah[cd]_done(), because the request cdb length is excessive, don't use ah[cd]_set_transaction() to put CAM_REQ_INVALID into xs->error, just jam in XS_DRIVER_STUFFUP as ah[cd]_done() would have. If CAM_REQ_INVALID escapes it will be interpreted as XS_SHORT_SENSE as far as I can tell. This code path should never be trod so the net effect should be minimal.
* Strip out fancy timeout code that attempts to mimic FreeBSD's threadkrw2005-12-281-56/+2
| | | | | | | | | | | | | | | based timeout handling. Use the simple timeout == bus reset model instead. Also move verbose debug output inside #ifdef/#endif. Fixes immediate crashes on encountering a timeout. Noted by per englebrecht when trying 'smartctl -d scsi -a /dev/rsd0c'. Thanks to per englebrecht and luiz gustavo for testing. Should only impact timeout handling. No change to normal processing. ok marco@
* It is invalid to scsi_done(xs) and then return TRY_AGAIN_LATER.krw2005-11-021-8/+6
| | | | | | | | | | | | | | | scsi_done() can release the scsi_request xs and TRY_AGAIN_LATER will refer to it and submit it for re-execution. This was being done only if bus_dmamap_load() failed. Ensure the controller resources are freed before returning TRY_AGAIN_LATER, since new resources will be allocated when the command is executed again. Don't bother setting xs->error before returning TRY_AGAIN_LATER as the code returned to sets xs->error to XS_BUSY. ok marco@
* Use correct timer when reinstating timeouts. Adapted from FreeBSDkrw2005-10-061-3/+3
| | | | aic79xx_osm.c r1.22 fix by gibbs.
* Current ahd timeout code does nothing. Add fbsd style timeoutkrw2004-12-301-18/+43
| | | | | | handling which will at least try to recover. ok marco@.
* Don't allow an infinite number of SCSI bus resets per i/o.krw2004-12-281-1/+2
| | | | ok marco@.
* Fix tag handling for non-U320/packetized devices. Allow tags for thesekrw2004-12-271-10/+2
| | | | | | | | devices. Tidy up man page, remove lies and cruft. ok marco@.
* Kill bit of ahc cruft. Elminate lots of leading spaces. Other KNF. Nokrw2004-12-241-130/+124
| | | | functional change.
* In the rare case that SCSI_RESET is set, ensure that xs->stimeout iskrw2004-12-201-9/+4
| | | | | valid and don't call ahd_setup_data() after ahd_execute_scb() may have freed the scb.
* Activate packetized status handling.krw2004-12-201-21/+7
| | | | ok tdeval@.
* Reduce delta to FreeBSD by adding and using ahd_alloc() rather thankrw2004-12-191-8/+10
| | | | | | | | | | | | | | | manually reproducing bits in ahd_pci.c. Just as in ahc, avoid allocating and freeing zero length bits of memory for platform data. Don't try to free all or part of ahd_softc, but correctly free allocated memory for seep_config if necessary. Add a final few fields to ahd_softc and scb in preparation for updating/fixing timeout handling. No functional changes.
* Use millisends rather than microseconds in parameters to timerkrw2004-12-131-6/+21
| | | | | | | | | | | functions, and ultra-conservative calculations, to avoid possible overflow issues. Also consistant with values passed in scsi requests. Whitespace and comment tweaks. Update FreeBSD tags now that we are sync'd to the latest version. From FreeBSD aic79xx.c r1.33, aic79xx.h r1.23, aic_osm_lib.h r1.4.
* More FreeBSD delta reduction. Use aic_* defines rather than ahd_* onekrw2004-11-231-177/+8
| | | | | | | | | | | line and zero line functions. Fix a potential bug (ahd_set_transaction_status was used where ahd_set_scsi_status was intended) inside a currently #ifdef 0/#endif section of code. No functional changes intended except for a bit of extra locking via ahd_list_lock*. ok marco@.
* More NetBSD cruft removal/FreeBSD delta reduction. Whitespace, function and variable shuffle. No functional change.krw2004-11-181-11/+2
|
* More NetBSD cruft removal, starting with 'struct ahd_pci_busdata' andkrw2004-11-141-13/+1
| | | | | | | | | | | the fallout from that. Ensure pcireg_t variables are being used with pci_conf_read/write functions - found one uint16_t variable (pcix_status) being used to store and restore (32 bit) pcireg_t values. Some KNF. No functional changes.