kernel/ath9k-fix-bad-udelay.patch
Josh Boyer 0003f178c3 Fix ath9k build error on ARM and disable BNA
udelays above 2000 are bad.  Disable the BNA driver for the same reason
2014-01-27 10:08:20 -05:00

95 lines
4.4 KiB
Diff

Delivered-To: jwboyer@gmail.com
Received: by 10.76.27.197 with SMTP id v5csp83078oag;
Sun, 26 Jan 2014 17:55:49 -0800 (PST)
X-Received: by 10.68.185.1 with SMTP id ey1mr13619314pbc.33.1390787749474;
Sun, 26 Jan 2014 17:55:49 -0800 (PST)
Return-Path: <sujith@msujith.org>
Received: from bastion.fedoraproject.org (bastion02.fedoraproject.org. [209.132.181.3])
by mx.google.com with ESMTP id va10si9336344pbc.158.2014.01.26.17.55.49
for <jwboyer@gmail.com>;
Sun, 26 Jan 2014 17:55:49 -0800 (PST)
Received-SPF: neutral (google.com: 209.132.181.3 is neither permitted nor denied by best guess record for domain of sujith@msujith.org) client-ip=209.132.181.3;
Authentication-Results: mx.google.com;
spf=neutral (google.com: 209.132.181.3 is neither permitted nor denied by best guess record for domain of sujith@msujith.org) smtp.mail=sujith@msujith.org
Received: by bastion02.phx2.fedoraproject.org (Postfix)
id B18E24013F; Mon, 27 Jan 2014 01:55:48 +0000 (UTC)
Delivered-To: jwboyer@fedoraproject.org
Received: from mx1.redhat.com (ext-mx11.extmail.prod.ext.phx2.redhat.com [10.5.110.16])
by bastion02.phx2.fedoraproject.org (Postfix) with ESMTP id A0C3240135
for <jwboyer@fedoraproject.org>; Mon, 27 Jan 2014 01:55:47 +0000 (UTC)
Received: from s72.web-hosting.com (s72.web-hosting.com [198.187.29.21])
by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s0R1tk44009597
for <jwboyer@fedoraproject.org>; Sun, 26 Jan 2014 20:55:46 -0500
Received: from [117.199.138.156] (port=33797 helo=nako)
by server72.web-hosting.com with esmtpsa (UNKNOWN:AES128-GCM-SHA256:128)
(Exim 4.80.1)
(envelope-from <sujith@msujith.org>)
id 1W7bQI-000GgL-Md; Sun, 26 Jan 2014 20:55:39 -0500
From: Sujith Manoharan <sujith@msujith.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-ID: <21221.47960.726835.615315@gargle.gargle.HOWL>
Date: Mon, 27 Jan 2014 07:20:16 +0530
To: Josh Boyer <jwboyer@fedoraproject.org>
Cc: "John W. Linville" <linville@tuxdriver.com>,
<ath9k-devel@venema.h4ckr.net>, netdev <netdev@vger.kernel.org>,
"Linux-Kernel\@Vger. Kernel. Org" <linux-kernel@vger.kernel.org>
Subject: Re: ath9k ARM build error with v3.13-8330-g4ba9920
In-Reply-To: <CA+5PVA4fnCo8anT0HZCVu4+AFAseibm=0yD8nL3Lm7Q5dA-qZQ@mail.gmail.com>
References: <CA+5PVA4fnCo8anT0HZCVu4+AFAseibm=0yD8nL3Lm7Q5dA-qZQ@mail.gmail.com>
X-Mailer: VM 8.2.0b under 24.3.50.1 (x86_64-unknown-linux-gnu)
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - server72.web-hosting.com
X-AntiAbuse: Original Domain - fedoraproject.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - msujith.org
X-Get-Message-Sender-Via: server72.web-hosting.com: authenticated_id: sujith@msujith.org
X-Source:
X-Source-Args:
X-Source-Dir:
X-RedHat-Spam-Score: -1.9 (BAYES_00)
X-Scanned-By: MIMEDefang 2.68 on 10.5.110.16
Josh Boyer wrote:
> adds a udelay(10000) call to the ath9k driver. This will cause a
> build error on various ARM configs because the value passed to udelay
> is too large:
>
> ERROR: "__bad_udelay" [drivers/net/wireless/ath/ath9k/ath9k_hw.ko] undefined!
> make[1]: *** [__modpost] Error 1
> make: *** [modules] Error 2
>
> Is the 10000 microsecond udelay really required? I believe the limit
> on ARM is 2000. Perhaps something else could be done in this case?
The delay is a workaround for a HW issue. Does this patch fix the problem ?
diff --git a/drivers/net/wireless/ath/ath9k/hw.c b/drivers/net/wireless/ath/ath9k/hw.c
index fbf43c0..11eab9f 100644
--- a/drivers/net/wireless/ath/ath9k/hw.c
+++ b/drivers/net/wireless/ath/ath9k/hw.c
@@ -1316,7 +1316,7 @@ static bool ath9k_hw_set_reset(struct ath_hw *ah, int type)
if (AR_SREV_9300_20_OR_LATER(ah))
udelay(50);
else if (AR_SREV_9100(ah))
- udelay(10000);
+ mdelay(10);
else
udelay(100);
@@ -2051,9 +2051,8 @@ static bool ath9k_hw_set_power_awake(struct ath_hw *ah)
REG_SET_BIT(ah, AR_RTC_FORCE_WAKE,
AR_RTC_FORCE_WAKE_EN);
-
if (AR_SREV_9100(ah))
- udelay(10000);
+ mdelay(10);
else
udelay(50);
Sujith