1. 25 7月, 2015 1 次提交
    • R
      ARM: move heavy barrier support out of line · f8130906
      Russell King 提交于
      The existing memory barrier macro causes a significant amount of code
      to be inserted inline at every call site.  For example, in
      gpio_set_irq_type(), we have this for mb():
      
      c0344c08:       f57ff04e        dsb     st
      c0344c0c:       e59f8190        ldr     r8, [pc, #400]  ; c0344da4 <gpio_set_irq_type+0x230>
      c0344c10:       e3590004        cmp     r9, #4
      c0344c14:       e5983014        ldr     r3, [r8, #20]
      c0344c18:       0a000054        beq     c0344d70 <gpio_set_irq_type+0x1fc>
      c0344c1c:       e3530000        cmp     r3, #0
      c0344c20:       0a000004        beq     c0344c38 <gpio_set_irq_type+0xc4>
      c0344c24:       e50b2030        str     r2, [fp, #-48]  ; 0xffffffd0
      c0344c28:       e50bc034        str     ip, [fp, #-52]  ; 0xffffffcc
      c0344c2c:       e12fff33        blx     r3
      c0344c30:       e51bc034        ldr     ip, [fp, #-52]  ; 0xffffffcc
      c0344c34:       e51b2030        ldr     r2, [fp, #-48]  ; 0xffffffd0
      c0344c38:       e5963004        ldr     r3, [r6, #4]
      
      Moving the outer_cache_sync() call out of line reduces the impact of
      the barrier:
      
      c0344968:       f57ff04e        dsb     st
      c034496c:       e35a0004        cmp     sl, #4
      c0344970:       e50b2030        str     r2, [fp, #-48]  ; 0xffffffd0
      c0344974:       0a000044        beq     c0344a8c <gpio_set_irq_type+0x1b8>
      c0344978:       ebf363dd        bl      c001d8f4 <arm_heavy_mb>
      c034497c:       e5953004        ldr     r3, [r5, #4]
      
      This should reduce the cache footprint of this code.  Overall, this
      results in a reduction of around 20K in the kernel size:
      
          text    data      bss      dec     hex filename
      10773970  667392 10369656 21811018 14ccf4a ../build/imx6/vmlinux-old
      10754219  667392 10369656 21791267 14c8223 ../build/imx6/vmlinux-new
      
      Another advantage to this approach is that we can finally resolve the
      issue of SoCs which have their own memory barrier requirements within
      multiplatform kernels (such as OMAP.)  Here, the bus interconnects
      need additional handling to ensure that writes become visible in the
      correct order (eg, between dma_map() operations, writes to DMA
      coherent memory, and MMIO accesses.)
      Acked-by: NTony Lindgren <tony@atomide.com>
      Acked-by: NRichard Woodruff <r-woodruff2@ti.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      f8130906
  2. 18 5月, 2015 1 次提交
  3. 10 7月, 2014 1 次提交
  4. 30 5月, 2014 4 次提交
  5. 18 9月, 2013 1 次提交
    • L
      ARM: ux500: disable outer cache debug · 6cefc8ee
      Linus Walleij 提交于
      This fixes a multiplatform regression on the Ux500.
      
      When compiling the Ux500 platforms in multiplatform configurations
      both PL310_ERRATA_588369 and PL310_ERRATA_727915 would crash the
      platform when trying to launch the init process.
      
      The Ux500 cannot access the debug registers of the PL310, it will
      just crash if you try this. So disable this by setting the debug
      callback to NULL when initializing the l2x0 on this platform.
      
      Cc: Lee Jones <lee.jones@linaro.org>
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      Signed-off-by: NOlof Johansson <olof@lixom.net>
      6cefc8ee
  6. 27 6月, 2013 1 次提交
  7. 08 4月, 2013 1 次提交
  8. 18 3月, 2013 1 次提交
  9. 30 1月, 2013 1 次提交
  10. 09 8月, 2012 1 次提交
    • L
      ARM: ux500: reform Ux500 family names · e1bbb55d
      Linus Walleij 提交于
      Counting the U9540 and the new U8540 as a U8500 family member
      does not work. Instead, split the function in two:
      
      cpu_is_u8500_family() covering U8500 and U8520
      cpu_is_ux540_family() covering U9540 and U8540
      
      This works much better in practice. Update users to keep the
      same behaviour.
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      e1bbb55d
  11. 02 5月, 2012 2 次提交
    • L
      ARM: ux500: delete U5500 support · 29746f48
      Linus Walleij 提交于
      This platform has been obsoleted and was only available inside of
      ST-Ericsson, no users of this code are left in the world. This
      deletes the core U5500 support entirely in the same manner as the
      obsoleted U8500 silicon was previously deleted.
      
      The cpu_is_u5500() macros that can read out the CPU ID is left
      until the next kernel cycle, this makes it possible to merge
      deletion of dependent drivers without breakage.
      
      This also has the upside of removing the mailbox driver which was
      our only driver that was outside the drivers/* hiearchy, now the
      machine directory only handles machines and nothing else.
      
      Cc: Srinidhi Kasagar <srinidhi.kasagar@stericsson.com>
      Cc: Rabin Vincent <rabin.vincent@stericsson.com>
      Cc: Jonas Aberg <jonas.aberg@stericsson.com>
      Cc: Per Forlin <per.forlin@stericsson.com>
      Cc: Ulf Hansson <ulf.hansson@stericsson.com>
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      29746f48
    • L
      ARM: ux500: core U9540 support · bc71c096
      Linus Walleij 提交于
      This adds support for the U9540 variant of the U8500 series. This
      is an application processor without internal modem. This is the
      most basic part with ASIC ID, CPU-related fixes, IRQ list, register
      ranges, timer, UART, and L2 cache setup. This is based on a patch
      by Michel Jaouen which was rewritten to fit with the latest 3.3
      kernel.
      
      ChangeLog v1->v2: deleted the irqs-db9540.h file since we expect to
        migrate to using Device Tree for getting the IRQs to devices.
      ChangeLog v2->v3: introduced a fixed virtual offset for the ROM
        as suggested by Arnd Bergmann.
      Acked-by: NArnd Bergmann <arnd@arndb.de>
      Signed-off-by: NSebastien Pasdeloup <sebastien.pasdeloup-nonst@stericsson.com>
      Signed-off-by: NMichel Jaouen <michel.jaouen@stericsson.com>
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      bc71c096
  12. 17 3月, 2012 1 次提交
  13. 20 1月, 2012 1 次提交
  14. 30 8月, 2011 1 次提交
    • L
      mach-ux500: factor out l2x0 handling code · 458eef2f
      Linus Walleij 提交于
      Following mach-imx we break out the l2x0 handling into its
      own file, avoiding some ifdefs. Also remove unnecessary creation
      of local pointers when there is already one file-local readily
      available.
      
      Cc: Srinidhi Kasagar <srinidhi.kasagar@stericsson.com>
      Cc: Rabin Vincent <rabin.vincent@stericsson.com>
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      458eef2f