From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754780Ab0BIOQr (ORCPT ); Tue, 9 Feb 2010 09:16:47 -0500 Received: from sh.osrg.net ([192.16.179.4]:49154 "EHLO sh.osrg.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754453Ab0BIOQq (ORCPT ); Tue, 9 Feb 2010 09:16:46 -0500 From: e@lab.ntt.co.jp To: linux-kernel@vger.kernel.org Cc: akpm@linux-foundation.org, fujita.tomonori@lab.ntt.co.jp, x86@kernel.org, Richard Henderson , Ivan Kokshaysky , Matt Turner , Russell King , David Howells , Tony Luck , Ralf Baechle , Kyle McMartin , Helge Deller , James Bottomley , Benjamin Herrenschmidt , Paul Mundt , "David S. Miller" , Chris Zankel Subject: [PATCH -mm 01/12] adds include/asm-generic/pci-dma-common.h Date: Tue, 9 Feb 2010 22:35:13 +0900 Message-Id: <1265722524-9493-2-git-send-email-e> X-Mailer: git-send-email 1.5.6.5 In-Reply-To: <1265722524-9493-1-git-send-email-e> References: <1265722524-9493-1-git-send-email-e> X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-3.0 (sh.osrg.net [192.16.179.4]); Tue, 09 Feb 2010 23:07:46 +0900 (JST) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: FUJITA Tomonori This patch adds include/asm-generic/pci-dma-common.h that defines the pci_unmap state API: DECLARE_PCI_UNMAP_ADDR(ADDR_NAME) DECLARE_PCI_UNMAP_LEN(LEN_NAME) pci_unmap_addr(PTR, ADDR_NAME) pci_unmap_addr_set(PTR, ADDR_NAME, VAL) pci_unmap_len(PTR, LEN_NAME) pci_unmap_len_set(PTR, LEN_NAME, VAL) This enables us to remove lots of the duplication in architecture implementations since there are only two ways to define the API. If architectures define HAVE_ARCH_PCI_UNMAP, they get the real definition of pci_unmap state API. If not, they get the noop definition. In the long term, it's better to replace the API with the generic device model API such as DECLARE_DMA_UNMAP_ADDR. We can map the API to the generic one (like dma-mapping-compat.h does). This patch also makes the migration process easier. Signed-off-by: FUJITA Tomonori Cc: x86@kernel.org Cc: Richard Henderson Cc: Ivan Kokshaysky Cc: Matt Turner Cc: Russell King Cc: David Howells Cc: Tony Luck Cc: Ralf Baechle Cc: Kyle McMartin Cc: Helge Deller Cc: James Bottomley Cc: Benjamin Herrenschmidt Cc: Paul Mundt Cc: David S. Miller Cc: Chris Zankel --- include/asm-generic/pci-dma-common.h | 20 ++++++++++++++++++++ 1 files changed, 20 insertions(+), 0 deletions(-) create mode 100644 include/asm-generic/pci-dma-common.h diff --git a/include/asm-generic/pci-dma-common.h b/include/asm-generic/pci-dma-common.h new file mode 100644 index 0000000..f688bff --- /dev/null +++ b/include/asm-generic/pci-dma-common.h @@ -0,0 +1,20 @@ +#ifndef _ASM_GENERIC_PCI_DMA_COMMON_H +#define _ASM_GENERIC_PCI_DMA_COMMON_H + +#ifdef HAVE_ARCH_PCI_UNMAP +#define DECLARE_PCI_UNMAP_ADDR(ADDR_NAME) dma_addr_t ADDR_NAME; +#define DECLARE_PCI_UNMAP_LEN(LEN_NAME) __u32 LEN_NAME; +#define pci_unmap_addr(PTR, ADDR_NAME) ((PTR)->ADDR_NAME) +#define pci_unmap_addr_set(PTR, ADDR_NAME, VAL) (((PTR)->ADDR_NAME) = (VAL)) +#define pci_unmap_len(PTR, LEN_NAME) ((PTR)->LEN_NAME) +#define pci_unmap_len_set(PTR, LEN_NAME, VAL) (((PTR)->LEN_NAME) = (VAL)) +#else +#define DECLARE_PCI_UNMAP_ADDR(ADDR_NAME) +#define DECLARE_PCI_UNMAP_LEN(LEN_NAME) +#define pci_unmap_addr(PTR, ADDR_NAME) (0) +#define pci_unmap_addr_set(PTR, ADDR_NAME, VAL) do { } while (0) +#define pci_unmap_len(PTR, LEN_NAME) (0) +#define pci_unmap_len_set(PTR, LEN_NAME, VAL) do { } while (0) +#endif + +#endif -- 1.5.6.5