From: dave.martin@linaro.org (Dave Martin)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v4 26/40] ARM: mm: proc-feroceon: Use the new processor struct macros
Date: Thu, 7 Jul 2011 15:27:33 +0100 [thread overview]
Message-ID: <1310048867-14172-27-git-send-email-dave.martin@linaro.org> (raw)
In-Reply-To: <1310048867-14172-1-git-send-email-dave.martin@linaro.org>
Signed-off-by: Dave Martin <dave.martin@linaro.org>
Acked-by: Nicolas Pitre <nicolas.pitre@linaro.org>
---
arch/arm/mm/proc-feroceon.S | 202 +++++++++++--------------------------------
1 files changed, 49 insertions(+), 153 deletions(-)
diff --git a/arch/arm/mm/proc-feroceon.S b/arch/arm/mm/proc-feroceon.S
index d3883ee..8a6c2f7 100644
--- a/arch/arm/mm/proc-feroceon.S
+++ b/arch/arm/mm/proc-feroceon.S
@@ -411,29 +411,28 @@ ENTRY(feroceon_dma_unmap_area)
mov pc, lr
ENDPROC(feroceon_dma_unmap_area)
-ENTRY(feroceon_cache_fns)
- .long feroceon_flush_icache_all
- .long feroceon_flush_kern_cache_all
- .long feroceon_flush_user_cache_all
- .long feroceon_flush_user_cache_range
- .long feroceon_coherent_kern_range
- .long feroceon_coherent_user_range
- .long feroceon_flush_kern_dcache_area
- .long feroceon_dma_map_area
- .long feroceon_dma_unmap_area
- .long feroceon_dma_flush_range
-
-ENTRY(feroceon_range_cache_fns)
- .long feroceon_flush_icache_all
- .long feroceon_flush_kern_cache_all
- .long feroceon_flush_user_cache_all
- .long feroceon_flush_user_cache_range
- .long feroceon_coherent_kern_range
- .long feroceon_coherent_user_range
- .long feroceon_range_flush_kern_dcache_area
- .long feroceon_range_dma_map_area
- .long feroceon_dma_unmap_area
- .long feroceon_range_dma_flush_range
+ @ define struct cpu_cache_fns (see <asm/cacheflush.h> and proc-macros.S)
+ define_cache_functions feroceon
+
+.macro range_alias basename
+ .globl feroceon_range_\basename
+ .type feroceon_range_\basename , %function
+ .equ feroceon_range_\basename , feroceon_\basename
+.endm
+
+/*
+ * Most of the cache functions are unchanged for this case.
+ * Export suitable alias symbols for the unchanged functions:
+ */
+ range_alias flush_icache_all
+ range_alias flush_user_cache_all
+ range_alias flush_kern_cache_all
+ range_alias flush_user_cache_range
+ range_alias coherent_kern_range
+ range_alias coherent_user_range
+ range_alias dma_unmap_area
+
+ define_cache_functions feroceon_range
.align 5
ENTRY(cpu_feroceon_dcache_clean_area)
@@ -539,93 +538,27 @@ feroceon_crval:
__INITDATA
-/*
- * Purpose : Function pointers used to access above functions - all calls
- * come through these
- */
- .type feroceon_processor_functions, #object
-feroceon_processor_functions:
- .word v5t_early_abort
- .word legacy_pabort
- .word cpu_feroceon_proc_init
- .word cpu_feroceon_proc_fin
- .word cpu_feroceon_reset
- .word cpu_feroceon_do_idle
- .word cpu_feroceon_dcache_clean_area
- .word cpu_feroceon_switch_mm
- .word cpu_feroceon_set_pte_ext
- .word 0
- .word 0
- .word 0
- .size feroceon_processor_functions, . - feroceon_processor_functions
+ @ define struct processor (see <asm/proc-fns.h> and proc-macros.S)
+ define_processor_functions feroceon, dabort=v5t_early_abort, pabort=legacy_pabort
.section ".rodata"
- .type cpu_arch_name, #object
-cpu_arch_name:
- .asciz "armv5te"
- .size cpu_arch_name, . - cpu_arch_name
-
- .type cpu_elf_name, #object
-cpu_elf_name:
- .asciz "v5"
- .size cpu_elf_name, . - cpu_elf_name
-
- .type cpu_feroceon_name, #object
-cpu_feroceon_name:
- .asciz "Feroceon"
- .size cpu_feroceon_name, . - cpu_feroceon_name
-
- .type cpu_88fr531_name, #object
-cpu_88fr531_name:
- .asciz "Feroceon 88FR531-vd"
- .size cpu_88fr531_name, . - cpu_88fr531_name
-
- .type cpu_88fr571_name, #object
-cpu_88fr571_name:
- .asciz "Feroceon 88FR571-vd"
- .size cpu_88fr571_name, . - cpu_88fr571_name
-
- .type cpu_88fr131_name, #object
-cpu_88fr131_name:
- .asciz "Feroceon 88FR131"
- .size cpu_88fr131_name, . - cpu_88fr131_name
+ string cpu_arch_name, "armv5te"
+ string cpu_elf_name, "v5"
+ string cpu_feroceon_name, "Feroceon"
+ string cpu_88fr531_name, "Feroceon 88FR531-vd"
+ string cpu_88fr571_name, "Feroceon 88FR571-vd"
+ string cpu_88fr131_name, "Feroceon 88FR131"
.align
.section ".proc.info.init", #alloc, #execinstr
-#ifdef CONFIG_CPU_FEROCEON_OLD_ID
- .type __feroceon_old_id_proc_info,#object
-__feroceon_old_id_proc_info:
- .long 0x41009260
- .long 0xff00fff0
- .long PMD_TYPE_SECT | \
- PMD_SECT_BUFFERABLE | \
- PMD_SECT_CACHEABLE | \
- PMD_BIT4 | \
- PMD_SECT_AP_WRITE | \
- PMD_SECT_AP_READ
- .long PMD_TYPE_SECT | \
- PMD_BIT4 | \
- PMD_SECT_AP_WRITE | \
- PMD_SECT_AP_READ
- b __feroceon_setup
- .long cpu_arch_name
- .long cpu_elf_name
- .long HWCAP_SWP|HWCAP_HALF|HWCAP_THUMB|HWCAP_FAST_MULT|HWCAP_EDSP
- .long cpu_feroceon_name
- .long feroceon_processor_functions
- .long v4wbi_tlb_fns
- .long feroceon_user_fns
- .long feroceon_cache_fns
- .size __feroceon_old_id_proc_info, . - __feroceon_old_id_proc_info
-#endif
-
- .type __88fr531_proc_info,#object
-__88fr531_proc_info:
- .long 0x56055310
- .long 0xfffffff0
+.macro feroceon_proc_info name:req, cpu_val:req, cpu_mask:req, cpu_name:req, cache:req
+ .type __\name\()_proc_info,#object
+__\name\()_proc_info:
+ .long \cpu_val
+ .long \cpu_mask
.long PMD_TYPE_SECT | \
PMD_SECT_BUFFERABLE | \
PMD_SECT_CACHEABLE | \
@@ -640,59 +573,22 @@ __88fr531_proc_info:
.long cpu_arch_name
.long cpu_elf_name
.long HWCAP_SWP|HWCAP_HALF|HWCAP_THUMB|HWCAP_FAST_MULT|HWCAP_EDSP
- .long cpu_88fr531_name
+ .long \cpu_name
.long feroceon_processor_functions
.long v4wbi_tlb_fns
.long feroceon_user_fns
- .long feroceon_cache_fns
- .size __88fr531_proc_info, . - __88fr531_proc_info
+ .long \cache
+ .size __\name\()_proc_info, . - __\name\()_proc_info
+.endm
- .type __88fr571_proc_info,#object
-__88fr571_proc_info:
- .long 0x56155710
- .long 0xfffffff0
- .long PMD_TYPE_SECT | \
- PMD_SECT_BUFFERABLE | \
- PMD_SECT_CACHEABLE | \
- PMD_BIT4 | \
- PMD_SECT_AP_WRITE | \
- PMD_SECT_AP_READ
- .long PMD_TYPE_SECT | \
- PMD_BIT4 | \
- PMD_SECT_AP_WRITE | \
- PMD_SECT_AP_READ
- b __feroceon_setup
- .long cpu_arch_name
- .long cpu_elf_name
- .long HWCAP_SWP|HWCAP_HALF|HWCAP_THUMB|HWCAP_FAST_MULT|HWCAP_EDSP
- .long cpu_88fr571_name
- .long feroceon_processor_functions
- .long v4wbi_tlb_fns
- .long feroceon_user_fns
- .long feroceon_range_cache_fns
- .size __88fr571_proc_info, . - __88fr571_proc_info
+#ifdef CONFIG_CPU_FEROCEON_OLD_ID
+ feroceon_proc_info feroceon_old_id, 0x41009260, 0xff00fff0, \
+ cpu_name=cpu_feroceon_name, cache=feroceon_cache_fns
+#endif
- .type __88fr131_proc_info,#object
-__88fr131_proc_info:
- .long 0x56251310
- .long 0xfffffff0
- .long PMD_TYPE_SECT | \
- PMD_SECT_BUFFERABLE | \
- PMD_SECT_CACHEABLE | \
- PMD_BIT4 | \
- PMD_SECT_AP_WRITE | \
- PMD_SECT_AP_READ
- .long PMD_TYPE_SECT | \
- PMD_BIT4 | \
- PMD_SECT_AP_WRITE | \
- PMD_SECT_AP_READ
- b __feroceon_setup
- .long cpu_arch_name
- .long cpu_elf_name
- .long HWCAP_SWP|HWCAP_HALF|HWCAP_THUMB|HWCAP_FAST_MULT|HWCAP_EDSP
- .long cpu_88fr131_name
- .long feroceon_processor_functions
- .long v4wbi_tlb_fns
- .long feroceon_user_fns
- .long feroceon_range_cache_fns
- .size __88fr131_proc_info, . - __88fr131_proc_info
+ feroceon_proc_info 88fr531, 0x56055310, 0xfffffff0, cpu_88fr531_name, \
+ cache=feroceon_cache_fns
+ feroceon_proc_info 88fr571, 0x56155710, 0xfffffff0, cpu_88fr571_name, \
+ cache=feroceon_range_cache_fns
+ feroceon_proc_info 88fr131, 0x56251310, 0xfffffff0, cpu_88fr131_name, \
+ cache=feroceon_range_cache_fns
--
1.7.4.1
next prev parent reply other threads:[~2011-07-07 14:27 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-07-07 14:27 [PATCH v4 00/40] ARM: mm: Add generic macros for declaring various CPU structs Dave Martin
2011-07-07 14:27 ` [PATCH v4 01/40] ARM: mm: proc-macros: Add generic proc/cache/tlb struct definition macros Dave Martin
2011-07-07 14:27 ` [PATCH v4 02/40] ARM: assembler.h: Add string declaration macro Dave Martin
2011-07-07 14:27 ` [PATCH v4 03/40] ARM: mm: cache-fa: Use the new processor struct macros Dave Martin
2011-07-07 14:27 ` [PATCH v4 04/40] ARM: mm: cache-v3: " Dave Martin
2011-07-07 14:27 ` [PATCH v4 05/40] ARM: mm: cache-v4: " Dave Martin
2011-07-07 14:27 ` [PATCH v4 06/40] ARM: mm: cache-v4wb: " Dave Martin
2011-07-07 14:27 ` [PATCH v4 07/40] ARM: mm: cache-v4wt: " Dave Martin
2011-07-07 14:27 ` [PATCH v4 08/40] ARM: mm: cache-v6: " Dave Martin
2011-07-07 14:27 ` [PATCH v4 09/40] ARM: mm: cache-v7: " Dave Martin
2011-07-07 14:27 ` [PATCH v4 10/40] ARM: mm: proc-arm1020: " Dave Martin
2011-07-08 11:01 ` Sergei Shtylyov
2011-07-08 11:11 ` Dave Martin
2011-07-07 14:27 ` [PATCH v4 11/40] ARM: mm: proc-arm1020e: " Dave Martin
2011-07-07 14:27 ` [PATCH v4 12/40] ARM: mm: proc-arm1022: " Dave Martin
2011-07-07 14:27 ` [PATCH v4 13/40] ARM: mm: proc-arm1026: " Dave Martin
2011-07-07 14:27 ` [PATCH v4 14/40] ARM: mm: proc-arm6_7: " Dave Martin
2011-07-07 14:27 ` [PATCH v4 15/40] ARM: mm: proc-arm720: " Dave Martin
2011-07-07 14:27 ` [PATCH v4 16/40] ARM: mm: proc-arm740: " Dave Martin
2011-07-07 14:27 ` [PATCH v4 17/40] ARM: mm: proc-arm7tdmi: " Dave Martin
2011-07-07 14:27 ` [PATCH v4 18/40] ARM: mm: proc-arm920: " Dave Martin
2011-07-07 14:27 ` [PATCH v4 19/40] ARM: mm: proc-arm922: " Dave Martin
2011-07-07 14:27 ` [PATCH v4 20/40] ARM: mm: proc-arm925: " Dave Martin
2011-07-07 14:27 ` [PATCH v4 21/40] ARM: mm: proc-arm926: " Dave Martin
2011-07-07 14:27 ` [PATCH v4 22/40] ARM: mm: proc-arm940: " Dave Martin
2011-07-07 14:27 ` [PATCH v4 23/40] ARM: mm: proc-arm946: " Dave Martin
2011-07-07 14:27 ` [PATCH v4 24/40] ARM: mm: proc-arm9tdmi: " Dave Martin
2011-07-07 14:27 ` [PATCH v4 25/40] ARM: mm: proc-fa526: " Dave Martin
2011-07-07 14:27 ` Dave Martin [this message]
2011-07-07 14:27 ` [PATCH v4 27/40] ARM: mm: proc-mohawk: " Dave Martin
2011-07-07 14:27 ` [PATCH v4 28/40] ARM: mm: proc-sa110: " Dave Martin
2011-07-07 14:27 ` [PATCH v4 29/40] ARM: mm: proc-sa1100: " Dave Martin
2011-07-07 14:27 ` [PATCH v4 30/40] ARM: mm: proc-v6: " Dave Martin
2011-07-07 14:27 ` [PATCH v4 31/40] ARM: mm: proc-v7: " Dave Martin
2011-07-07 14:27 ` [PATCH v4 32/40] ARM: mm: proc-xsc3: Use new generic struct definition macros Dave Martin
2011-07-07 14:27 ` [PATCH v4 33/40] ARM: mm: proc-xscale: " Dave Martin
2011-07-07 14:27 ` [PATCH v4 34/40] ARM: mm: tlb-fa: Use the new processor struct macros Dave Martin
2011-07-07 14:27 ` [PATCH v4 35/40] ARM: mm: tlb-v3: " Dave Martin
2011-07-07 14:27 ` [PATCH v4 36/40] ARM: mm: tlb-v4: " Dave Martin
2011-07-07 14:27 ` [PATCH v4 37/40] ARM: mm: tlb-v4wb: " Dave Martin
2011-07-07 14:27 ` [PATCH v4 38/40] ARM: mm: tlb-v4wbi: " Dave Martin
2011-07-07 14:27 ` [PATCH v4 39/40] ARM: mm: tlb-v6: " Dave Martin
2011-07-07 14:27 ` [PATCH v4 40/40] ARM: mm: tlb-v7: " Dave Martin
2011-07-07 16:22 ` [PATCH v4 00/40] ARM: mm: Add generic macros for declaring various CPU structs Russell King - ARM Linux
2011-07-07 16:37 ` Dave Martin
2011-07-07 17:28 ` Will Deacon
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1310048867-14172-27-git-send-email-dave.martin@linaro.org \
--to=dave.martin@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).