1. 26 10月, 2013 2 次提交
  2. 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
  3. 08 4月, 2013 1 次提交
  4. 09 2月, 2013 1 次提交
  5. 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
  6. 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
  7. 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
  8. 15 11月, 2012 1 次提交
  9. 06 11月, 2012 1 次提交
  10. 19 10月, 2012 2 次提交
  11. 18 10月, 2012 1 次提交
  12. 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
  13. 03 10月, 2012 1 次提交
  14. 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
  15. 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
  16. 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
  17. 08 5月, 2012 1 次提交
  18. 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
  19. 07 3月, 2012 1 次提交
  20. 06 3月, 2012 3 次提交
  21. 25 2月, 2012 1 次提交
  22. 17 2月, 2012 1 次提交
  23. 15 2月, 2012 1 次提交
  24. 24 11月, 2011 1 次提交
  25. 18 11月, 2011 1 次提交
  26. 01 11月, 2011 1 次提交
  27. 05 10月, 2011 3 次提交
  28. 16 9月, 2011 4 次提交
    • K
      OMAP: omap_device: when building return platform_device instead of omap_device · 3528c58e
      Kevin Hilman 提交于
      All of the device init and device driver interaction with omap_device
      is done using platform_device pointers.  To make this more explicit,
      have omap_device return a platform_device pointer instead of an
      omap_device pointer.
      
      All current users of the omap_device pointer were only using it to get
      at the platform_device pointer or struct device pointer, so fixing all
      of the users was trivial.
      
      This also makes it more difficult for device init code to directly
      access members of struct omap_device, and allows for easier changing
      of omap_device internals.
      
      Cc: Paul Walmsley <paul@pwsan.com>
      Signed-off-by: NKevin Hilman <khilman@ti.com>
      3528c58e
    • K
      OMAP3+: voltage: rename scale and reset functions using voltdm_ prefix · 5e5651be
      Kevin Hilman 提交于
      Rename voltage scaling related functions to use voltdm_ prefix intead
      of omap_voltage_, and cleanup kerneldoc comments in the process.
      
      s/omap_voltage_scale_vdd/voltdm_scale/
      s/omap_voltage_reset/voltdm_reset/
      
      Also, in voltdm_reset() s/target_uvdc/target_volt/ to be consistent with
      naming throughout the file.
      
      No functional changes.
      Signed-off-by: NKevin Hilman <khilman@ti.com>
      5e5651be
    • K
      OMAP3: voltage: rename "mpu" voltagedomain to "mpu_iva" · 280a7275
      Kevin Hilman 提交于
      This voltage domain (a.k.a. VDD1) contains both the MPU and the IVA, so
      rename appropriately.
      
      Also fixup any users of the "mpu" name to use "mpu_iva"
      Signed-off-by: NKevin Hilman <khilman@ti.com>
      280a7275
    • K
      OMAP2+: voltage: start towards a new voltagedomain layer · 81a60482
      Kevin Hilman 提交于
      Start cleaning up the voltage layer to have a voltage domain layer
      that resembles the structure of the existing clock and power domain
      layers.  To that end:
      
      - move the 'struct voltagedomain' out of 'struct omap_vdd_info' to
        become the primary data structure.
      
      - convert any functions taking a pointer to struct omap_vdd_info into
        functions taking a struct voltagedomain pointer.
      
      - convert the register & initialize of voltage domains to look like
        that of powerdomains
      
      - convert omap_voltage_domain_lookup() to voltdm_lookup(), modeled
        after the current powerdomain and clockdomain lookup functions.
      
      - omap_voltage_late_init(): only configure VDD info when
        the vdd_info struct is non-NULL
      Signed-off-by: NKevin Hilman <khilman@ti.com>
      81a60482
  29. 31 8月, 2011 1 次提交