1. 28 6月, 2016 1 次提交
  2. 21 6月, 2016 5 次提交
  3. 28 2月, 2016 1 次提交
  4. 02 2月, 2016 1 次提交
    • J
      ARM: imx: use endian-safe readl/readw/writel/writew · c553138f
      Johannes Berg 提交于
      Instead of __raw_*, define imx_* to *_relaxed and use those.
      
      Using imx_* was requested by Arnd because *_relaxed tends to
      indicate that the code was carefully reviewed to not require
      any synchronisation and otherwise be safe, which isn't the
      case here with the automatic conversion.
      
      The conversion itself was done using the following spatch
      (since that automatically adjusts the coding style unlike
      a simple search&replace).
      
      @@
      expression E1, E2;
      @@
      -__raw_writel(E1, E2)
      +imx_writel(E1, E2)
      @@
      expression E1, E2;
      @@
      -__raw_writew(E1, E2)
      +imx_writew(E1, E2)
      @@
      expression E1;
      @@
      -__raw_readl(E1)
      +imx_readl(E1)
      @@
      expression E1;
      @@
      -__raw_readw(E1)
      +imx_readw(E1)
      Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: NShawn Guo <shawnguo@kernel.org>
      c553138f
  5. 22 11月, 2014 1 次提交
    • J
      ARM: imx: clean up machine mxc_arch_reset_init_dt reset init · 08ae9646
      Jingchang Lu 提交于
      System restart mechanism has been changed with the introduction
      of "kernel restart handler call chain support". The imx2 watchdog
      based restart handler has been moved to the driver, and these
      restart can be removed from the machine layer.
      
      This patch cleans up the device tree version machine reset init with
      mxc_arch_reset_init_dt and removes corresponding .restart handler,
      for the .init_machine that can be handled by system default after
      removing the mxc_arch_reset_init_dt, the .init_machine is also removed.
      Signed-off-by: NJingchang Lu <jingchang.lu@freescale.com>
      Signed-off-by: NShawn Guo <shawn.guo@linaro.org>
      08ae9646
  6. 18 7月, 2014 2 次提交
  7. 30 5月, 2014 2 次提交
  8. 22 5月, 2014 1 次提交
  9. 11 11月, 2013 2 次提交
    • S
      ARM: imx: improve mxc_restart() on the SRC bit writes · 2c11b57a
      Shawn Guo 提交于
      The current comment in the code does not make it clear why the double writes
      on SRC bit is needed.  Let's quote the errata to get it clear.  Also, to
      ensure there are at least 2 writes happen in the same one 32kHz period,
      we actually need 3 writes.  Let's add the third one.
      Signed-off-by: NShawn Guo <shawn.guo@linaro.org>
      2c11b57a
    • S
      ARM: imx: remove imx_src_prepare_restart() call · b6e23bb6
      Shawn Guo 提交于
      There is ~10% possibility that the following emergency restart command
      fails to reboot imx6q.
      
      $ echo b > /proc/sysrq-trigger
      
      The IMX restart routine mxc_restart() assumes that it will always run on
      primary core, and will call imx_src_prepare_restart() to disable
      secondary cores in order to get them come to online in the following
      boot.  However, the assumption is only true for normal kernel_restart()
      case where migrate_to_reboot_cpu() will be called to migrate to primary
      core, but not necessarily true for emergency_restart() case.  So when
      emergency_restart() calls into mxc_restart() on any secondary core,
      system will hang immediately once imx_src_prepare_restart() is called
      to disabled secondary cores.  Since emergency_restart() is defined as a
      function that is safe to call in interrupt context, we cannot just call
      migrate_to_reboot_cpu() to fix the issue.
      
      Fortunately, we just found that the issue can be fixed at imx6q platform
      level.  We used to call imx_src_prepare_restart() to disable all
      secondary cores before resetting hardware.  Otherwise, the secondary
      will fail come to online in the reboot.  However, we recently found that
      after commit 6050d181 (ARM: imx: reset core along with enable/disable
      operation) comes to play, we do not need to reset the secondary cores
      any more.  That said, mxc_restart() now can run on any core to reboot
      the system, as long as we remove the imx_src_prepare_restart() call from
      mxc_restart().
      
      So let's simply remove imx_src_prepare_restart() call to fix the above
      emergency restart failure.
      Reported-by: NJiada Wang <jiada_wang@mentor.com>
      Signed-off-by: NShawn Guo <shawn.guo@linaro.org>
      b6e23bb6
  10. 21 10月, 2013 1 次提交
    • S
      ARM: imx: replace imx6q_restart() with mxc_restart() · 87a84b69
      Shawn Guo 提交于
      The imx6q_restart() works fine with normal reboot but will run into
      problem with emergency reboot like sysrq-b.  In that case, of_iomap()
      gets called from interrupt context and hence triggers the BUG_ON in
      __get_vm_area_node().
      
      Actually, since commit c1e31d12 (ARM: imx: create
      mxc_arch_reset_init_dt() for DT boot), imx6q/dl should try to use
      mxc_restart() by calling mxc_arch_reset_init_dt() beforehand, where
      things like of_iomap() can be done.
      
      The patch updates mxc_restart() a little bit to get it work for imx6q/dl
      and kill imx6q_restart() completely.
      Reported-by: NNathan Lynch <nathan_lynch@mentor.com>
      Signed-off-by: NShawn Guo <shawn.guo@linaro.org>
      87a84b69
  11. 17 9月, 2013 1 次提交
    • J
      ARM: imx: i.mx6d/q: disable the double linefill feature of PL310 · 9779f0e1
      Jason Liu 提交于
      The L2 cache controller(PL310) version on the i.MX6D/Q is r3p1-50rel0
      The L2 cache controller(PL310) version on the i.MX6DL/SOLO/SL is r3p2
      But according to ARM PL310 errata: 752271
      ID: 752271: Double linefill feature can cause data corruption
      Fault Status: Present in: r3p0, r3p1, r3p1-50rel0. Fixed in r3p2
      Workaround: The only workaround to this erratum is to disable the
      double linefill feature. This is the default behavior.
      
      without this patch, you will meet the following error when run the
      memtester application at: http://pyropus.ca/software/memtester/
      
      FAILURE: 0x00100000 != 0x00200000 at offset 0x01365664.
      FAILURE: 0x00100000 != 0x00200000 at offset 0x01365668.
      FAILURE: 0x00100000 != 0x00200000 at offset 0x0136566c.
      FAILURE: 0x00100000 != 0x00200000 at offset 0x01365670.
      FAILURE: 0x00100000 != 0x00200000 at offset 0x01365674.
      FAILURE: 0x00100000 != 0x00200000 at offset 0x01365678.
      Signed-off-by: NJason Liu <r64343@freescale.com>
      Signed-off-by: NShawn Guo <shawn.guo@linaro.org>
      9779f0e1
  12. 16 8月, 2013 2 次提交
  13. 10 7月, 2013 1 次提交
  14. 17 6月, 2013 2 次提交
    • S
      ARM: imx: create mxc_arch_reset_init_dt() for DT boot · c1e31d12
      Shawn Guo 提交于
      The mxc_arch_reset_init() uses static mapping and calls clk_get_sys() to
      get clock.  It's suitable for non-DT boot but not for DT boot where
      dynamic mapping and of_clk_get() should be used instead.  Create
      mxc_arch_reset_init_dt() as the DT variant of mxc_arch_reset_init(),
      and change DT platforms to use it.
      Signed-off-by: NShawn Guo <shawn.guo@linaro.org>
      c1e31d12
    • S
      ARM: imx: move clk_prepare() out from mxc_restart() · 18cb680f
      Shawn Guo 提交于
      It's inappropriate to call clk_prepare() in mxc_restart(), because the
      restart routine could be called in atomic context.  Move clk_get() and
      clk_prepare() into mxc_arch_reset_init() and only have the atomic part
      clk_enable() be called in mxc_restart().
      
      As a result, mxc_arch_reset_init() needs to be called after clk gets
      initialized.
      
      While there, it also changes printk(KERN_ERR ...) to pr_err() and adds
      __init annotation for mxc_arch_reset_init().
      Signed-off-by: NShawn Guo <shawn.guo@linaro.org>
      18cb680f
  15. 15 10月, 2012 3 次提交
  16. 11 8月, 2012 1 次提交
  17. 29 3月, 2012 1 次提交
  18. 01 2月, 2012 1 次提交
  19. 05 1月, 2012 1 次提交
  20. 22 11月, 2011 1 次提交
    • A
      ARM: imx: export imx_ioremap · 807dfe70
      Arnd Bergmann 提交于
      The arch_ioremap function on i.MX is now an indirect function pointer.
      In order to use it from any loadable module, the pointer itself
      has to be exported.
      
      ERROR: "imx_ioremap" [drivers/video/tmiofb.ko] undefined!
      ERROR: "imx_ioremap" [drivers/usb/host/sl811-hcd.ko] undefined!
      ERROR: "imx_ioremap" [drivers/usb/host/r8a66597-hcd.ko] undefined!
      ERROR: "imx_ioremap" [drivers/usb/host/oxu210hp-hcd.ko] undefined!
      ERROR: "imx_ioremap" [drivers/usb/gadget/r8a66597-udc.ko] undefined!
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Acked-by: NShawn Guo <shawn.guo@linaro.org>
      Signed-off-by: NSascha Hauer <s.hauer@pengutronix.de>
      807dfe70
  21. 21 11月, 2011 1 次提交
  22. 11 11月, 2011 1 次提交
    • S
      arm/imx: remove imx_idle hook and use pm_idle instead · 8c6d8319
      Shawn Guo 提交于
      The patch removes imx_idle hook and use pm_idle instead to get imx
      arch_idle prepared for the cleanup.  It's suggested by Russel King
      as below.
      
      > The final removal of mach/system.h depends on getting rid of the arch_idle
      > thing.  While going through these headers, I was dismayed to find these:
      >
      > arch/arm/mach-s3c2410/include/mach/system.h:void (*s3c24xx_idle)(void);
      > arch/arm/plat-mxc/include/mach/system.h:extern void (*imx_idle)(void);
      >
      > when we have a perfectly good pm_idle hook already in place - so there's
      > no excuse for these especially when other platforms are already using
      > pm_idle to hook their platform specific idle function into.  This is
      > something that better be gone at the next merge window!
      Suggested-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      Signed-off-by: NShawn Guo <shawn.guo@linaro.org>
      Acked-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      Signed-off-by: NSascha Hauer <s.hauer@pengutronix.de>
      8c6d8319
  23. 04 10月, 2011 2 次提交
  24. 19 5月, 2011 1 次提交
  25. 14 12月, 2010 1 次提交
  26. 24 11月, 2010 1 次提交
  27. 30 6月, 2010 1 次提交
  28. 14 8月, 2009 1 次提交