1. 12 2月, 2009 1 次提交
  2. 19 12月, 2008 1 次提交
    • B
      [ARM] 5349/1: VFP: Add PM code to save and restore current VFP state · fc0b7a20
      Ben Dooks 提交于
      When CONFIG_PM is selected, the VFP code does not have any handler
      installed to deal with either saving the VFP state of the current
      task, nor does it do anything to try and restore the VFP after a
      resume.
      
      On resume, the VFP will have been reset and the co-processor access
      control registers are in an indeterminate state (very probably the
      CP10 and CP11 the VFP uses will have been disabled by the ARM core
      reset). When this happens, resume will break as soon as it tries to
      unfreeze the tasks and restart scheduling.
      
      Add a sys device to allow us to hook the suspend call to save the
      current thread state if the thread is using VFP and a resume hook
      which restores the CP10/CP11 access and ensures the VFP is disabled
      so that the lazy swapping will take place on next access.
      Signed-off-by: NBen Dooks <ben-linux@fluff.org>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      fc0b7a20
  3. 06 11月, 2008 2 次提交
  4. 01 9月, 2008 1 次提交
  5. 26 6月, 2008 1 次提交
  6. 26 1月, 2008 2 次提交
    • C
      [ARM] 4583/1: ARMv7: Add VFPv3 support · 25ebee02
      Catalin Marinas 提交于
      This patch adds the support for VFPv3 (the kernel currently supports
      VFPv2). The main difference is 32 double registers (compared to 16).
      Signed-off-by: NCatalin Marinas <catalin.marinas@arm.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      25ebee02
    • C
      [ARM] 4582/2: Add support for the common VFP subarchitecture · c98929c0
      Catalin Marinas 提交于
      This patch allows the VFP support code to run correctly on CPUs
      compatible with the common VFP subarchitecture specification (Appendix
      B in the ARM ARM v7-A and v7-R edition). It implements support for VFP
      subarchitecture 2 while being backwards compatible with
      subarchitecture 1.
      
      On VFP subarchitecture 1, the arithmetic exceptions are asynchronous
      (or imprecise as described in the old ARM ARM) unless the FPSCR.IXE
      bit is 1. The exceptional instructions can be read from FPINST and
      FPINST2 registers. With VFP subarchitecture 2, the arithmetic
      exceptions can also be synchronous and marked by the FPEXC.DEX bit
      (the FPEXC.EX bit is cleared). CPUs implementing the synchronous
      arithmetic exceptions don't have the FPINST and FPINST2 registers and
      accessing them would trigger and undefined exception.
      
      Note that FPEXC.EX bit has an additional meaning on subarchitecture 1
      - if it isn't set, there is no additional information in FPINST and
      FPINST2 that needs to be saved at context switch or when lazy-loading
      the VFP state of a different thread.
      
      The patch also removes the clearing of the cumulative exception flags in
      FPSCR when additional exceptions were raised. It is up to the user
      application to clear these bits.
      Signed-off-by: NCatalin Marinas <catalin.marinas@arm.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      c98929c0
  7. 11 1月, 2008 1 次提交
  8. 21 10月, 2007 2 次提交
  9. 16 10月, 2007 1 次提交
    • S
      kbuild: enable 'make AFLAGS=...' to add additional options to AS · 222d394d
      Sam Ravnborg 提交于
      The variable AFLAGS is a wellknown variable and the usage by
      kbuild may result in unexpected behaviour.
      On top of that several people over time has asked for a way to
      pass in additional flags to gcc.
      
      This patch replace use of AFLAGS with KBUILD_AFLAGS all over
      the tree.
      
      Patch was tested on following architectures:
      alpha, arm, i386, x86_64, mips, sparc, sparc64, ia64, m68k, s390
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      222d394d
  10. 13 9月, 2007 1 次提交
  11. 20 7月, 2007 1 次提交
  12. 10 6月, 2007 1 次提交
    • R
      [ARM] VFP: fix section mismatch error · 5d4cae5f
      Russell King 提交于
      Fix a real section mismatch issue; the test code is thrown away after
      initialisation, but if we do not detect the VFP hardware, it is left
      hooked into the exception handler.  Any VFP instructions which are
      subsequently executed risk calling the discarded exception handler.
      
      Introduce a new "null" handler which returns to the "unrecognised
      fault" return address.
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      5d4cae5f
  13. 22 4月, 2007 1 次提交
  14. 26 1月, 2007 1 次提交
  15. 03 1月, 2007 1 次提交
  16. 09 12月, 2006 1 次提交
    • R
      [ARM] Handle HWCAP_VFP in VFP support code · efe90d27
      Russell King 提交于
      Don't set HWCAP_VFP in the processor support file; not only does it
      depend on the processor features, but it also depends on the support
      code being present.  Therefore, only set it if the support code
      detects that we have a VFP coprocessor attached.
      
      Also, move the VFP handling of the coprocessor access register into
      the VFP support code.
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      efe90d27
  17. 28 10月, 2006 2 次提交
  18. 12 10月, 2006 1 次提交
  19. 03 10月, 2006 1 次提交
    • F
      [PATCH] arm build fail: vfpsingle.c · 42d3fb5a
      Frederik Deweerdt 提交于
      It looks like Zach Brown's patch pr_debug-check-pr_debug-arguments
      worked as inteded. That is, it doesn't "allow completely incorrect code
      to build." :).
      
      The arm build fails with the following message:
        CC      arch/arm/vfp/vfpsingle.o
        arch/arm/vfp/vfpsingle.c: In function `__vfp_single_normaliseround':
        arch/arm/vfp/vfpsingle.c:201: error: `func' undeclared (first use in
        this function)
        arch/arm/vfp/vfpsingle.c:201: error: (Each undeclared identifier is
        reported only once
        arch/arm/vfp/vfpsingle.c:201: error: for each function it appears in.)
        make[1]: *** [arch/arm/vfp/vfpsingle.o] Error 1
        make: *** [arch/arm/vfp] Error 2
      
      The following patch fixes the issue by using func only when DEBUG is
      defined.
      Signed-off-by: NFrederik Deweerdt <frederik.deweerdt@gmail.com>
      Cc: Russell King <rmk@arm.linux.org.uk>
      Cc: Zach Brown <zach.brown@oracle.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      42d3fb5a
  20. 25 9月, 2006 2 次提交
  21. 20 9月, 2006 2 次提交
    • D
      [ARM] 3759/2: Remove uses of %? · 6a39dd62
      Daniel Jacobowitz 提交于
      Patch from Daniel Jacobowitz
      
      The ARM kernel has several uses of asm("foo%?").  %? is a GCC internal
      modifier used to output conditional execution predicates.  However, no
      version of GCC supports conditionalizing asm statements.  GCC 4.2 will
      correctly expand %? to the empty string in user asms.  Earlier versions may
      reuse the condition from the previous instruction.  In 'if (foo) asm
      ("bar%?");' this is somewhat likely to be right... but not reliable.
      
      So, the only safe thing to do is to remove the uses of %?.  I believe
      the tlbflush.h occurances were supposed to be removed before, based
      on the comment about %? not working at the top of that file.
      
      Old versions of GCC could omit branches around user asms if the asm didn't
      mark the condition codes as clobbered.  This problem hasn't been seen on any
      recent (3.x or 4.x) GCC, but it could theoretically happen.  So, where
      %? was removed a cc clobber was added.
      Signed-off-by: NDaniel Jacobowitz <dan@codesourcery.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      6a39dd62
    • R
      [ARM] Optimise VFP thread notify function a little · 681a4991
      Russell King 提交于
      The common case for the thread notifier is a context switch.  Tell
      gcc that this is the most likely condition so it can optimise the
      function for this case.
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      681a4991
  22. 30 8月, 2006 1 次提交
  23. 27 8月, 2006 3 次提交
  24. 01 7月, 2006 1 次提交
  25. 22 6月, 2006 2 次提交
    • R
      [ARM] Enable VFP to be built when non-VFP capable CPUs are selected · 1a6be26d
      Russell King 提交于
      Since we pass flags to the compiler to control code generation based
      on the least capable selected CPU, if we want to include VFP support,
      we must tweak the assembler flags to allow the VFP instructions.
      Moreover, we must not use the mrrc/mcrr versions since these will not
      be recognised by the assembler.
      
      We do not convert all instructions to the VFP-equivalent (yet) since
      binutils appears to barf on "fmrx rn, fpinst" and doesn't provide any
      other way (other than using the mrc equivalent) to encode this
      instruction - which is rather a problem when you have a VFP
      implementation which requires these instructions.
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      1a6be26d
    • R
      [ARM] Add thread_notify infrastructure · d6551e88
      Russell King 提交于
      Some machine classes need to allow VFP support to be built into the
      kernel, but still allow the kernel to run even though VFP isn't
      present.  Unfortunately, the kernel hard-codes VFP instructions
      into the thread switch, which prevents this being run-time selectable.
      
      Solve this by introducing a notifier which things such as VFP can
      hook into to be informed of events which affect the VFP subsystem
      (eg, creation and destruction of threads, switches between threads.)
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      d6551e88
  26. 06 5月, 2006 1 次提交
  27. 26 4月, 2006 1 次提交
  28. 11 4月, 2006 2 次提交
  29. 26 3月, 2006 1 次提交
  30. 24 3月, 2006 1 次提交