13 Mar, 2010

2 commits

  • Adds the following macros:

    DECLARE_DMA_UNMAP_ADDR(ADDR_NAME)
    DECLARE_DMA_UNMAP_LEN(LEN_NAME)
    dma_unmap_addr(PTR, ADDR_NAME)
    dma_unmap_addr_set(PTR, ADDR_NAME, VAL)
    dma_unmap_len(PTR, LEN_NAME)
    dma_unmap_len_set(PTR, LEN_NAME, VAL)

    The API corresponds to the pci_unmap state API. We'll move to this new
    generic API from the PCI specific API in the long term. As
    include/asm-generic/pci-dma-compat.h does, the pci_unmap API simply calls
    the new generic API for some time.

    Signed-off-by: FUJITA Tomonori
    Cc: James Bottomley
    Cc: David S. Miller
    Cc: Jesse Barnes
    Cc: Arnd Bergmann
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    FUJITA Tomonori
     
  • This patch adds include/linux/pci-dma.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 CONFIG_NEED_DMA_MAP_STATE, 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. We can remove this file after the migration.

    It might be simpler to add the API to include/linux/pci.h but looks it's
    already too large. We'll remove pci-dma.h after finishing moving to the
    generic device model. So I put the API to a separate file.

    Signed-off-by: FUJITA Tomonori
    Cc: Ingo Molnar
    Cc: Thomas Gleixner
    Cc: "H. Peter Anvin"
    Cc: Richard Henderson
    Cc: Ivan Kokshaysky
    Cc: Matt Turner
    Acked-by: Russell King
    Acked-by: 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
    Acked-by: Arnd Bergmann
    Cc: Jesse Barnes
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    FUJITA Tomonori