summaryrefslogtreecommitdiffstats
path: root/sys/dev/aic7xxx/aic79xx_inline.h
diff options
context:
space:
mode:
authorgibbs <gibbs@FreeBSD.org>2003-03-06 23:58:34 +0000
committergibbs <gibbs@FreeBSD.org>2003-03-06 23:58:34 +0000
commite2d9385c67f79414538e595fdd7b9a357bee21ec (patch)
tree3cb5c553571774741cdebf70171a67d16a3531ba /sys/dev/aic7xxx/aic79xx_inline.h
parentc21ced52bd84cf5d3c404045850c36075677fe75 (diff)
downloadFreeBSD-src-e2d9385c67f79414538e595fdd7b9a357bee21ec.zip
FreeBSD-src-e2d9385c67f79414538e595fdd7b9a357bee21ec.tar.gz
aic79xx.c:
Include read streaming in the PPR flags we display in diagnostics. In ahd_reset(), set the known mode after our initial pause prior to setting the mode. We can't just set the mode directly because the current mode, after the pause, is most likely unknown and setting the mode when the saved mode is unknown will trigger an assertion in the mode debug code. Complete an audit for SCB RAM reads. These reads must be performed via the special ahd_in?_scbram() methods so we can perform a Rev A. PCI-X workaround. Remove a superfluous mode save operation that was performed just prior to a call to ahd_clear_critical_section(). The saved mode was never restored and wouldn't have been valid anyway since the mode could change while single stepping out of a critical section. aic79xx.h: Add new BUG definition AHD_PCIX_SCBRAM_RD_BUG. aic79xx_inline.h: Update ahd_inb_scbram routine to check for AHD_PCIX_SCBRAM_RD_BUG and only apply the workaround if this bug is active. The old code applied the workaround in all cases. aic79xx_pci.c: Set AHD_PCIX_SCBRAM_RD_BUG for the A4. Remove an attempted saved_modes call in ahd_pci_test_register_access(). Saving the modes can only occur when we are paused, but the call was happening before the chip was known to be paused. Restoring the modes doesn't make sense either since the code makes no assumptions about the state of the sequencer until the first time the mode is set by the driver. This happens after the registers are successfully mapped.
Diffstat (limited to 'sys/dev/aic7xxx/aic79xx_inline.h')
-rw-r--r--sys/dev/aic7xxx/aic79xx_inline.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/sys/dev/aic7xxx/aic79xx_inline.h b/sys/dev/aic7xxx/aic79xx_inline.h
index d5963ce..78462ad 100644
--- a/sys/dev/aic7xxx/aic79xx_inline.h
+++ b/sys/dev/aic7xxx/aic79xx_inline.h
@@ -37,7 +37,7 @@
* IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGES.
*
- * $Id: //depot/aic7xxx/aic7xxx/aic79xx_inline.h#43 $
+ * $Id: //depot/aic7xxx/aic7xxx/aic79xx_inline.h#44 $
*
* $FreeBSD$
*/
@@ -678,7 +678,8 @@ ahd_inb_scbram(struct ahd_softc *ahd, u_int offset)
* Razor #528
*/
value = ahd_inb(ahd, offset);
- ahd_inb(ahd, MODE_PTR);
+ if ((ahd->flags & AHD_PCIX_SCBRAM_RD_BUG) != 0)
+ ahd_inb(ahd, MODE_PTR);
return (value);
}
OpenPOWER on IntegriCloud