~ubuntu-branches/ubuntu/precise/linux-lowlatency/precise

« back to all changes in this revision

Viewing changes to arch/arm/mach-iop33x/include/mach/entry-macro.S

  • Committer: Package Import Robot
  • Author(s): Alessio Igor Bogani
  • Date: 2011-10-26 11:13:05 UTC
  • Revision ID: package-import@ubuntu.com-20111026111305-tz023xykf0i6eosh
Tags: upstream-3.2.0
ImportĀ upstreamĀ versionĀ 3.2.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * arch/arm/mach-iop33x/include/mach/entry-macro.S
 
3
 *
 
4
 * Low-level IRQ helper macros for IOP33x-based platforms
 
5
 *
 
6
 * This file is licensed under the terms of the GNU General Public
 
7
 * License version 2. This program is licensed "as is" without any
 
8
 * warranty of any kind, whether express or implied.
 
9
 */
 
10
#include <mach/iop33x.h>
 
11
 
 
12
        .macro  disable_fiq
 
13
        .endm
 
14
 
 
15
        .macro get_irqnr_preamble, base, tmp
 
16
        mrc     p15, 0, \tmp, c15, c1, 0
 
17
        orr     \tmp, \tmp, #(1 << 6)
 
18
        mcr     p15, 0, \tmp, c15, c1, 0        @ Enable cp6 access
 
19
        mrc     p15, 0, \tmp, c15, c1, 0
 
20
        mov     \tmp, \tmp
 
21
        sub     pc, pc, #4                      @ cp_wait
 
22
        .endm
 
23
 
 
24
        .macro  get_irqnr_and_base, irqnr, irqstat, base, tmp
 
25
        mrc     p6, 0, \irqstat, c14, c0, 0     @ Read IINTVEC
 
26
        cmp     \irqstat, #0
 
27
        mrceq   p6, 0, \irqstat, c14, c0, 0     @ erratum 63 workaround
 
28
        adds    \irqnr, \irqstat, #1
 
29
        movne   \irqnr, \irqstat, lsr #2
 
30
        .endm
 
31
 
 
32
        .macro arch_ret_to_user, tmp1, tmp2
 
33
        mrc     p15, 0, \tmp1, c15, c1, 0
 
34
        ands    \tmp2, \tmp1, #(1 << 6)
 
35
        bicne   \tmp1, \tmp1, #(1 << 6)
 
36
        mcrne   p15, 0, \tmp1, c15, c1, 0       @ Disable cp6 access
 
37
        .endm