From patchwork Mon Oct 11 01:11:03 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?b?UmFmYcWCIE1pxYJlY2tp?= X-Patchwork-Id: 244711 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by demeter1.kernel.org (8.14.4/8.14.3) with ESMTP id o9B1BDMc017400 for ; Mon, 11 Oct 2010 01:11:13 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752764Ab0JKBLM (ORCPT ); Sun, 10 Oct 2010 21:11:12 -0400 Received: from mail-bw0-f46.google.com ([209.85.214.46]:61688 "EHLO mail-bw0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752697Ab0JKBLL (ORCPT ); Sun, 10 Oct 2010 21:11:11 -0400 Received: by mail-bw0-f46.google.com with SMTP id 15so1403810bwz.19 for ; Sun, 10 Oct 2010 18:11:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:from:to:cc:subject:date :message-id:x-mailer:in-reply-to:references:mime-version :content-type:content-transfer-encoding; bh=BMuN9ZX4FTFxEL8kNYwt5KbAAO1KtIuSkB0eC4DDv5s=; b=m865D0sqOsvpEydB///5Ql1vfeD/9da1hov9oYi7M6g9zZRkyfwqPpk3JDNDqWg2A+ lfFt+KZIToYJd1+ztt9YStIGN9bUcH3zNS7D1DBtsVpM2Huw11yQ1hzZOUD0V1PZyw8B 0UcxBG9nsgzccoRB/8U/Wo0+u3PpeEz7oQYZU= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=from:to:cc:subject:date:message-id:x-mailer:in-reply-to:references :mime-version:content-type:content-transfer-encoding; b=ItwwCoGKc666+/HHU7+5PSNX+8tJUnB1Z3+kCUfa6wsBDV7oS/xToeTVSNEfCAVEk0 CfhoNti01GQzDtIGqZ/GPVXDzutWK1o1knk94Qviz1OcwCw0ckJOKV9j/yCW3MG+QwKI bQlt6yK0iPpDRqpivW+NWFQ8bN4hQH9oGEc4A= Received: by 10.204.68.136 with SMTP id v8mr4532846bki.88.1286759470458; Sun, 10 Oct 2010 18:11:10 -0700 (PDT) Received: from localhost.localdomain (77-253-200-80.ip.netia.com.pl [77.253.200.80]) by mx.google.com with ESMTPS id p34sm2864210bkf.3.2010.10.10.18.11.08 (version=TLSv1/SSLv3 cipher=RC4-MD5); Sun, 10 Oct 2010 18:11:09 -0700 (PDT) From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= To: linux-wireless@vger.kernel.org, "John W. Linville" Cc: b43-dev@lists.infradead.org, =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= Subject: [PATCH 3/3] b43: N-PHY: fix logic in band switching Date: Mon, 11 Oct 2010 03:11:03 +0200 Message-Id: <1286759463-32221-4-git-send-email-zajec5@gmail.com> X-Mailer: git-send-email 1.7.1 In-Reply-To: <1286759463-32221-1-git-send-email-zajec5@gmail.com> References: <1286759463-32221-1-git-send-email-zajec5@gmail.com> MIME-Version: 1.0 Sender: linux-wireless-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org X-Greylist: IP, sender and recipient auto-whitelisted, not delayed by milter-greylist-4.2.3 (demeter1.kernel.org [140.211.167.41]); Mon, 11 Oct 2010 01:11:13 +0000 (UTC) diff --git a/drivers/net/wireless/b43/phy_n.c b/drivers/net/wireless/b43/phy_n.c index 88a4411..21cfd42 100644 --- a/drivers/net/wireless/b43/phy_n.c +++ b/drivers/net/wireless/b43/phy_n.c @@ -3337,17 +3337,18 @@ static void b43_nphy_channel_setup(struct b43_wldev *dev, struct b43_phy *phy = &dev->phy; struct b43_phy_n *nphy = dev->phy.n; - u16 tmp; + u16 old_band_5ghz; u32 tmp32; - tmp = b43_phy_read(dev, B43_NPHY_BANDCTL) & B43_NPHY_BANDCTL_5GHZ; - if (new_channel->band == IEEE80211_BAND_5GHZ && tmp == 0) { + old_band_5ghz = + b43_phy_read(dev, B43_NPHY_BANDCTL) & B43_NPHY_BANDCTL_5GHZ; + if (new_channel->band == IEEE80211_BAND_5GHZ && !old_band_5ghz) { tmp32 = b43_read32(dev, B43_MMIO_PSM_PHY_HDR); b43_write32(dev, B43_MMIO_PSM_PHY_HDR, tmp32 | 4); b43_phy_set(dev, B43_PHY_B_BBCFG, 0xC000); b43_write32(dev, B43_MMIO_PSM_PHY_HDR, tmp32); b43_phy_set(dev, B43_NPHY_BANDCTL, B43_NPHY_BANDCTL_5GHZ); - } else if (new_channel->band == IEEE80211_BAND_5GHZ) { + } else if (new_channel->band == IEEE80211_BAND_2GHZ && old_band_5ghz) { b43_phy_mask(dev, B43_NPHY_BANDCTL, ~B43_NPHY_BANDCTL_5GHZ); tmp32 = b43_read32(dev, B43_MMIO_PSM_PHY_HDR); b43_write32(dev, B43_MMIO_PSM_PHY_HDR, tmp32 | 4);