lkml.org 
[lkml]   [2013]   [Jul]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH] include/asm-generic/io.h: add dummy fuctions to support 'COMPILE_TEST' in 'asm-generic'.
    'asm-generic' need provide necessary configuration checking, if can't
    pass checking, 'asm-generic' shouldn't implement it.

    For 'COMPILE_TEST', according to its help contents, 'asm-generic' need
    let it pass configuration checking, and provide related dummy contents
    for it.

    Part of 'COMPLE_TEST' help contents in "init/Kconfig":

    "...Despite they cannot be loaded there (or even when they load they cannot be used due to missing HW support)..."


    Signed-off-by: Chen Gang <gang.chen@asianux.com>
    ---
    include/asm-generic/io.h | 22 ++++++++++++++++++----
    1 files changed, 18 insertions(+), 4 deletions(-)

    diff --git a/include/asm-generic/io.h b/include/asm-generic/io.h
    index d5afe96..301ce80 100644
    --- a/include/asm-generic/io.h
    +++ b/include/asm-generic/io.h
    @@ -303,13 +303,18 @@ static inline void *phys_to_virt(unsigned long address)
    /*
    * Change "struct page" to physical address.
    *
    - * This implementation is for the no-MMU case only... if you have an MMU
    - * you'll need to provide your own definitions.
    + * This for the no-MMU, or no-IOMEM but still try to COMPILE_TEST cases.
    + * if you have an MMU and IOMEM, you'll need to provide your own definitions.
    */
    -#ifndef CONFIG_MMU
    +#if !defined(CONFIG_MMU) || \
    + (!defined(CONFIG_HAS_IOMEM) && defined(CONFIG_COMPILE_TEST))
    static inline void __iomem *ioremap(phys_addr_t offset, unsigned long size)
    {
    +#if !defined(CONFIG_MMU)
    return (void __iomem*) (unsigned long)offset;
    +#else
    + return NULL;
    +#endif
    }

    #define __ioremap(offset, size, flags) ioremap(offset, size)
    @@ -325,7 +330,7 @@ static inline void __iomem *ioremap(phys_addr_t offset, unsigned long size)
    static inline void iounmap(void __iomem *addr)
    {
    }
    -#endif /* CONFIG_MMU */
    +#endif /* !CONFIG_MMU || (!CONFIG_HAS_IOMEM && CONFIG_COMPILE_TEST) */

    #ifdef CONFIG_HAS_IOPORT
    #ifndef CONFIG_GENERIC_IOMAP
    @@ -341,6 +346,15 @@ static inline void ioport_unmap(void __iomem *p)
    extern void __iomem *ioport_map(unsigned long port, unsigned int nr);
    extern void ioport_unmap(void __iomem *p);
    #endif /* CONFIG_GENERIC_IOMAP */
    +#elif defined(CONFIG_COMPILE_TEST) /* CONFIG_HAS_IOPORT */
    +static inline void __iomem *ioport_map(unsigned long port, unsigned int nr)
    +{
    + return NULL;
    +}
    +
    +static inline void ioport_unmap(void __iomem *p)
    +{
    +}
    #endif /* CONFIG_HAS_IOPORT */

    #ifndef xlate_dev_kmem_ptr
    --
    1.7.7.6

    \
     
     \ /
      Last update: 2013-07-02 05:01    [W:0.025 / U:64.508 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site