From patchwork Sun May 16 15:45:57 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Felipe Contreras X-Patchwork-Id: 99970 X-Patchwork-Delegate: omar.ramirez@ti.com Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by demeter.kernel.org (8.14.3/8.14.3) with ESMTP id o4GFkL0O025236 for ; Sun, 16 May 2010 15:46:23 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753292Ab0EPPqW (ORCPT ); Sun, 16 May 2010 11:46:22 -0400 Received: from fg-out-1718.google.com ([72.14.220.159]:5081 "EHLO fg-out-1718.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753268Ab0EPPqV (ORCPT ); Sun, 16 May 2010 11:46:21 -0400 Received: by fg-out-1718.google.com with SMTP id d23so2359940fga.1 for ; Sun, 16 May 2010 08:46:20 -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; bh=xBJV6MUNgvqVNA/ie89ANU/TDUhBl/PiCTtvj6bPKwM=; b=Z5LSpSZuhNiF+mLfUpYwFLWkuuJDprl0S6//LKVcDJcKzH0pto1MBQrxPo/LphJ0bh /Pg3a3Ot5m4hGD2ptbjNkQQtczj5hCuMIY5sFdtrHf6bFVpQOC6UId8wuxwUQQzIe/X5 6UZbTAOM5mAw1B7kC9fbnbjxybKK0qR3clsPY= 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; b=sDRQfp9hI8JqYrwdWzs1mTME32x/BhAOnr/Mbc6xHU4OuZXt4CXYCj1zbxO0yUENzg Sq3LeOyNcKu/oxmrBdV7x8C7PkJLDE1ZZ2IMasqU/VZnw05l6gNE9FXCEIFP2Tuq+gvz Mh0ClJUzO/cYW8kkiufWjgv8YDHFDOQ8onJCk= Received: by 10.87.68.26 with SMTP id v26mr6794417fgk.40.1274024780561; Sun, 16 May 2010 08:46:20 -0700 (PDT) Received: from localhost (a91-153-253-80.elisa-laajakaista.fi [91.153.253.80]) by mx.google.com with ESMTPS id e20sm3778128fga.26.2010.05.16.08.46.19 (version=TLSv1/SSLv3 cipher=RC4-MD5); Sun, 16 May 2010 08:46:20 -0700 (PDT) From: Felipe Contreras To: linux-omap Cc: Omar Ramirez Luna , Fernando Guzman Lugo , Felipe Contreras Subject: [PATCH 06/14] dspbridge: mmu: add hw_mmu_tlb_flush_all() Date: Sun, 16 May 2010 18:45:57 +0300 Message-Id: <1274024765-21076-7-git-send-email-felipe.contreras@gmail.com> X-Mailer: git-send-email 1.7.1 In-Reply-To: <1274024765-21076-1-git-send-email-felipe.contreras@gmail.com> References: <1274024765-21076-1-git-send-email-felipe.contreras@gmail.com> Sender: linux-omap-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-omap@vger.kernel.org X-Greylist: IP, sender and recipient auto-whitelisted, not delayed by milter-greylist-4.2.3 (demeter.kernel.org [140.211.167.41]); Sun, 16 May 2010 15:46:23 +0000 (UTC) diff --git a/drivers/dsp/bridge/core/tiomap3430.c b/drivers/dsp/bridge/core/tiomap3430.c index 8a3eff9..d00eaaa 100644 --- a/drivers/dsp/bridge/core/tiomap3430.c +++ b/drivers/dsp/bridge/core/tiomap3430.c @@ -74,8 +74,6 @@ #define PAGES_II_LVL_TABLE 512 #define PHYS_TO_PAGE(phys) pfn_to_page((phys) >> PAGE_SHIFT) -#define MMU_GFLUSH 0x60 - /* Forward Declarations: */ static dsp_status bridge_brd_monitor(struct bridge_dev_context *dev_context); static dsp_status bridge_brd_read(struct bridge_dev_context *dev_context, @@ -216,18 +214,13 @@ static struct bridge_drv_interface drv_interface_fxns = { bridge_msg_set_queue_id, }; -static inline void tlb_flush_all(const void __iomem *base) -{ - __raw_writeb(__raw_readb(base + MMU_GFLUSH) | 1, base + MMU_GFLUSH); -} - static inline void flush_all(struct bridge_dev_context *dev_context) { if (dev_context->dw_brd_state == BRD_DSP_HIBERNATION || dev_context->dw_brd_state == BRD_HIBERNATION) wake_dsp(dev_context, NULL); - tlb_flush_all(dev_context->dw_dsp_mmu_base); + hw_mmu_tlb_flush_all(dev_context->dw_dsp_mmu_base); } static void bad_page_dump(u32 pa, struct page *pg) diff --git a/drivers/dsp/bridge/hw/hw_mmu.c b/drivers/dsp/bridge/hw/hw_mmu.c index 965b659..e593358 100644 --- a/drivers/dsp/bridge/hw/hw_mmu.c +++ b/drivers/dsp/bridge/hw/hw_mmu.c @@ -35,6 +35,7 @@ #define MMU_SMALL_PAGE_MASK 0xFFFFF000 #define MMU_LOAD_TLB 0x00000001 +#define MMU_GFLUSH 0x60 /* * hw_mmu_page_size_t: Enumerated Type used to specify the MMU Page Size(SLSS) @@ -585,3 +586,8 @@ static hw_status mmu_set_ram_entry(const void __iomem *baseAddress, return status; } + +void hw_mmu_tlb_flush_all(const void __iomem *base) +{ + __raw_writeb(1, base + MMU_GFLUSH); +} diff --git a/drivers/dsp/bridge/hw/hw_mmu.h b/drivers/dsp/bridge/hw/hw_mmu.h index 9b13468..0436974 100644 --- a/drivers/dsp/bridge/hw/hw_mmu.h +++ b/drivers/dsp/bridge/hw/hw_mmu.h @@ -97,6 +97,8 @@ extern hw_status hw_mmu_pte_set(const u32 pg_tbl_va, extern hw_status hw_mmu_pte_clear(const u32 pg_tbl_va, u32 page_size, u32 virtualAddr); +void hw_mmu_tlb_flush_all(const void __iomem *base); + static inline u32 hw_mmu_pte_addr_l1(u32 L1_base, u32 va) { u32 pte_addr;