1. 02 12月, 2015 2 次提交
    • A
      ARM: mmp: remove remaining legacy pxa-dma support · 74911e3a
      Arnd Bergmann 提交于
      All drivers have stopped using this code, so we can just
      as well stop initializing it.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      74911e3a
    • A
      clk: mmp: stop using platform headers · 990f2f22
      Arnd Bergmann 提交于
      The mmp clock drivers currently hardcode the physical addresses for
      the clock registers. This is generally a bad idea, and it also gets in
      the way of multiplatform builds, which make the platform header files
      inaccessible to device drivers.
      
      To work around the header file problem, this patch changes the calling
      convention so the three mmp clock drivers get initialized with the base
      addresses as arguments from the platform code.
      
      It would still be useful to have a larger rework of the clock drivers,
      with DT integration to let the clocks actually be probed automatically,
      and the base addresses passed as DT properties. I am unsure if anyone
      is still interested in the mmp platform, so it is possible that this
      won't happen.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Cc: Mike Turquette <mturquette@linaro.org>
      Cc: Chao Xie <chao.xie@marvell.com>
      Cc: Eric Miao <eric.y.miao@gmail.com>
      Cc: Haojian Zhuang <haojian.zhuang@gmail.com>
      990f2f22
  2. 06 9月, 2015 1 次提交
  3. 28 7月, 2015 1 次提交
  4. 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
  5. 17 7月, 2015 1 次提交
    • V
      ARM/mmp/time: Migrate to new 'set-state' interface · a785fb39
      Viresh Kumar 提交于
      Migrate mmp driver to the new 'set-state' interface provided by
      clockevents core, the earlier 'set-mode' interface is marked obsolete
      now.
      
      This also enables us to implement callbacks for new states of clockevent
      devices, for example: ONESHOT_STOPPED.
      
      We weren't doing anything in set_mode(RESUME) except of
      local_irq_{save|restore}(), which isn't required and so ->tick_resume
      isn't implemented.
      
      Cc: Eric Miao <eric.y.miao@gmail.com>
      Cc: Haojian Zhuang <haojian.zhuang@gmail.com>
      Signed-off-by: NViresh Kumar <viresh.kumar@linaro.org>
      a785fb39
  6. 19 2月, 2015 1 次提交
  7. 13 11月, 2014 1 次提交
  8. 29 10月, 2014 1 次提交
  9. 25 10月, 2014 1 次提交
  10. 04 7月, 2014 1 次提交
  11. 18 3月, 2014 1 次提交
    • A
      ARM: mmp: allow platform devices with modular USB · 35240808
      Arnd Bergmann 提交于
      The USB host drivers need platform data to be defined on
      pxa168 and pxa910, but the conditionals used in the devices.c
      file only work if the drivers are built-in. This patch
      fixes the definition by changing the #ifdef to #if IS_ENABLED(),
      which works both for built-in and modular Kconfig symbols.
      
      I found one specific problem using 'randconfig' builds, but
      for consistency, this patch uses IS_ENABLED() for all Kconfig
      symbols in these three files.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Acked-by: NHaojian Zhuang <haojian.zhuang@gmail.com>
      35240808
  12. 12 3月, 2014 1 次提交
  13. 05 3月, 2014 1 次提交
    • T
      arm: mmp: Remove pointless fiddling with irq internals · 49f3fbc7
      Thomas Gleixner 提交于
      The pm-mmp2 and pm-pxa910 power management related irq_set_wake
      callbacks fiddle pointlessly with the irq actions for no reason except
      for lack of understanding how the wakeup mechanism works.
      
      On supsend the core disables all interrupts lazily, i.e. it does not
      mask them at the irq controller level. So any interrupt which is
      firing during suspend will mark the corresponding interrupt line as
      pending. Just before the core powers down it checks whether there are
      interrupts pending from interrupt lines which are marked as wakeup
      sources and if so it aborts the suspend and resends the interrupts.
      If there was no interrupt at this point, the cpu goes into suspend
      with these interrupts unmasked.
      
      The IRQF_NO_SUSPEND flag for interrupt actions is a totally different
      mechanism. That allows the device driver to prevent the core from
      disabling the interrupt despite the fact that it is not marked as a
      wakeup source. This has nothing to do with the case at hand. It was
      introduced for special cases where lazy disable is not possible.
      
      Remove the nonsense along with the braindamaged boundary check. The
      core code does NOT call these functions out of boundary.
      
      Add a FIXME comment to an unhandled error path which merily printks
      some useless blurb instead of returning a proper error code.
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: arm <linux-arm-kernel@lists.infradead.org>
      Cc: Eric Miao <eric.y.miao@gmail.com>
      Cc: Haojian Zhuang <haojian.zhuang@gmail.com>
      Cc: Russell King <linux@arm.linux.org.uk>
      Link: http://lkml.kernel.org/r/20140223212737.214342433@linutronix.deSigned-off-by: NThomas Gleixner <tglx@linutronix.de>
      49f3fbc7
  14. 21 12月, 2013 1 次提交
  15. 20 12月, 2013 1 次提交
  16. 12 12月, 2013 1 次提交
  17. 22 11月, 2013 1 次提交
  18. 27 9月, 2013 1 次提交
  19. 20 9月, 2013 1 次提交
  20. 30 8月, 2013 1 次提交
  21. 24 8月, 2013 3 次提交
  22. 10 7月, 2013 1 次提交
  23. 19 6月, 2013 1 次提交
  24. 13 6月, 2013 1 次提交
  25. 11 4月, 2013 4 次提交
  26. 02 4月, 2013 2 次提交
  27. 15 3月, 2013 1 次提交
    • H
      ARM: mmp: add platform_device head file in gplugd · e71dc5f7
      Haojian Zhuang 提交于
      arch/arm/mach-mmp/gplugd.c: In function ‘gplugd_init’:
      arch/arm/mach-mmp/gplugd.c:188:2: error: implicit declaration of
      function ‘platform_device_register’
      [-Werror=implicit-function-declaration]
      cc1: some warnings being treated as errors
      make[1]: *** [arch/arm/mach-mmp/gplugd.o] Error 1
      make: *** [arch/arm/mach-mmp] Error 2
      
      So append platform_device.h to resolve build issue.
      Signed-off-by: NHaojian Zhuang <haojian.zhuang@linaro.org>
      e71dc5f7
  28. 22 2月, 2013 2 次提交
  29. 15 1月, 2013 1 次提交
  30. 11 1月, 2013 1 次提交
  31. 04 1月, 2013 1 次提交
    • G
      ARM: drivers: remove __dev* attributes. · 351a102d
      Greg Kroah-Hartman 提交于
      CONFIG_HOTPLUG is going away as an option.  As a result, the __dev*
      markings need to be removed.
      
      This change removes the use of __devinit, __devexit_p, __devinitdata,
      and __devexit from these drivers.
      
      Based on patches originally written by Bill Pemberton, but redone by me
      in order to handle some of the coding style issues better, by hand.
      
      Cc: Bill Pemberton <wfp5p@virginia.edu>
      Cc: Russell King <linux@arm.linux.org.uk>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      351a102d
  32. 25 12月, 2012 1 次提交