lkml.org 
[lkml]   [2004]   [Feb]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: dmapool (was: Re: Linux 2.6.3-rc2)
    On Tue, Feb 10, 2004 at 02:55:58PM +0000, Christoph Hellwig wrote:
    > On Tue, Feb 10, 2004 at 03:32:47PM +0100, Geert Uytterhoeven wrote:
    > > This patch seems to fix the problem (all offending platforms include
    > > <asm/generic.h> if CONFIG_PCI only):
    >
    > Umm, no the whole point of the dmapool is that it's not pci-dependent.
    > Just fix your arch to have proper stub dma_ routines. There were at
    > least two headsups during 2.5 and 2.6-test that this will be required.

    Exactly. Why is your arch including a header file that you can't build?

    How about dropping this into your arch if you can't use the
    include/asm-generic/dma-mapping.h file. Or I can add it as
    include/asm-generic/dma-mapping-broken.h and you can repoint your arch
    to use it. Which would be easier for you?

    thanks,

    greg k-h


    -----


    /* This is used for archs that do not support dma */

    #ifndef _ASM_DMA_MAPPING_H
    #define _ASM_DMA_MAPPING_H

    static inline int
    dma_supported(struct device *dev, u64 mask)
    {
    BUG();
    }

    static inline int
    dma_set_mask(struct device *dev, u64 dma_mask)
    {
    BUG();
    }

    static inline void *
    dma_alloc_coherent(struct device *dev, size_t size, dma_addr_t *dma_handle,
    int flag)
    {
    BUG();
    }

    static inline void
    dma_free_coherent(struct device *dev, size_t size, void *cpu_addr,
    dma_addr_t dma_handle)
    {
    BUG();
    }

    static inline dma_addr_t
    dma_map_single(struct device *dev, void *cpu_addr, size_t size,
    enum dma_data_direction direction)
    {
    BUG();
    }

    static inline void
    dma_unmap_single(struct device *dev, dma_addr_t dma_addr, size_t size,
    enum dma_data_direction direction)
    {
    BUG();
    }

    static inline dma_addr_t
    dma_map_page(struct device *dev, struct page *page,
    unsigned long offset, size_t size,
    enum dma_data_direction direction)
    {
    BUG();
    }

    static inline void
    dma_unmap_page(struct device *dev, dma_addr_t dma_address, size_t size,
    enum dma_data_direction direction)
    {
    BUG();
    }

    static inline int
    dma_map_sg(struct device *dev, struct scatterlist *sg, int nents,
    enum dma_data_direction direction)
    {
    BUG();
    }

    static inline void
    dma_unmap_sg(struct device *dev, struct scatterlist *sg, int nhwentries,
    enum dma_data_direction direction)
    {
    BUG();
    }

    static inline void
    dma_sync_single(struct device *dev, dma_addr_t dma_handle, size_t size,
    enum dma_data_direction direction)
    {
    BUG();
    }

    static inline void
    dma_sync_sg(struct device *dev, struct scatterlist *sg, int nelems,
    enum dma_data_direction direction)
    {
    BUG();
    }

    #define dma_alloc_noncoherent(d, s, h, f) dma_alloc_coherent(d, s, h, f)
    #define dma_free_noncoherent(d, s, v, h) dma_free_coherent(d, s, v, h)
    #define dma_is_consistent(d) (1)

    static inline int
    dma_get_cache_alignment(void)
    {
    BUG();
    }

    static inline void
    dma_sync_single_range(struct device *dev, dma_addr_t dma_handle,
    unsigned long offset, size_t size,
    enum dma_data_direction direction)
    {
    BUG();
    }

    static inline void
    dma_cache_sync(void *vaddr, size_t size,
    enum dma_data_direction direction)
    {
    BUG();
    }

    #endif

    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2005-03-22 14:00    [W:0.027 / U:1.056 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site