1. 30 6月, 2017 1 次提交
    • T
      ARM: OMAP2+: Fix omap3 prm shared irq · 324dd7a6
      Tony Lindgren 提交于
      Shared interrupts with IRQ_NOAUTOEN got a warning added with commit
      04c848d3 ("genirq: Warn when IRQ_NOAUTOEN is used with shared
      interrupts").
      
      Let's just drop the IRQ_NOAUTOEN use for omap3 PRM shared interrupt as
      it does not seem to cause any other issues based on my testing. We have
      moved a lot of the code to initialize later, and whatever problems the
      legacy booting had seem to be gone now with pinctrl driver and device
      tree based booting.
      
      Otherwise we will get:
      
      WARNING: CPU: 0 PID: 1 at kernel/irq/manage.c:1348 __setup_irq+0x5d0/0x64c
      [<c01b0260>] (__setup_irq) from [<c01b0480>]
      (request_threaded_irq+0xdc/0x188)
      [<c01b0480>] (request_threaded_irq) from [<c051c780>]
      (pcs_probe+0x6ec/0x8a4)
      [<c051c780>] (pcs_probe) from [<c05a84b8>] (platform_drv_probe+0x50/0xb0)
      [<c05a84b8>] (platform_drv_probe) from [<c05a6288>]
      (driver_probe_device+0x33c/0x478)
      
      Note that we also need to remove the related enable_irq() to avoid
      getting the following:
      
      WARNING: CPU: 0 PID: 1 at kernel/irq/manage.c:529 enable_irq+0x34/0x70
      [<c01afa04>] (enable_irq) from [<c0c0f1fc>] (omap3_pm_init+0x118/0x3f8)
      [<c0c0f1fc>] (omap3_pm_init) from [<c0c0ae7c>] (am35xx_init_late+0x10/0x18)
      
      Cc: Kevin Hilman <khilman@baylibre.com>
      Cc: Tero Kristo <t-kristo@ti.com>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      324dd7a6
  2. 08 6月, 2017 1 次提交
  3. 06 6月, 2017 1 次提交
  4. 08 11月, 2016 1 次提交
  5. 01 4月, 2015 1 次提交
  6. 27 3月, 2015 1 次提交
  7. 25 3月, 2015 3 次提交
  8. 19 2月, 2015 1 次提交
  9. 27 10月, 2014 6 次提交
  10. 17 9月, 2014 1 次提交
    • T
      ARM: OMAP3: Fix I/O chain clock line assertion timed out error · 7db143b8
      Tony Lindgren 提交于
      We are getting "PRM: I/O chain clock line assertion timed out" errors
      on early omaps for device tree based booting. This is because we are
      unconditionally calling reconfigure_io_chain while legacy booting
      has omap3_has_io_chain_ctrl() checks in place in omap_hwmod.c.
      
      For device tree based booting, we are calling reconfigure_io_chain
      unconditionally from pinctrl framework. So we need to add a check for
      omap3_has_io_chain_ctrl() to avoid the errors for trying to access
      a register that does not exist.
      
      For es3.0, the documentation in "4.11.2 Device Off-Mode Configuration"
      just mentions PM_WKEN_WKUP[8] bit. For es3.1, there's a new chapter in
      documentation for "4.11.2.2 I/O Wake-Up Mechanism" that describes the
      PM_WKEN_WKUP[16] ST_IO_CHAIN bit. So PM_WKEN_WKUP[16] bit did not get
      added until in es3.1 probaly to fix issues with flakey wake-up events.
      
      We are doing proper checks for ST_IO_CHAIN already in id.c and with
      omap3_has_io_chain_ctrl(). For more information, see also commit
      b02b9172 ("ARM: OMAP3: PM: fix I/O wakeup and I/O chain clock
      control detection").
      
      Let's fix the issue by selecting the right function during init for
      reconfigure_io_chain depending on the omap revision. For es3.0 and
      earlier we need to just toggle EN_IO. By doing this, we can move the
      check for omap3_has_io_chain_ctrl() from omap_hwmod.c to the init code
      in prm_3xxx.c. And then we can unconditionally call reconfigure_io_chain.
      
      Thanks to Paul Walmsley and Nishanth Menon for help with debugging the
      issue.
      
      Fixes: 30a69ef7 ("ARM: OMAP: Move DT wake-up event handling over to use pinctrl-single-omap")
      Cc: Kevin Hilman <khilman@kernel.org>
      Cc: Paul Walmsley <paul@pwsan.com>
      Cc: Tero Kristo <t-kristo@ti.com>
      Reviewed-by: NNishanth Menon <nm@ti.com>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      7db143b8
  11. 08 9月, 2014 1 次提交
  12. 04 7月, 2014 8 次提交
  13. 16 5月, 2014 4 次提交
  14. 12 1月, 2013 1 次提交
    • T
      ARM: OMAP2+: Use omap initcalls · b76c8b19
      Tony Lindgren 提交于
      This way the initcalls don't run on other SoCs on multiplatform
      kernels. Otherwise we'll get something like this when booting
      on vexpress:
      
      omap_hwmod: _ensure_mpu_hwmod_is_setup: MPU initiator hwmod mpu not yet registered
      ...
      WARNING: at arch/arm/mach-omap2/pm.c:82 _init_omap_device+0x74/0x94()
      _init_omap_device: could not find omap_hwmod for mpu
      ...
      omap-dma-engine omap-dma-engine: OMAP DMA engine driver
      ...
      Tested-by: NEzequiel Garcia <ezequiel.garcia@free-electrons.com>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      b76c8b19
  15. 03 1月, 2013 1 次提交
    • P
      ARM: OMAP2/3: PRM: fix bogus OMAP2xxx powerstate return values · 7e7fff82
      Paul Walmsley 提交于
      On OMAP2xxx chips, the register bitfields for the
      PM_PWSTCTRL_*.POWERSTATE and PM_PWSTST_*.LASTSTATEENTERED are
      different than those used on OMAP3/4.  The order is reversed.  So, for
      example, on OMAP2xxx, 0x0 indicates 'ON'; but on OMAP3/4, 0x0
      indicates 'OFF'.  Similarly, on OMAP2xxx, 0x3 indicates 'OFF', but on
      OMAP3/4, 0x3 indicates 'ON'.
      
      To fix this, we treat the OMAP3/4 values as the powerdomain API
      values, and create new low-level powerdomain functions for the
      OMAP2xxx chips which translate between the OMAP2xxx values and the
      OMAP3/4 values.
      
      Without this patch, the conversion of the OMAP2xxx PM code to the
      functional powerstate code results in a non-booting kernel.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      7e7fff82
  16. 18 12月, 2012 1 次提交
  17. 22 11月, 2012 1 次提交
  18. 09 11月, 2012 2 次提交
  19. 21 10月, 2012 3 次提交
    • P
      ARM: OMAP2+: PRM: create PRM reset source API for the watchdog timer driver · 2bb2a5d3
      Paul Walmsley 提交于
      The OMAP watchdog timer driver needs to determine what caused the SoC
      to reset for its GETBOOTSTATUS ioctl.  So, define a set of standard
      reset sources across OMAP SoCs.  For OMAP2xxx, 3xxx, and 4xxx SoCs,
      define mappings from the SoC-specific reset source register bits to
      the standardized reset source IDs.  Create SoC-specific PRM functions
      that read the appropriate per-SoC register and use the mapping to
      return the standardized reset bits.  Register the SoC-specific PRM
      functions with the common PRM code via prm_register().  Create a
      function in the common PRM code, prm_read_reset_sources(), that
      calls the SoC-specific function, registered during boot.
      
      This patch does not yet handle some SoCs, such as AM33xx.  Those SoCs
      were not handled by the code this will replace.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      2bb2a5d3
    • P
      ARM: OMAP2+: powerdomain/PRM: move the low-level powerdomain functions into PRM · 49815399
      Paul Walmsley 提交于
      Move the low-level SoC-specific powerdomain control functions into
      prm*.c.  For example, OMAP2xxx low-level powerdomain functions go into
      prm2xxx.c.  Then remove the unnecessary powerdomain*xxx*.c files.
      
      The objective is to centralize low-level PRM register accesses into
      the prm*.[ch] files, and then to export an OMAP SoC-independent API to
      higher-level OMAP power management code.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Cc: Rajendra Nayak <rnayak@ti.com>
      Cc: Vaibhav Hiremath <hvaibhav@ti.com>
      Acked-by: NRajendra Nayak <rnayak@ti.com>
      Reviewed-by: NRuss Dill <Russ.Dill@ti.com>
      Acked-by: NSantosh Shilimkar <santosh.shilimkar@ti.com>
      49815399
    • P
      ARM: OMAP2+: PRM: split PRM functions into OMAP2, OMAP3-specific files · 139563ad
      Paul Walmsley 提交于
      Move OMAP3xxx-specific PRM functions & macros into prm3xxx.[ch] and
      OMAP2xxx-specific macros into prm2xxx.h.  (prm2xxx.c will be created
      by a subsequent patch when it's needed.)  Move basic PRM register
      access functions into static inline functions in prm2xxx_3xxx.h, leaving
      only OMAP2/3 hardreset functions in prm2xxx_3xxx.c.
      
      Also clarify the initcall function naming to reinforce that this code
      is specifically for the PRM IP block.
      
      This is in preparation for the upcoming powerdomain series and the
      upcoming move of this code to drivers/.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Reviewed-by: NRuss Dill <Russ.Dill@ti.com>
      Acked-by: NSantosh Shilimkar <santosh.shilimkar@ti.com>
      139563ad
  20. 13 9月, 2012 1 次提交
    • T
      ARM: OMAP: Split plat/hardware.h, use local soc.h for omap2+ · dbc04161
      Tony Lindgren 提交于
      As the plat and mach includes need to disappear for single zImage work,
      we need to remove plat/hardware.h.
      
      Do this by splitting plat/hardware.h into omap1 and omap2+ specific files.
      
      The old plat/hardware.h already has omap1 only defines, so it gets moved
      to mach/hardware.h for omap1. For omap2+, we use the local soc.h
      that for now just includes the related SoC headers to keep this patch more
      readable.
      
      Note that the local soc.h still includes plat/cpu.h that can be dealt
      with in later patches. Let's also include plat/serial.h from common.h for
      all the board-*.c files. This allows making the include files local later
      on without patching these files again.
      
      Note that only minimal changes are done in this patch for the
      drivers/watchdog/omap_wdt.c driver to keep things compiling. Further
      patches are needed to eventually remove cpu_is_omap usage in the drivers.
      
      Also only minimal changes are done to sound/soc/omap/* to remove the
      unneeded includes and to define OMAP44XX_MCPDM_L3_BASE locally so there's
      no need to include omap44xx.h.
      
      While at it, also sort some of the includes in the standard way.
      
      Cc: linux-watchdog@vger.kernel.org
      Cc: alsa-devel@alsa-project.org
      Cc: Peter Ujfalusi <peter.ujfalusi@ti.com>
      Cc: Jarkko Nikula <jarkko.nikula@bitmer.com>
      Cc: Liam Girdwood <lrg@ti.com>
      Acked-by: NWim Van Sebroeck <wim@iguana.be>
      Acked-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      dbc04161