From patchwork Tue May 17 12:00:02 2011 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: 791252 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by demeter2.kernel.org (8.14.4/8.14.3) with ESMTP id p4HBMJwM005710 for ; Tue, 17 May 2011 11:22:19 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753932Ab1EQLWS (ORCPT ); Tue, 17 May 2011 07:22:18 -0400 Received: from mail-ey0-f174.google.com ([209.85.215.174]:52310 "EHLO mail-ey0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753710Ab1EQLWR (ORCPT ); Tue, 17 May 2011 07:22:17 -0400 Received: by mail-ey0-f174.google.com with SMTP id 24so103261eyx.19 for ; Tue, 17 May 2011 04:22:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:from:to:cc:subject:date:message-id:x-mailer :in-reply-to:references:mime-version:content-type :content-transfer-encoding; bh=faTLPGzprZbtJ5/pMFPWv1ZF4ap8qvUGyu0+8jYUgDo=; b=KvSKl1+Sza1Uagf2KN7Kzrmpf2hrGrc7rxVV4nS1ZWmDENc8BUmL82AFDHxcM6vL+8 RrCe+u4VKhB/NFM3LHUdC8jBdCADNMmEgdsRsZkjTmQ5PQoBXpQK4XZsUaZ8xmTwmBXz csg/+TLv5XxcMrm9RqkSDjrpnL2TkWoWkkWd0= 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=q+j7a/rcvpDDSD6h7QYY2WKa2QItbGA441x58Sja19MeoCGWrAOX+rUSip/Flfjme1 m8tJmatI3ckeL/VpitQNqa7sdF6/j0YLjBQMmf7RXSoCgtjmkWxXix+6L1m8WUt9WTHy f31Mei9ujtCM5O01Jx4Ta3U8vGuhFzFz/OJ1k= Received: by 10.213.9.134 with SMTP id l6mr203494ebl.20.1305631336418; Tue, 17 May 2011 04:22:16 -0700 (PDT) Received: from localhost.localdomain (c14-108.icpnet.pl [62.21.14.108]) by mx.google.com with ESMTPS id y9sm322910eeh.8.2011.05.17.04.22.14 (version=TLSv1/SSLv3 cipher=OTHER); Tue, 17 May 2011 04:22:15 -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: dma: cache translation (routing bits) Date: Tue, 17 May 2011 14:00:02 +0200 Message-Id: <1305633602-4590-3-git-send-email-zajec5@gmail.com> X-Mailer: git-send-email 1.7.3.4 In-Reply-To: <1305633602-4590-1-git-send-email-zajec5@gmail.com> References: <1305633602-4590-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.6 (demeter2.kernel.org [140.211.167.43]); Tue, 17 May 2011 11:22:19 +0000 (UTC) Signed-off-by: Rafa? Mi?ecki --- drivers/net/wireless/b43/b43.h | 2 ++ drivers/net/wireless/b43/dma.c | 7 ++++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/drivers/net/wireless/b43/b43.h b/drivers/net/wireless/b43/b43.h index caba5c5..ee4d06f 100644 --- a/drivers/net/wireless/b43/b43.h +++ b/drivers/net/wireless/b43/b43.h @@ -567,6 +567,8 @@ struct b43_dma { struct b43_dmaring *tx_ring_mcast; /* Multicast */ struct b43_dmaring *rx_ring; + + u32 translation; /* Routing bits */ }; struct b43_pio_txqueue; diff --git a/drivers/net/wireless/b43/dma.c b/drivers/net/wireless/b43/dma.c index 10cfba3..47d44bc 100644 --- a/drivers/net/wireless/b43/dma.c +++ b/drivers/net/wireless/b43/dma.c @@ -80,7 +80,7 @@ static void op32_fill_descriptor(struct b43_dmaring *ring, addr = (u32) (dmaaddr & ~SSB_DMA_TRANSLATION_MASK); addrext = (u32) (dmaaddr & SSB_DMA_TRANSLATION_MASK) >> SSB_DMA_TRANSLATION_SHIFT; - addr |= ssb_dma_translation(ring->dev->sdev); + addr |= ring->dev->dma.translation; ctl = bufsize & B43_DMA32_DCTL_BYTECNT; if (slot == ring->nr_slots - 1) ctl |= B43_DMA32_DCTL_DTABLEEND; @@ -174,7 +174,7 @@ static void op64_fill_descriptor(struct b43_dmaring *ring, addrhi = (((u64) dmaaddr >> 32) & ~SSB_DMA_TRANSLATION_MASK); addrext = (((u64) dmaaddr >> 32) & SSB_DMA_TRANSLATION_MASK) >> SSB_DMA_TRANSLATION_SHIFT; - addrhi |= (ssb_dma_translation(ring->dev->sdev) << 1); + addrhi |= (ring->dev->dma.translation << 1); if (slot == ring->nr_slots - 1) ctl0 |= B43_DMA64_DCTL0_DTABLEEND; if (start) @@ -658,7 +658,7 @@ static int dmacontroller_setup(struct b43_dmaring *ring) int err = 0; u32 value; u32 addrext; - u32 trans = ssb_dma_translation(ring->dev->sdev); + u32 trans = ring->dev->dma.translation; if (ring->tx) { if (ring->type == B43_DMA_64BIT) { @@ -1055,6 +1055,7 @@ int b43_dma_init(struct b43_wldev *dev) err = b43_dma_set_mask(dev, dmamask); if (err) return err; + dma->translation = ssb_dma_translation(dev->sdev); err = -ENOMEM; /* setup TX DMA channels. */