1. 30 1月, 2017 1 次提交
    • V
      PM / OPP: Update OPP users to put reference · 8a31d9d9
      Viresh Kumar 提交于
      This patch updates dev_pm_opp_find_freq_*() routines to get a reference
      to the OPPs returned by them.
      
      Also updates the users of dev_pm_opp_find_freq_*() routines to call
      dev_pm_opp_put() after they are done using the OPPs.
      
      As it is guaranteed the that OPPs wouldn't get freed while being used,
      the RCU read side locking present with the users isn't required anymore.
      Drop it as well.
      
      This patch also updates all users of devfreq_recommended_opp() which was
      returning an OPP received from the OPP core.
      
      Note that some of the OPP core routines have gained
      rcu_read_{lock|unlock}() calls, as those still use RCU specific APIs
      within them.
      Signed-off-by: NViresh Kumar <viresh.kumar@linaro.org>
      Reviewed-by: Chanwoo Choi <cw00.choi@samsung.com> [Devfreq]
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      8a31d9d9
  2. 11 11月, 2016 1 次提交
    • T
      ARM: OMAP2+: Remove legacy PM init · cb6675d6
      Tony Lindgren 提交于
      This is no longer needed when booted with device tree.
      And let's replace cpu_is with soc_is for the PM code to
      avoid confusion, they do the same thing.
      
      Note that omap_pmic_late_init() now just calls
      omap3_twl_init() and omap4_twl_init() to initialize the
      voltage layer so we can remove the remaining references
      to twl-common code and remove it in the following patch.
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      cb6675d6
  3. 04 7月, 2016 1 次提交
    • T
      ARM: OMAP2+: clockdomain: add usecounting support to autoidle APIs · 1d9a5425
      Tero Kristo 提交于
      The previous implementation was racy in many locations, where the current
      status of the clockdomain was read out, some operations were executed,
      and the previous status info was used afterwards to decide next state
      for the clockdomain. Instead, fix the implementation of the allow_idle /
      deny_idle APIs to properly have usecounting support. This allows clean
      handling internally within the clockdomain core, and simplifies the
      usage also within hwmod.
      Signed-off-by: NTero Kristo <t-kristo@ti.com>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      1d9a5425
  4. 25 4月, 2016 1 次提交
  5. 03 10月, 2014 1 次提交
  6. 20 5月, 2014 1 次提交
    • D
      ARM: OMAP2+: Remove suspend_set_ops from common pm late init · 2e4b62dc
      Dave Gerlach 提交于
      In omap2_common_pm_late_init suspend_set_ops was called to set common
      suspend handling functions for all omap platforms. This created two
      problems. First, these suspend ops were being set for all platforms,
      regardless of whether or not suspend support has been integrated so in
      the case of AM33XX, suspend to mem was presented as available but
      failed every time. Second, some platforms will need to define a
      completely separate set of suspend ops, such as AM33XX, due to
      differences from previous omap platforms so there is no need to
      always set the common omap ops.
      
      This patch moves the suspend_set_ops call from omap2_common_pm_late_init
      into a separate function that then gets called in the omap*_pm_init
      functions for each platform.
      Signed-off-by: NDave Gerlach <d-gerlach@ti.com>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      2e4b62dc
  7. 07 5月, 2014 1 次提交
    • T
      ARM: OMAP2+: Fix voltage scaling init for device tree · 2ee5f528
      Tony Lindgren 提交于
      We are currently disabling the init of voltage scaling
      for device tree. With the voltage scaling problems fixed
      for omap3 in general, there's no need to disable the voltage
      scaling init for device tree based booting.
      
      Cc: Kevin Hilman <khilman@linaro.org>
      Cc: Nishanth Menon <nm@ti.com>
      Cc: Paul Walmsley <paul@pwsan.com>
      Cc: Tero Kristo <t-kristo@ti.com>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      2ee5f528
  8. 26 10月, 2013 3 次提交
  9. 22 10月, 2013 1 次提交
  10. 10 4月, 2013 1 次提交
    • N
      cpufreq: OMAP: instantiate omap-cpufreq as a platform_driver · 49ded525
      Nishanth Menon 提交于
      As multi-platform build is being adopted by more and more ARM platforms,
      initcall function should be used very carefully.  For example, when
      CONFIG_ARM_OMAP2PLUS_CPUFREQ is built in the kernel, omap_cpufreq_init()
      will be called on all the platforms to initialize omap-cpufreq driver.
      
      Further, on OMAP, we now use Soc generic cpufreq-cpu0 driver using device
      tree entries.  To allow cpufreq-cpu0 and omap-cpufreq drivers to co-exist
      for OMAP in a single image, we need to ensure the following:
       1. With device tree boot, we use cpufreq-cpu0
       2. With non device tree boot, we use omap-cpufreq
      
      In the case of (1), we will have cpu OPPs and regulator registered
      as part of the device tree nodes, to ensure that omap-cpufreq
      and cpufreq-cpu0 don't conflict in managing the frequency of the
      same CPU, we should not permit omap-cpufreq to be probed.
      
      In the case of (2), we will not have the cpufreq-cpu0 device, hence
      only omap-cpufreq will be active.
      
      To eliminate this undesired these effects, we change omap-cpufreq
      driver to have it instantiated as a platform_driver and register
      "omap-cpufreq" device only when booted without device tree nodes on
      OMAP platforms.
      
      This allows the following:
       a) Will only run on platforms that create the platform_device
          "omap-cpufreq".
       b) Since the platform_device is registered only when device tree nodes
          are *not* populated, omap-cpufreq driver does not conflict with
          the usage of cpufreq-cpu0 driver which is used on OMAP platforms when
          device tree nodes are present.
      
      Inspired by commit 5553f9e2
      (cpufreq: instantiate cpufreq-cpu0 as a platform_driver)
      
      [robherring2@gmail.com: reported conflict of omap-cpufreq vs other
      driver in an non-device tree supported boot]
      Reported-by: NRob Herring <robherring2@gmail.com>
      Signed-off-by: NNishanth Menon <nm@ti.com>
      Acked-by: NViresh Kumar <viresh.kumar@linaro.org>
      Signed-off-by: NKevin Hilman <khilman@linaro.org>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      49ded525
  11. 08 4月, 2013 1 次提交
  12. 09 2月, 2013 1 次提交
  13. 30 1月, 2013 3 次提交
    • P
      ARM: OMAP2+: clockdomain: convert existing atomic usecounts into spinlock-protected shorts/ints · 92493870
      Paul Walmsley 提交于
      The atomic usecounts seem to be confusing, and are no longer needed
      since the operations that they are attached to really should take
      place under lock.  Replace the atomic counters with simple integers,
      protected by the enclosing powerdomain spinlock.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Cc: Kevin Hilman <khilman@deeprootsystems.com>
      92493870
    • P
      ARM: OMAP2+: PM/powerdomain: move omap_set_pwrdm_state() to powerdomain code · c4978fba
      Paul Walmsley 提交于
      Move omap_set_pwrdm_state() from the PM code to the powerdomain code,
      and refactor it to split it up into several functions.  A subsequent patch
      will rename it to conform with the existing powerdomain function names.
      
      This version includes some additional documentation, based on a
      suggestion from Jean Pihet.  It also modifies omap_set_pwrdm_state()
      to not bail out early unless both the powerdomain current power state
      and the next power state are equal.  (Previously it would terminate
      early if the next power state was equal to the target power state,
      which was insufficiently rigorous.)
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Cc: Jean Pihet <jean.pihet@newoldbits.com>
      Cc: Kevin Hilman <khilman@deeprootsystems.com>
      Cc: Tero Kristo <t-kristo@ti.com>
      c4978fba
    • P
      ARM: OMAP2: PM/powerdomain: drop unnecessary pwrdm_wait_transition() · f8457c2d
      Paul Walmsley 提交于
      Drop an unnecessary pwrdm_wait_transition() from mach-omap2/pm.c -
      it's called by the subsequent pwrdm_state_switch().
      
      Also get rid of pwrdm_wait_transition() in the powerdomain code - there's
      no longer any need to export this function.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Cc: Kevin Hilman <khilman@deeprootsystems.com>
      f8457c2d
  14. 26 1月, 2013 1 次提交
    • P
      ARM: OMAP2+: omap_device: remove obsolete pm_lats and early_device code · c1d1cd59
      Paul Walmsley 提交于
      Remove now-obsolete code from arch/arm/mach-omap2/omap_device.c.  This
      mostly consists of removing the first attempt at device PM latency
      handling.  This was never really used, has been replaced by the common
      dev_pm_qos code, and needs to go away as part of the DT conversion.
      Also, the early platform_device creation code has been removed, as it
      appears to be unused.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Cc: Kevin Hilman <khilman@deeprootsystems.com>
      c1d1cd59
  15. 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
  16. 15 11月, 2012 1 次提交
  17. 06 11月, 2012 1 次提交
  18. 19 10月, 2012 2 次提交
  19. 18 10月, 2012 1 次提交
  20. 09 10月, 2012 1 次提交
    • K
      ARM: OMAP2+: PM: MPU DVFS: use generic CPU device for MPU-SS · 24d7b40a
      Kevin Hilman 提交于
      Currently, a dummy omap_device is created for the MPU sub-system so
      that a device node exists for MPU DVFS.  Specifically, for the
      association of MPU OPPs to a device node, and so that a voltage
      regulator can be mapped to a device node.
      
      For drivers to get a handle to this device node, an OMAP-specific API
      has been used.  However, the kernel already has device nodes for the
      CPU(s) in the system, so we can use those instead of an OMAP-specific
      dummy device and then drivers (like OMAP CPUfreq) can use generic
      APIs.
      
      To use the existing CPU device nodes, modify the OPP creation and
      regulator registration to use the CPU0 device node for registraion.
      
      NOTE: this patch always uses CPU0 as the device node.  On all
            OMAPs today, MPU DVFS scales all CPUs together, so this will
            not be a problem, but this assumption will need to be changed
            if independently scalable CPUs are introduced.
      
      Cc: Paul Walmsley <paul@pwsan.com>
      Signed-off-by: NKevin Hilman <khilman@ti.com>
      24d7b40a
  21. 03 10月, 2012 1 次提交
  22. 24 9月, 2012 1 次提交
    • P
      ARM: OMAP2+: clockdomain/hwmod: add workaround for EMU clockdomain idle problems · b71c7217
      Paul Walmsley 提交于
      The idle status of the IP blocks and clocks inside the EMU clockdomain
      isn't taken into account by the PRCM hardware when deciding whether
      the clockdomain is idle.  Add a workaround flag in the clockdomain
      code, CLKDM_MISSING_IDLE_REPORTING, to deal with this problem, and add
      the code necessary to support it.
      
      If CLKDM_MISSING_IDLE_REPORTING is set on a clockdomain, the
      clockdomain will be forced active whenever an IP block inside that
      clockdomain is in use, even if the clockdomain supports
      hardware-supervised idle.  When the kernel indicates that the last
      active IP block inside the clockdomain is no longer used, the
      clockdomain will be forced idle, or, if that mode is not supported in
      the hardware, it will be placed into hardware-supervised idle.
      
      This patch is an equal collaboration with Jon Hunter
      <jon-hunter@ti.com>.  Ming Lei <ming.lei@canonical.com>, Will Deacon
      <will.deacon@arm.com>, Madhav Vij <mvij@ti.com>, Kevin Hilman
      <khilman@ti.com>, Benoît Cousson <b-cousson@ti.com>, and Santosh
      Shilimkar <santosh.shilimkar@ti.com> all made essential contributions
      to the understanding of EMU clockdomain power management on OMAP.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Cc: Jon Hunter <jon-hunter@ti.com>
      Cc: Ming Lei <ming.lei@canonical.com>
      Cc: Will Deacon <will.deacon@arm.com>
      Cc: Madhav Vij <mvij@ti.com>
      Cc: Kevin Hilman <khilman@ti.com>
      Cc: Benoît Cousson <b-cousson@ti.com>
      Cc: Santosh Shilimkar <santosh.shilimkar@ti.com>
      Tested-by: NJon Hunter <jon-hunter@ti.com>
      b71c7217
  23. 23 9月, 2012 1 次提交
    • R
      ARM: OMAP2+: clock: Remove all direct dereferencing of struct clk · 5dcc3b97
      Rajendra Nayak 提交于
      While we move to Common Clk Framework (CCF), direct deferencing of struct
      clk wouldn't be possible anymore. Hence get rid of all such instances
      in the current clock code and use macros/helpers similar to the ones that
      are provided by CCF.
      
      While here also concatenate some strings split across multiple lines
      which seem to be needed anyway.
      Signed-off-by: NRajendra Nayak <rnayak@ti.com>
      [paul@pwsan.com: simplified some compound expressions; reformatted some
       messages]
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Cc: Mike Turquette <mturquette@linaro.org>
      5dcc3b97
  24. 12 9月, 2012 1 次提交
    • P
      ARM: OMAP: unwrap strings · 7852ec05
      Paul Walmsley 提交于
      Find and unwrap wrapped strings in the style:
      
      	pr_debug("clockdomain: hardware cannot set/clear wake up of "
      		 "%s when %s wakes up\n", clkdm1->name, clkdm2->name);
      
      Keeping these strings contiguous seems to be the current Linux kernel
      policy.
      
      The offending lines were found with the following command:
      
          pcregrep -rnM '"\s*$\s*"' arch/arm/*omap*
      
      While here, some messages have been clarified, some pr_warning(
      ... calls have been converted to pr_warn( ..., and some printk(KERN_*
      ... have been converted to pr_*.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      7852ec05
  25. 08 5月, 2012 1 次提交
  26. 30 3月, 2012 1 次提交
    • G
      ARM: OMAP: pm: fix compilation break · 335aece5
      Govindraj.R 提交于
      Fix the compilation break observed on latest mainline caused
      by 9f97da78 (Disintegrate asm/system.h for ARM):
      
      arch/arm/mach-omap1/pm.c: In function 'omap_pm_prepare':
      arch/arm/mach-omap1/pm.c:587: error: implicit declaration of function 'disable_hlt'
      arch/arm/mach-omap1/pm.c: In function 'omap_pm_finish':
      arch/arm/mach-omap1/pm.c:624: error: implicit declaration of function 'enable_hlt'
      arch/arm/mach-omap1/pm.c: In function 'omap_pm_init':
      arch/arm/mach-omap1/pm.c:681: error: 'arm_pm_idle' undeclared (first use in this function)
      ...
      
      arch/arm/mach-omap2/pm.c: In function 'omap_pm_begin':
      arch/arm/mach-omap2/pm.c:239: error: implicit declaration of function 'disable_hlt'
      arch/arm/mach-omap2/pm.c: In function 'omap_pm_end':
      arch/arm/mach-omap2/pm.c:247: error: implicit declaration of function 'enable_hlt'
      Signed-off-by: NGovindraj.R <govindraj.raja@ti.com>
      Acked-by: NKevin Hilman <khilman@ti.com>
      [tony@atomide.com: updated to fix omap1 too]
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      335aece5
  27. 07 3月, 2012 1 次提交
  28. 06 3月, 2012 3 次提交
  29. 25 2月, 2012 1 次提交
  30. 17 2月, 2012 1 次提交
  31. 15 2月, 2012 1 次提交
  32. 24 11月, 2011 1 次提交
  33. 18 11月, 2011 1 次提交