From patchwork Fri Mar 12 19:12:37 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Albert Herranz X-Patchwork-Id: 47687 Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from bilbo.ozlabs.org (localhost [127.0.0.1]) by ozlabs.org (Postfix) with ESMTP id 0B84FB7F48 for ; Sat, 13 Mar 2010 06:13:11 +1100 (EST) Received: from smtp123.mail.ukl.yahoo.com (smtp123.mail.ukl.yahoo.com [77.238.184.54]) by ozlabs.org (Postfix) with SMTP id 1094FB7D21 for ; Sat, 13 Mar 2010 06:12:55 +1100 (EST) Received: (qmail 53516 invoked from network); 12 Mar 2010 19:12:53 -0000 DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=s1024; d=yahoo.es; h=Received:X-Yahoo-SMTP:X-YMail-OSG:X-Yahoo-Newman-Property:From:To:Cc:Subject:Date:Message-Id:X-Mailer:In-Reply-To:References; b=sbir/0DCLOrmKFULZD8DAsQT4ZDzWhLPqOfrmZLsBLqlIABtu9ZxTSfxxUtjBendbVaiZe8Bnnwev2fVAGfJwYWbKww6UULWP9BNt7siFxAkzXeJKMIg+S7yoS2k0bhsNo8poZvr50ZKL/TyoR2+nwD6+uDBuWMonso+j+t0uZ0= ; Received: from 41.Red-83-55-221.dynamicIP.rima-tde.net (albert_herranz@83.55.221.41 with login) by smtp123.mail.ukl.yahoo.com with SMTP; 12 Mar 2010 19:12:53 +0000 GMT X-Yahoo-SMTP: czee06uswBAtfIYshc.kP27UlfEXaxwWNSjJ X-YMail-OSG: 87yABtoVM1n.LykRNk7GSZOd1IOhXxbwaFump5Mr2dLZvx.hJSALMapYdu_q2Q.Y0HY8Devx3X62eA4vq2bjFpEUN7Yb6eYwakYHWyAyTkac5zQxJahkP4ERtVN7EERlDAZ.jO3m01QrosLSGKXok6gzBZ_LjZz9GiZfz1U2H5uovTBPkNzUm5cQK4HsGtN62KqzFBtbNVps5kC6maRBe39vwMje41PWR1tJwLmyuozQFEFM5V398xvieyyn X-Yahoo-Newman-Property: ymail-3 From: Albert Herranz To: linux-usb@vger.kernel.org, linuxppc-dev@lists.ozlabs.org Subject: [PATCH v4 02/11] powerpc: add min_direct_dma_addr Date: Fri, 12 Mar 2010 20:12:37 +0100 Message-Id: <1268421166-4791-3-git-send-email-albert_herranz@yahoo.es> X-Mailer: git-send-email 1.6.3.3 In-Reply-To: <1268421166-4791-1-git-send-email-albert_herranz@yahoo.es> References: <1268421166-4791-1-git-send-email-albert_herranz@yahoo.es> Cc: Albert Herranz X-BeenThere: linuxppc-dev@lists.ozlabs.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@lists.ozlabs.org Errors-To: linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@lists.ozlabs.org This patch adds min_direct_dma_addr to struct dev_archdata. min_direct_dma_addr can be used to define which is the minimum address suitable for a DMA operation. dma_capable() is updated to use this information in the SWIOTLB case. This will be used later to support the Nintendo Wii video game console which has limitations performing DMA to memory below 0x10000000 (MEM1). Signed-off-by: Albert Herranz --- arch/powerpc/include/asm/device.h | 1 + arch/powerpc/include/asm/dma-mapping.h | 2 ++ 2 files changed, 3 insertions(+), 0 deletions(-) diff --git a/arch/powerpc/include/asm/device.h b/arch/powerpc/include/asm/device.h index 6d94d27..23f0009 100644 --- a/arch/powerpc/include/asm/device.h +++ b/arch/powerpc/include/asm/device.h @@ -27,6 +27,7 @@ struct dev_archdata { #ifdef CONFIG_SWIOTLB dma_addr_t max_direct_dma_addr; + dma_addr_t min_direct_dma_addr; #endif }; diff --git a/arch/powerpc/include/asm/dma-mapping.h b/arch/powerpc/include/asm/dma-mapping.h index 18ecec8..eda3ebe 100644 --- a/arch/powerpc/include/asm/dma-mapping.h +++ b/arch/powerpc/include/asm/dma-mapping.h @@ -193,6 +193,8 @@ static inline bool dma_capable(struct device *dev, dma_addr_t addr, size_t size) if (sd->max_direct_dma_addr && addr + size > sd->max_direct_dma_addr) return 0; + if (sd->min_direct_dma_addr && addr < sd->min_direct_dma_addr) + return 0; #endif if (!dev->dma_mask)