~ubuntu-branches/ubuntu/precise/linux-linaro-u8500/precise

« back to all changes in this revision

Viewing changes to arch/arm/include/asm/proc-fns.h

  • Committer: Bazaar Package Importer
  • Author(s): John Rigby, Upstream Fixes, Andy Green, John Rigby
  • Date: 2011-04-14 12:16:06 UTC
  • Revision ID: james.westby@ubuntu.com-20110414121606-b77podkyqgr2oix7
Tags: 2.6.38-1002.3
[ Upstream Fixes ]

* MUSB: shutdown: Make sure block is awake before doing shutdown
  - LP: #745737
* Fixed gpio polarity of gpio USB-phy reset.
  - LP: #747639

[ Andy Green ]

* LINARO: SAUCE: disable CONFIG_OMAP_RESET_CLOCKS
  - LP: #752900

[ John Rigby ]

* Rebase to new upstreams:
  Linux v2.6.38.1
  linaro-linux-2.6.38-upstream-29Mar2011
  Ubuntu-2.6.38-7.35
* SAUCE: OMAP4: clock: wait for module to become accessible on
  a clk enable
  - LP: #745737
* Rebase to new upstreams:
  Linux v2.6.38.2
  linaro-linux-2.6.38-upstream-5Apr2011
  Ubuntu-2.6.38-8.41
  - LP: #732842
* Update configs for device tree, dvfs and lttng
* LINARO: add building of dtb's
* LINARO: SAUCE: Disable lowest operating freqs on omap34xx
  - LP: #732912

Show diffs side-by-side

added added

removed removed

Lines of Context:
13
13
 
14
14
#ifdef __KERNEL__
15
15
 
16
 
 
17
 
/*
18
 
 * Work out if we need multiple CPU support
19
 
 */
20
 
#undef MULTI_CPU
21
 
#undef CPU_NAME
22
 
 
23
 
/*
24
 
 * CPU_NAME - the prefix for CPU related functions
25
 
 */
26
 
 
27
 
#ifdef CONFIG_CPU_ARM610
28
 
# ifdef CPU_NAME
29
 
#  undef  MULTI_CPU
30
 
#  define MULTI_CPU
31
 
# else
32
 
#  define CPU_NAME cpu_arm6
33
 
# endif
34
 
#endif
35
 
 
36
 
#ifdef CONFIG_CPU_ARM7TDMI
37
 
# ifdef CPU_NAME
38
 
#  undef  MULTI_CPU
39
 
#  define MULTI_CPU
40
 
# else
41
 
#  define CPU_NAME cpu_arm7tdmi
42
 
# endif
43
 
#endif
44
 
 
45
 
#ifdef CONFIG_CPU_ARM710
46
 
# ifdef CPU_NAME
47
 
#  undef  MULTI_CPU
48
 
#  define MULTI_CPU
49
 
# else
50
 
#  define CPU_NAME cpu_arm7
51
 
# endif
52
 
#endif
53
 
 
54
 
#ifdef CONFIG_CPU_ARM720T
55
 
# ifdef CPU_NAME
56
 
#  undef  MULTI_CPU
57
 
#  define MULTI_CPU
58
 
# else
59
 
#  define CPU_NAME cpu_arm720
60
 
# endif
61
 
#endif
62
 
 
63
 
#ifdef CONFIG_CPU_ARM740T
64
 
# ifdef CPU_NAME
65
 
#  undef  MULTI_CPU
66
 
#  define MULTI_CPU
67
 
# else
68
 
#  define CPU_NAME cpu_arm740
69
 
# endif
70
 
#endif
71
 
 
72
 
#ifdef CONFIG_CPU_ARM9TDMI
73
 
# ifdef CPU_NAME
74
 
#  undef  MULTI_CPU
75
 
#  define MULTI_CPU
76
 
# else
77
 
#  define CPU_NAME cpu_arm9tdmi
78
 
# endif
79
 
#endif
80
 
 
81
 
#ifdef CONFIG_CPU_ARM920T
82
 
# ifdef CPU_NAME
83
 
#  undef  MULTI_CPU
84
 
#  define MULTI_CPU
85
 
# else
86
 
#  define CPU_NAME cpu_arm920
87
 
# endif
88
 
#endif
89
 
 
90
 
#ifdef CONFIG_CPU_ARM922T
91
 
# ifdef CPU_NAME
92
 
#  undef  MULTI_CPU
93
 
#  define MULTI_CPU
94
 
# else
95
 
#  define CPU_NAME cpu_arm922
96
 
# endif
97
 
#endif
98
 
 
99
 
#ifdef CONFIG_CPU_FA526
100
 
# ifdef CPU_NAME
101
 
#  undef  MULTI_CPU
102
 
#  define MULTI_CPU
103
 
# else
104
 
#  define CPU_NAME cpu_fa526
105
 
# endif
106
 
#endif
107
 
 
108
 
#ifdef CONFIG_CPU_ARM925T
109
 
# ifdef CPU_NAME
110
 
#  undef  MULTI_CPU
111
 
#  define MULTI_CPU
112
 
# else
113
 
#  define CPU_NAME cpu_arm925
114
 
# endif
115
 
#endif
116
 
 
117
 
#ifdef CONFIG_CPU_ARM926T
118
 
# ifdef CPU_NAME
119
 
#  undef  MULTI_CPU
120
 
#  define MULTI_CPU
121
 
# else
122
 
#  define CPU_NAME cpu_arm926
123
 
# endif
124
 
#endif
125
 
 
126
 
#ifdef CONFIG_CPU_ARM940T
127
 
# ifdef CPU_NAME
128
 
#  undef  MULTI_CPU
129
 
#  define MULTI_CPU
130
 
# else
131
 
#  define CPU_NAME cpu_arm940
132
 
# endif
133
 
#endif
134
 
 
135
 
#ifdef CONFIG_CPU_ARM946E
136
 
# ifdef CPU_NAME
137
 
#  undef  MULTI_CPU
138
 
#  define MULTI_CPU
139
 
# else
140
 
#  define CPU_NAME cpu_arm946
141
 
# endif
142
 
#endif
143
 
 
144
 
#ifdef CONFIG_CPU_SA110
145
 
# ifdef CPU_NAME
146
 
#  undef  MULTI_CPU
147
 
#  define MULTI_CPU
148
 
# else
149
 
#  define CPU_NAME cpu_sa110
150
 
# endif
151
 
#endif
152
 
 
153
 
#ifdef CONFIG_CPU_SA1100
154
 
# ifdef CPU_NAME
155
 
#  undef  MULTI_CPU
156
 
#  define MULTI_CPU
157
 
# else
158
 
#  define CPU_NAME cpu_sa1100
159
 
# endif
160
 
#endif
161
 
 
162
 
#ifdef CONFIG_CPU_ARM1020
163
 
# ifdef CPU_NAME
164
 
#  undef  MULTI_CPU
165
 
#  define MULTI_CPU
166
 
# else
167
 
#  define CPU_NAME cpu_arm1020
168
 
# endif
169
 
#endif
170
 
 
171
 
#ifdef CONFIG_CPU_ARM1020E
172
 
# ifdef CPU_NAME
173
 
#  undef  MULTI_CPU
174
 
#  define MULTI_CPU
175
 
# else
176
 
#  define CPU_NAME cpu_arm1020e
177
 
# endif
178
 
#endif
179
 
 
180
 
#ifdef CONFIG_CPU_ARM1022
181
 
# ifdef CPU_NAME
182
 
#  undef  MULTI_CPU
183
 
#  define MULTI_CPU
184
 
# else
185
 
#  define CPU_NAME cpu_arm1022
186
 
# endif
187
 
#endif
188
 
 
189
 
#ifdef CONFIG_CPU_ARM1026
190
 
# ifdef CPU_NAME
191
 
#  undef  MULTI_CPU
192
 
#  define MULTI_CPU
193
 
# else
194
 
#  define CPU_NAME cpu_arm1026
195
 
# endif
196
 
#endif
197
 
 
198
 
#ifdef CONFIG_CPU_XSCALE
199
 
# ifdef CPU_NAME
200
 
#  undef  MULTI_CPU
201
 
#  define MULTI_CPU
202
 
# else
203
 
#  define CPU_NAME cpu_xscale
204
 
# endif
205
 
#endif
206
 
 
207
 
#ifdef CONFIG_CPU_XSC3
208
 
# ifdef CPU_NAME
209
 
#  undef  MULTI_CPU
210
 
#  define MULTI_CPU
211
 
# else
212
 
#  define CPU_NAME cpu_xsc3
213
 
# endif
214
 
#endif
215
 
 
216
 
#ifdef CONFIG_CPU_MOHAWK
217
 
# ifdef CPU_NAME
218
 
#  undef  MULTI_CPU
219
 
#  define MULTI_CPU
220
 
# else
221
 
#  define CPU_NAME cpu_mohawk
222
 
# endif
223
 
#endif
224
 
 
225
 
#ifdef CONFIG_CPU_FEROCEON
226
 
# ifdef CPU_NAME
227
 
#  undef  MULTI_CPU
228
 
#  define MULTI_CPU
229
 
# else
230
 
#  define CPU_NAME cpu_feroceon
231
 
# endif
232
 
#endif
233
 
 
234
 
#if defined(CONFIG_CPU_V6) || defined(CONFIG_CPU_V6K)
235
 
# ifdef CPU_NAME
236
 
#  undef  MULTI_CPU
237
 
#  define MULTI_CPU
238
 
# else
239
 
#  define CPU_NAME cpu_v6
240
 
# endif
241
 
#endif
242
 
 
243
 
#ifdef CONFIG_CPU_V7
244
 
# ifdef CPU_NAME
245
 
#  undef  MULTI_CPU
246
 
#  define MULTI_CPU
247
 
# else
248
 
#  define CPU_NAME cpu_v7
249
 
# endif
250
 
#endif
 
16
#include <asm/glue-proc.h>
 
17
#include <asm/page.h>
251
18
 
252
19
#ifndef __ASSEMBLY__
253
20
 
 
21
struct mm_struct;
 
22
 
 
23
/*
 
24
 * Don't change this structure - ASM code relies on it.
 
25
 */
 
26
extern struct processor {
 
27
        /* MISC
 
28
         * get data abort address/flags
 
29
         */
 
30
        void (*_data_abort)(unsigned long pc);
 
31
        /*
 
32
         * Retrieve prefetch fault address
 
33
         */
 
34
        unsigned long (*_prefetch_abort)(unsigned long lr);
 
35
        /*
 
36
         * Set up any processor specifics
 
37
         */
 
38
        void (*_proc_init)(void);
 
39
        /*
 
40
         * Disable any processor specifics
 
41
         */
 
42
        void (*_proc_fin)(void);
 
43
        /*
 
44
         * Special stuff for a reset
 
45
         */
 
46
        void (*reset)(unsigned long addr) __attribute__((noreturn));
 
47
        /*
 
48
         * Idle the processor
 
49
         */
 
50
        int (*_do_idle)(void);
 
51
        /*
 
52
         * Processor architecture specific
 
53
         */
 
54
        /*
 
55
         * clean a virtual address range from the
 
56
         * D-cache without flushing the cache.
 
57
         */
 
58
        void (*dcache_clean_area)(void *addr, int size);
 
59
 
 
60
        /*
 
61
         * Set the page table
 
62
         */
 
63
        void (*switch_mm)(unsigned long pgd_phys, struct mm_struct *mm);
 
64
        /*
 
65
         * Set a possibly extended PTE.  Non-extended PTEs should
 
66
         * ignore 'ext'.
 
67
         */
 
68
        void (*set_pte_ext)(pte_t *ptep, pte_t pte, unsigned int ext);
 
69
 
 
70
        /* Suspend/resume */
 
71
        unsigned int suspend_size;
 
72
        void (*do_suspend)(void *);
 
73
        void (*do_resume)(void *);
 
74
} processor;
 
75
 
254
76
#ifndef MULTI_CPU
255
 
#include <asm/cpu-single.h>
 
77
extern void cpu_proc_init(void);
 
78
extern void cpu_proc_fin(void);
 
79
extern int cpu_do_idle(void);
 
80
extern void cpu_dcache_clean_area(void *, int);
 
81
extern void cpu_do_switch_mm(unsigned long pgd_phys, struct mm_struct *mm);
 
82
extern void cpu_set_pte_ext(pte_t *ptep, pte_t pte, unsigned int ext);
 
83
extern void cpu_reset(unsigned long addr) __attribute__((noreturn));
256
84
#else
257
 
#include <asm/cpu-multi32.h>
 
85
#define cpu_proc_init()                 processor._proc_init()
 
86
#define cpu_proc_fin()                  processor._proc_fin()
 
87
#define cpu_reset(addr)                 processor.reset(addr)
 
88
#define cpu_do_idle()                   processor._do_idle()
 
89
#define cpu_dcache_clean_area(addr,sz)  processor.dcache_clean_area(addr,sz)
 
90
#define cpu_set_pte_ext(ptep,pte,ext)   processor.set_pte_ext(ptep,pte,ext)
 
91
#define cpu_do_switch_mm(pgd,mm)        processor.switch_mm(pgd,mm)
258
92
#endif
259
93
 
 
94
extern void cpu_resume(void);
 
95
 
260
96
#include <asm/memory.h>
261
97
 
262
98
#ifdef CONFIG_MMU