lkml.org 
[lkml]   [2015]   [Sep]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH v2 08/25] powerpc/8xx: Map IMMR area with 512k page at a fixed address
On Tue, Sep 22, 2015 at 06:50:44PM +0200, Christophe Leroy wrote:

> diff --git a/arch/powerpc/mm/pgtable_32.c b/arch/powerpc/mm/pgtable_32.c
> index 3fd9083..1f2fdbc 100644
> --- a/arch/powerpc/mm/pgtable_32.c
> +++ b/arch/powerpc/mm/pgtable_32.c
> @@ -49,6 +49,10 @@ EXPORT_SYMBOL(ioremap_bot); /* aka VMALLOC_END */
> #define HAVE_TLBCAM 1
> #endif
>
> +#if CONFIG_PPC_8xx
> +#define HAVE_LTLB 1
> +#endif
> +
> extern char etext[], _stext[];
>
> #ifdef HAVE_BATS
> @@ -67,6 +71,14 @@ extern unsigned long p_mapped_by_tlbcam(phys_addr_t pa);
> #define p_mapped_by_tlbcam(x) (0UL)
> #endif /* HAVE_TLBCAM */
>
> +#ifdef HAVE_LTLB
> +phys_addr_t v_mapped_by_ltlb(unsigned long va);
> +unsigned long p_mapped_by_ltlb(phys_addr_t pa);
> +#else /* !HAVE_LTLB */
> +#define v_mapped_by_ltlb(x) (0UL)
> +#define p_mapped_by_ltlb(x) (0UL)
> +#endif /* HAVE_LTLB */
> +
> static inline unsigned long p_mapped_by_other(phys_addr_t pa)
> {
> unsigned long v;
> @@ -75,6 +87,10 @@ static inline unsigned long p_mapped_by_other(phys_addr_t pa)
> if (v /*&& p_mapped_by_bats(p+size-1)*/)
> return v;
>
> + v = p_mapped_by_ltlb(pa);
> + if (v)
> + return v;
> +
> return p_mapped_by_tlbcam(pa);
> }
>
> @@ -86,6 +102,10 @@ static inline phys_addr_t v_mapped_by_other(unsigned long va)
> if (p)
> return p;
>
> + p = v_mapped_by_ltlb(va);
> + if (p)
> + return p;
> +
> return v_mapped_by_tlbcam(va);
> }

Since there is no kernel with more than one of {bats,ltlb,tlbcam} can we
just call it *_block_mapped() and have each subarch provide its
implementation (or stub) thereof?

-Scott


\
 
 \ /
  Last update: 2015-09-29 02:01    [W:0.392 / U:0.928 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site