1. 23 8月, 2009 1 次提交
    • M
      sh: Runtime PM for SuperH Mobile platform bus devices · 6a93dde1
      Magnus Damm 提交于
      This patch is V3 of the SuperH Mobile Runtime PM platform bus
      implentation matching Rafael's Runtime PM v16.
      
      The code gets invoked from the SuperH specific Runtime PM
      platform bus functions that override the weak symbols for:
       - platform_pm_runtime_suspend()
       - platform_pm_runtime_resume()
       - platform_pm_runtime_idle()
      
      This Runtime PM implementation performs two levels of power
      management. At the time of platform bus runtime suspend the
      clock to the device is stopped instantly. Later on if all
      devices within the power domain has their clocks stopped
      then the device driver ->runtime_suspend() callbacks are
      used to save hardware register state for each device.
      
      Device driver ->runtime_suspend() calls are scheduled from
      cpuidle context using platform_pm_runtime_suspend_idle().
      When all devices have been fully suspended the processor
      is allowed to enter deep sleep from cpuidle.
      
      The runtime resume operation turns on clocks and also
      restores registers if needed. It is worth noting that the
      devices start in a suspended state and the device driver
      is responsible for calling runtime resume before accessing
      the actual hardware.
      
      In this particular platform bus implementation runtime
      resume is not allowed from interrupt context. Runtime
      suspend is however allowed from interrupt context as
      long as the synchronous functions are avoided.
      
      [ updated for v17 -- PFM. ]
      Signed-off-by: NMagnus Damm <damm@igel.co.jp>
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      6a93dde1
  2. 15 8月, 2009 3 次提交
    • M
      sh: sh7724 ddr self-refresh changes · 237674e0
      Magnus Damm 提交于
      This patch updates the SuperH Mobile sleep assembly code with
      support for DBSC memory controller found in the sh7724 processor.
      
      Without this fix the memory hooked up to the sh7724 processor
      will never enter self-refresh mode before suspending to ram. The
      effect of this is that the memory contents most likeley will be
      lost upon resume which may or may not be what you want.
      Signed-off-by: NMagnus Damm <damm@igel.co.jp>
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      237674e0
    • P
      sh: delay slot future proofing via EXPMASK on SH-4A parts. · 7dd6662a
      Paul Mundt 提交于
      This implements EXPMASK initialization code for SH-4A parts, where it is
      possible to disable compat features that will go away in newer cores.
      Presently this includes disabling support for non-nop instructions in the
      rte delay slot, as well as a sleep instruction being placed in a delay
      slot (neither of which the kernel does any longer). As a result of this,
      any future offenders will have illegal slot exceptions generated for
      them.
      
      Associative writes for the memory-mapped cache array are still left
      enabled, until such a point that special cache operations for SH-4A are
      provided to move off of the current (and rather dated) SH-4 versions.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      7dd6662a
    • P
      sh: Make sure rte delay slots are nopped out on all parts. · 7a90e00d
      Paul Mundt 提交于
      Future SH parts do not support any instruction but a nop in the rte delay
      slot, so make the change for all offending parts. SH-5 is excluded from
      this, and already has its own set of restrictions with regards to rte
      delay slot handling.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      7a90e00d
  3. 14 8月, 2009 1 次提交
  4. 13 8月, 2009 1 次提交
  5. 04 8月, 2009 5 次提交
  6. 23 7月, 2009 2 次提交
    • M
      sh: convert processor device setup functions to arch_initcall() · 955c9863
      Magnus Damm 提交于
      Convert the processor platform device setup
      functions from __initcall() and sometimes
      device_initcall() to arch_initcall().
      
      This makes sure that the platform devices are
      registered a bit earlier so the devices are
      available when drivers register using initcall
      levels earlier than device_initcall().
      
      A good example is platform devices needed by
      i2c-sh_mobile.c which registers a bit earlier
      using subsys_initcall().
      Signed-off-by: NMagnus Damm <damm@igel.co.jp>
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      955c9863
    • M
      usb: m66592-udc platform data on_chip support · 2c59b0b7
      Magnus Damm 提交于
      Convert the m66592-udc driver to use the on_chip flag
      from platform data to enable on chip behaviour instead
      of relying on CONFIG_SUPERH_BUILT_IN_M66592 ugliness.
      
      This makes the code cleaner and also allows us to support
      both external and internal m66592 with the same kernel.
      
      It also makes the Kconfig part more future proof since
      we with this patch can add support for new processors
      with on-chip m66592 without modifying the Kconfig.
      
      The patch adds a m66592 header file for platform data
      and ties in platform data to the existing m66592 devices.
      Signed-off-by: NMagnus Damm <damm@igel.co.jp>
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      2c59b0b7
  7. 20 7月, 2009 3 次提交
  8. 04 7月, 2009 3 次提交
    • M
      sh: cpuidle for SuperH Mobile using hwblk · 7426394f
      Magnus Damm 提交于
      This patch adds cpuidle support for SuperH Mobile.
      
      The sleep mode selected by cpuidle is compared with
      the mode selected by the hwblk sleep code and the
      best allowed mode is entered.
      
      At this point "Sleep mode" and "Sleep mode + SF" are
      supported. This code can easily be extended to support
      "Software suspend mode", but the assembly code must
      first be updated to avoid loosing interrupts.
      
      Also, update the code to only copy the assembly snippet
      into internal memory once at bootup.
      Signed-off-by: NMagnus Damm <damm@igel.co.jp>
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      7426394f
    • M
      sh: hwblk for sh7722 · a61c1a63
      Magnus Damm 提交于
      This patch contains the sh7722 specific hwblk implementation.
      
      Hwblk ids are added to the processor specific header file,
      module stop bits and areas are kept track of as hwblks,
      clocks are converted to make use of the shared hwblk code.
      Code to determine allowed sleep modes is also added.
      Signed-off-by: NMagnus Damm <damm@igel.co.jp>
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      a61c1a63
    • M
      sh: hwblk base implementation · 79714acb
      Magnus Damm 提交于
      This patch is the hwblk base implementation, containing
      structures and shared functions dealing with hardware blocks.
      
      A each processor model should provide a list of hwblks and
      describe which module stop bit that is associated with each
      hwblck and how the hwblks are grouped together into areas.
      
      The shared code keeps track of the usage count for each
      hwblk and the areas. Fallback implementations for processor
      specific code are also kept as weak symbols.
      
      The clock framework, the runtime pm code and cpuidle will
      all tie into this hwblk implementation.
      Signed-off-by: NMagnus Damm <damm@igel.co.jp>
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      79714acb
  9. 23 6月, 2009 1 次提交
    • P
      sh: SH7786 SMP support. · 2eb2a436
      Paul Mundt 提交于
      SH7786 is roughly identical to SH-X3 proto SMP, though there are only 2
      CPUs. This just wraps in to the existing SH-X3 SMP code with some minor
      changes for SH7786, including wiring up the IPIs properly, enabling
      IRQ_PER_CPU, and so forth.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      2eb2a436
  10. 17 6月, 2009 3 次提交
  11. 14 6月, 2009 1 次提交
  12. 11 6月, 2009 12 次提交
  13. 02 6月, 2009 3 次提交
  14. 01 6月, 2009 1 次提交
    • P
      sh: Tidy up SH-4A boot_cpu_data.flags probing. · 0bf8513e
      Paul Mundt 提交于
      This tidies up the boot_cpu_data.flags probing on SH-4A. All of them have
      a few things in common, which we can blindly set, rather than having each
      subtype have to set the same flags. We can also make assumptions about
      cache ways and the validity of PTEA, so this also kills off CPU_HAS_PTEA
      as a config option. There was also a bug in the FPU probing, which is now
      tidied up.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      0bf8513e