From owner-svn-src-all@FreeBSD.ORG Thu Jan 27 02:56:04 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 49A0F106566B; Thu, 27 Jan 2011 02:56:04 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 38A158FC0A; Thu, 27 Jan 2011 02:56:04 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id p0R2u4Zm098728; Thu, 27 Jan 2011 02:56:04 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id p0R2u447098726; Thu, 27 Jan 2011 02:56:04 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201101270256.p0R2u447098726@svn.freebsd.org> From: Adrian Chadd Date: Thu, 27 Jan 2011 02:56:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r217921 - head/sys/dev/ath/ath_hal X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 27 Jan 2011 02:56:04 -0000 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;