1. 30 5月, 2014 1 次提交
  2. 22 5月, 2014 1 次提交
  3. 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
  4. 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
  5. 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
  6. 16 8月, 2013 2 次提交
  7. 10 7月, 2013 1 次提交
  8. 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
  9. 15 10月, 2012 3 次提交
  10. 11 8月, 2012 1 次提交
  11. 29 3月, 2012 1 次提交
  12. 01 2月, 2012 1 次提交
  13. 05 1月, 2012 1 次提交
  14. 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
  15. 21 11月, 2011 1 次提交
  16. 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
  17. 04 10月, 2011 2 次提交
  18. 19 5月, 2011 1 次提交
  19. 14 12月, 2010 1 次提交
  20. 24 11月, 2010 1 次提交
  21. 30 6月, 2010 1 次提交
  22. 14 8月, 2009 1 次提交
  23. 07 8月, 2009 1 次提交
  24. 27 3月, 2009 1 次提交
  25. 20 3月, 2009 1 次提交
    • R
      [ARM] pass reboot command line to arch_reset() · be093beb
      Russell King 提交于
      OMAP wishes to pass state to the boot loader upon reboot in order to
      instruct it whether to wait for USB-based reflashing or not.  There is
      already a facility to do this via the reboot() syscall, except we ignore
      the string passed to machine_restart().
      
      This patch fixes things to pass this string to arch_reset().  This means
      that we keep the reboot mode limited to telling the kernel _how_ to
      perform the reboot which should be independent of what we request the
      boot loader to do.
      Acked-by: NTony Lindgren <tony@atomide.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      be093beb
  26. 07 8月, 2008 1 次提交
  27. 05 7月, 2008 1 次提交