svn commit: r217921 - head/sys/dev/ath/ath_hal
Adrian Chadd
adrian at FreeBSD.org
Thu Jan 27 02:56:04 UTC 2011
Author: adrian
Date: Thu Jan 27 02:56:03 2011
New Revision: 217921
URL: http://svn.freebsd.org/changeset/base/217921
Log:
Writing to the analog registers on the AR9220 (Merlin PCI) seems to require a delay.
This, along with an initval change which will appear in a subsequent commit,
fixes bus panics that I have been seing with the AR9220 on a Routerstation Pro
(AR7161 MIPS board.)
Obtained from: Linux ath9k
PR: kern/154220
Modified:
head/sys/dev/ath/ath_hal/ah.c
Modified: head/sys/dev/ath/ath_hal/ah.c
==============================================================================
--- head/sys/dev/ath/ath_hal/ah.c Thu Jan 27 02:27:17 2011 (r217920)
+++ head/sys/dev/ath/ath_hal/ah.c Thu Jan 27 02:56:03 2011 (r217921)
@@ -858,6 +858,11 @@ ath_hal_ini_write(struct ath_hal *ah, co
for (r = 0; r < ia->rows; r++) {
OS_REG_WRITE(ah, HAL_INI_VAL(ia, r, 0),
HAL_INI_VAL(ia, r, col));
+
+ /* Analog shift register delay seems needed for Merlin - PR kern/154220 */
+ if (HAL_INI_VAL(ia, r, 0) >= 0x7800 && HAL_INI_VAL(ia, r, 0) < 0x78a0)
+ OS_DELAY(100);
+
DMA_YIELD(regWr);
}
return regWr;
@@ -881,6 +886,10 @@ ath_hal_ini_bank_write(struct ath_hal *a
for (r = 0; r < ia->rows; r++) {
OS_REG_WRITE(ah, HAL_INI_VAL(ia, r, 0), data[r]);
+
+ /* Analog shift register delay seems needed for Merlin - PR kern/154220 */
+ if (HAL_INI_VAL(ia, r, 0) >= 0x7800 && HAL_INI_VAL(ia, r, 0) < 0x78a0)
+ OS_DELAY(100);
DMA_YIELD(regWr);
}
return regWr;
More information about the svn-src-head
mailing list