1. 11 2月, 2013 9 次提交
    • V
      ARC: String library · 5210d1e6
      Vineet Gupta 提交于
      Hand optimised asm code for ARC700 pipeline.
      Originally written/optimized by Joern Rennecke
      Signed-off-by: NVineet Gupta <vgupta@synopsys.com>
      Cc: Joern Rennecke <joern.rennecke@embecosm.com>
      5210d1e6
    • V
      ARC: Spinlock/rwlock/mutex primitives · 6e35fa2d
      Vineet Gupta 提交于
      Signed-off-by: NVineet Gupta <vgupta@synopsys.com>
      Acked-by: NArnd Bergmann <arnd@arndb.de>
      6e35fa2d
    • V
      ARC: Fundamental ARCH data-types/defines · 3be80aae
      Vineet Gupta 提交于
      * L1_CACHE_SHIFT
      * PAGE_SIZE, PAGE_OFFSET
      * struct pt_regs, struct user_regs_struct
      * struct thread_struct, cpu_relax(), task_pt_regs(), start_thread(), ...
      * struct thread_info, THREAD_SIZE, INIT_THREAD_INFO(), TIF_*, ...
      * BUG()
      * ELF_*
      * Elf_*
      
      To disallow user-space visibility into some of the core kernel data-types
      such as struct pt_regs, #ifdef __KERNEL__ which also makes the UAPI header
      spit (further patch in the series) to NOT export it to asm/uapi/ptrace.h
      Signed-off-by: NVineet Gupta <vgupta@synopsys.com>
      Cc: Jonas Bonn <jonas.bonn@gmail.com>
      Cc: Al Viro <viro@ZenIV.linux.org.uk>
      Acked-by: NArnd Bergmann <arnd@arndb.de>
      3be80aae
    • V
      ARC: Checksum/byteorder/swab routines · ca15c8ec
      Vineet Gupta 提交于
      TBD: do_csum still needs to be written in asm
      Signed-off-by: NVineet Gupta <vgupta@synopsys.com>
      Acked-by: NArnd Bergmann <arnd@arndb.de>
      ca15c8ec
    • V
      ARC: [optim] uaccess __{get,put}_user() optimised · 0a5eae45
      Vineet Gupta 提交于
      Override asm-generic implementations. We basically gain on 2 fronts
      
      * checks for alignment no longer needed as we are only doing "unit"
        sized copies.
      
        (Careful observer could argue that While the kernel buffers are aligned,
         the user buffer in theory might not be - however in that case the
         user space is already broken when it tries to deref a hword/word
         straddling word boundary - so we are not making it any worse).
      
      * __copy_{to,from}_user( ) returns bytes that couldn't be copied,
        whereas get_user() returns 0 for success or -EFAULT (not size). Thus
        the code to do leftover bytes calculation can be avoided as well.
      
      The savings were significant: ~17k of code.
      
      bloat-o-meter vmlinux_uaccess_pre vmlinux_uaccess_post
      add/remove: 0/4 grow/shrink: 8/118 up/down: 1262/-18758 (-17496)
      							^^^^^^^^^
      Signed-off-by: NVineet Gupta <vgupta@synopsys.com>
      Acked-by: NArnd Bergmann <arnd@arndb.de>
      0a5eae45
    • V
      ARC: uaccess friends · 43697cb0
      Vineet Gupta 提交于
      Signed-off-by: NVineet Gupta <vgupta@synopsys.com>
      43697cb0
    • V
      ARC: Atomic/bitops/cmpxchg/barriers · 14e968ba
      Vineet Gupta 提交于
      This covers the UP / SMP (with no hardware assist for atomic r-m-w) as
      well as ARC700 LLOCK/SCOND insns based.
      Signed-off-by: NVineet Gupta <vgupta@synopsys.com>
      14e968ba
    • V
      ARC: irqflags - Interrupt enabling/disabling at in-core intc · ac4c244d
      Vineet Gupta 提交于
      ARC700 has an in-core intc which provides 2 priorities (a.k.a.) "levels"
      of interrupts (per IRQ) hencforth referred to as L1/L2 interrupts.
      
      CPU flags register STATUS32 has Interrupt Enable bits per level (E1/E2)
      to globally enable (or disable) all IRQs at a level. Hence the
      implementation of arch_local_irq_{save,restore,enable,disable}( )
      
      The STATUS32 reg can be r/w only using the AUX Interface of ARC, hence
      the use of LR/SR instructions. Further, E1/E2 bits in there can only be
      updated using the FLAG insn.
      
      The intc supports 32 interrupts - and per IRQ enabling is controlled by
      a bit in the AUX_IENABLE register, hence the implmentation of
      arch_{,un}mask_irq( ) routines.
      Signed-off-by: NVineet Gupta <vgupta@synopsys.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      ac4c244d
    • V
      ARC: Build system: Makefiles, Kconfig, Linker script · cfdbc2e1
      Vineet Gupta 提交于
      Arnd in his review pointed out that arch Kconfig organisation has several
      deficiencies:
      
      * Build time entries for things which can be runtime extracted from DT
        (e.g. SDRAM size, core clk frequency..)
      * Not multi-platform-image-build friendly (choice .. endchoice constructs)
      * cpu variants support (750/770) is exclusive.
      
      The first 2 have been fixed in subsequent patches.
      Due to the nature of the 750 and 770, it is not possible to build for
      both together, w/o special runtime glue code which would hurt
      performance.
      Signed-off-by: NVineet Gupta <vgupta@synopsys.com>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Sam Ravnborg <sam@ravnborg.org>
      Acked-by: NSam Ravnborg <sam@ravnborg.org>
      cfdbc2e1
  2. 28 1月, 2013 1 次提交
  3. 24 1月, 2013 2 次提交
  4. 23 1月, 2013 11 次提交
  5. 22 1月, 2013 4 次提交
  6. 21 1月, 2013 1 次提交
  7. 19 1月, 2013 5 次提交
  8. 18 1月, 2013 3 次提交
  9. 17 1月, 2013 4 次提交