lkml.org 
[lkml]   [2007]   [Dec]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[RFC PATCH 06/12] PAT 64b: Add ioremap_wc support
    Forward port of ioremap.patch to x86 tree.

    Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
    Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
    ---

    Index: linux-2.6.24-rc4/arch/x86/mm/ioremap_64.c
    ===================================================================
    --- linux-2.6.24-rc4.orig/arch/x86/mm/ioremap_64.c 2007-12-11 15:48:35.000000000 -0800
    +++ linux-2.6.24-rc4/arch/x86/mm/ioremap_64.c 2007-12-11 15:49:52.000000000 -0800
    @@ -147,7 +147,7 @@
    EXPORT_SYMBOL(__ioremap);

    /**
    - * ioremap_nocache - map bus memory into CPU space
    + * ioremap_nocache - map bus memory into CPU space uncached
    * @offset: bus address of the memory
    * @size: size of the resource to map
    *
    @@ -175,6 +175,30 @@
    EXPORT_SYMBOL(ioremap_nocache);

    /**
    + * ioremap_wc - map bus memory into CPU space write combined
    + * @offset: bus address of the memory
    + * @size: size of the resource to map
    + *
    + * ioremap_wc performs a platform specific sequence of operations to
    + * make bus memory CPU accessible via the readb/readw/readl/writeb/
    + * writew/writel functions and the other mmio helpers. The returned
    + * address is not guaranteed to be usable directly as a virtual
    + * address.
    + *
    + * This version of ioremap ensures that the memory is marked write combining.
    + * Write combining allows faster writes to some hardware devices.
    + * See also iounmap_nocache for more details.
    + *
    + * Must be freed with iounmap.
    + */
    +void __iomem *ioremap_wc(unsigned long phys_addr, unsigned long size)
    +{
    + return __ioremap(phys_addr, size, _PAGE_WC);
    +}
    +EXPORT_SYMBOL(ioremap_wc);
    +
    +
    +/**
    * iounmap - Free a IO remapping
    * @addr: virtual address from ioremap_*
    *
    Index: linux-2.6.24-rc4/include/asm-x86/io_64.h
    ===================================================================
    --- linux-2.6.24-rc4.orig/include/asm-x86/io_64.h 2007-12-11 14:24:56.000000000 -0800
    +++ linux-2.6.24-rc4/include/asm-x86/io_64.h 2007-12-11 15:49:52.000000000 -0800
    @@ -142,7 +142,8 @@
    * it's useful if some control registers are in such an area and write combining
    * or read caching is not desirable:
    */
    -extern void __iomem * ioremap_nocache (unsigned long offset, unsigned long size);
    +extern void __iomem * ioremap_nocache(unsigned long offset, unsigned long size);
    +extern void __iomem * ioremap_wc(unsigned long offset, unsigned long size);
    extern void iounmap(volatile void __iomem *addr);
    extern void __iomem *fix_ioremap(unsigned idx, unsigned long phys);

    --


    \
     
     \ /
      Last update: 2007-12-14 01:01    [W:0.023 / U:0.140 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site