]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu
authorLinus Torvalds <torvalds@linux-foundation.org>
Tue, 18 Jan 2011 16:05:20 +0000 (08:05 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 18 Jan 2011 16:05:20 +0000 (08:05 -0800)
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu: (25 commits)
  m68knommu: fix broken setting of irq_chip and handler
  m68knommu: switch to using -mcpu= flags for ColdFire targets
  m68knommu: arch/m68knommu/Kconfig whitespace cleanup
  m68knommu: create optimal separate instruction and data cache for ColdFire
  m68knommu: support ColdFire caches that do copyback and write-through
  m68knommu: support version 2 ColdFire split cache
  m68knommu: make cache push code ColdFire generic
  m68knommu: clean up ColdFire cache control code
  m68knommu: move inclusion of ColdFire v4 cache registers
  m68knommu: merge bit definitions for version 3 ColdFire cache controller
  m68knommu: create bit definitions for the version 2 ColdFire cache controller
  m68knommu: remove empty __iounmap() it is no used
  m68knommu: remove kernel_map() code, it is not used
  m68knommu: remove do_page_fault(), it is not used
  m68knommu: use user stack pointer hardware on some ColdFire cores
  m68knommu: remove command line printing DEBUG
  m68knommu: remove fasthandler interrupt code
  m68knommu: move UART addressing to part specific includes
  m68knommu: fix clock rate value reported for ColdFire 54xx parts
  m68knommu: move ColdFire CPU names into their headers
  ...

1  2 
arch/m68k/include/asm/m54xxgpt.h
arch/m68knommu/platform/coldfire/entry.S

index 33b2eef90f0a99f913873922e166233b48c5c6e6,47ae5cfec66b06d53eae7ee65f5b56b506c5b398..df75dd87ae7ac7de805a0d2b56a9a945b5285892
@@@ -1,13 -1,13 +1,13 @@@
  /*
-  * File:      m548xgpt.h
-  * Purpose:   Register and bit definitions for the MCF548X
+  * File:      m54xxgpt.h
+  * Purpose:   Register and bit definitions for the MCF54XX
   *
   * Notes:
   *
   */
  
- #ifndef m548xgpt_h
- #define m548xgpt_h
+ #ifndef m54xxgpt_h
+ #define m54xxgpt_h
  
  /*********************************************************************
  *
  #define MCF_GPT_GMS_GPIO_INPUT     (0x00000000)
  #define MCF_GPT_GMS_GPIO_OUTLO     (0x00000020)
  #define MCF_GPT_GMS_GPIO_OUTHI     (0x00000030)
 +#define MCF_GPT_GMS_GPIO_MASK      (0x00000030)
  #define MCF_GPT_GMS_TMS_DISABLE    (0x00000000)
  #define MCF_GPT_GMS_TMS_INCAPT     (0x00000001)
  #define MCF_GPT_GMS_TMS_OUTCAPT    (0x00000002)
  #define MCF_GPT_GMS_TMS_PWM        (0x00000003)
  #define MCF_GPT_GMS_TMS_GPIO       (0x00000004)
 +#define MCF_GPT_GMS_TMS_MASK       (0x00000007)
  
  /* Bit definitions and macros for MCF_GPT_GCIR */
  #define MCF_GPT_GCIR_CNT(x)        (((x)&0x0000FFFF)<<0)
@@@ -87,4 -85,4 +87,4 @@@
  
  /********************************************************************/
  
- #endif /* m548xgpt_h */
+ #endif /* m54xxgpt_h */
index e1debc8285efa648a65640e303d18d0f8434c4b9,f90e6173ccd4a56ce27e375b28f33cbfaf44a5a6..4ddfc3da70d88103392970334435c570ef450209
  #include <asm/asm-offsets.h>
  #include <asm/entry.h>
  
+ #ifdef CONFIG_COLDFIRE_SW_A7
+ /*
+  *    Define software copies of the supervisor and user stack pointers.
+  */
  .bss
  sw_ksp:
  .long 0
  sw_usp:
  .long 0
+ #endif /* CONFIG_COLDFIRE_SW_A7 */
  
  .text
  
@@@ -51,7 -54,6 +54,6 @@@
  .globl ret_from_exception
  .globl ret_from_signal
  .globl sys_call_table
- .globl ret_from_interrupt
  .globl inthandler
  .globl fasthandler
  
@@@ -140,20 -142,7 +142,7 @@@ Luser_return
        jne     Lwork_to_do             /* still work to do */
  
  Lreturn:
-       move    #0x2700,%sr             /* disable intrs */
-       movel   sw_usp,%a0              /* get usp */
-       movel   %sp@(PT_OFF_PC),%a0@-   /* copy exception program counter */
-       movel   %sp@(PT_OFF_FORMATVEC),%a0@- /* copy exception format/vector/sr */
-       moveml  %sp@,%d1-%d5/%a0-%a2
-       lea     %sp@(32),%sp            /* space for 8 regs */
-       movel   %sp@+,%d0
-       addql   #4,%sp                  /* orig d0 */
-       addl    %sp@+,%sp               /* stk adj */
-       addql   #8,%sp                  /* remove exception */
-       movel   %sp,sw_ksp              /* save ksp */
-       subql   #8,sw_usp               /* set exception */
-       movel   sw_usp,%sp              /* restore usp */
-       rte
+       RESTORE_USER
  
  Lwork_to_do:
        movel   %a0@(TI_FLAGS),%d1      /* get thread_info->flags */
@@@ -167,11 -156,12 +156,11 @@@ Lsignal_return
        subql   #4,%sp                  /* dummy return address */
        SAVE_SWITCH_STACK
        pea     %sp@(SWITCH_STACK_SIZE)
 -      clrl    %sp@-
        jsr     do_signal
 -      addql   #8,%sp
 +      addql   #4,%sp
        RESTORE_SWITCH_STACK
        addql   #4,%sp
 -      jmp     Lreturn
 +      jmp     Luser_return
  
  /*
   * This is the generic interrupt handler (for all hardware interrupt
@@@ -191,31 -181,7 +180,7 @@@ ENTRY(inthandler
        jbsr    do_IRQ                  /* call high level irq handler */
        lea     %sp@(8),%sp             /* pop args off stack */
  
-       bra     ret_from_interrupt      /* this was fallthrough */
- /*
-  * This is the fast interrupt handler (for certain hardware interrupt
-  * sources). Unlike the normal interrupt handler it just uses the
-  * current stack (doesn't care if it is user or kernel). It also
-  * doesn't bother doing the bottom half handlers.
-  */
- ENTRY(fasthandler)
-       SAVE_LOCAL
-       movew   %sp@(PT_OFF_FORMATVEC),%d0
-       andl    #0x03fc,%d0             /* mask out vector only */
-       movel   %sp,%sp@-               /* push regs arg */
-       lsrl    #2,%d0                  /* calculate real vector # */
-       movel   %d0,%sp@-               /* push vector number */
-       jbsr    do_IRQ                  /* call high level irq handler */
-       lea     %sp@(8),%sp             /* pop args off stack */
-       RESTORE_LOCAL
- ENTRY(ret_from_interrupt)
-       /* the fasthandler is confusing me, haven't seen any user */
-       jmp     ret_from_exception
+       bra     ret_from_exception
  
  /*
   * Beware - when entering resume, prev (the current task) is
   */
  ENTRY(resume)
        movel   %a0, %d1                        /* get prev thread in d1 */
-       movel   sw_usp,%d0                      /* save usp */
-       movel   %d0,%a0@(TASK_THREAD+THREAD_USP)
+       RDUSP
+       movel   %a2,%a0@(TASK_THREAD+THREAD_USP)
  
        SAVE_SWITCH_STACK
        movel   %sp,%a0@(TASK_THREAD+THREAD_KSP) /* save kernel stack pointer */
        RESTORE_SWITCH_STACK
  
        movel   %a1@(TASK_THREAD+THREAD_USP),%a0 /* restore thread user stack */
-       movel   %a0, sw_usp
+       WRUSP
        rts