1. 26 1月, 2013 1 次提交
    • P
      PM / tracing: remove deprecated power trace API · 43720bd6
      Paul Gortmaker 提交于
      The text in Documentation said it would be removed in 2.6.41;
      the text in the Kconfig said removal in the 3.1 release.  Either
      way you look at it, we are well past both, so push it off a cliff.
      
      Note that the POWER_CSTATE and the POWER_PSTATE are part of the
      legacy tracing API.  Remove all tracepoints which use these flags.
      As can be seen from context, most already have a trace entry via
      trace_cpu_idle anyways.
      
      Also, the cpufreq/cpufreq.c PSTATE one is actually unpaired, as
      compared to the CSTATE ones which all have a clear start/stop.
      As part of this, the trace_power_frequency also becomes orphaned,
      so it too is deleted.
      Signed-off-by: NPaul Gortmaker <paul.gortmaker@windriver.com>
      Acked-by: NSteven Rostedt <rostedt@goodmis.org>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      43720bd6
  2. 01 12月, 2012 1 次提交
    • T
      ARM: OMAP: Move plat-omap/dma-omap.h to include/linux/omap-dma.h · 45c3eb7d
      Tony Lindgren 提交于
      Based on earlier discussions[1] we attempted to find a suitable
      location for the omap DMA header in commit 2b6c4e73 (ARM: OMAP:
      DMA: Move plat/dma.h to plat-omap/dma-omap.h) until the conversion
      to dmaengine is complete.
      
      Unfortunately that was before I was able to try to test compile
      of the ARM multiplatform builds for omap2+, and the end result
      was not very good.
      
      So I'm creating yet another all over the place patch to cut the
      last dependency for building omap2+ for ARM multiplatform. After
      this, we have finally removed the driver dependencies to the
      arch/arm code, except for few drivers that are being worked on.
      
      The other option was to make the <plat-omap/dma-omap.h> path
      to work, but we'd have to add some new header directory to for
      multiplatform builds.
      
      Or we would have to manually include arch/arm/plat-omap/include
      again from arch/arm/Makefile for omap2+.
      
      Neither of these alternatives sound appealing as they will
      likely lead addition of various other headers exposed to the
      drivers, which we want to avoid for the multiplatform kernels.
      
      Since we already have a minimal include/linux/omap-dma.h,
      let's just use that instead and add a note to it to not
      use the custom omap DMA functions any longer where possible.
      
      Note that converting omap DMA to dmaengine depends on
      dmaengine supporting automatically incrementing the FIFO
      address at the device end, and converting all the remaining
      legacy drivers. So it's going to be few more merge windows.
      
      [1] https://patchwork.kernel.org/patch/1519591/#
      
      cc: Russell King <linux@arm.linux.org.uk>
      cc: Kevin Hilman <khilman@ti.com>
      cc: "Benoît Cousson" <b-cousson@ti.com>
      cc: Herbert Xu <herbert@gondor.apana.org.au>
      cc: "David S. Miller" <davem@davemloft.net>
      cc: Vinod Koul <vinod.koul@intel.com>
      cc: Dan Williams <djbw@fb.com>
      cc: Mauro Carvalho Chehab <mchehab@infradead.org>
      cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
      cc: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
      cc: David Woodhouse <dwmw2@infradead.org>
      cc: Kyungmin Park <kyungmin.park@samsung.com>
      cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
      cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
      cc: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
      cc: Hans Verkuil <hans.verkuil@cisco.com>
      cc: Vaibhav Hiremath <hvaibhav@ti.com>
      cc: Lokesh Vutla <lokeshvutla@ti.com>
      cc: Rusty Russell <rusty@rustcorp.com.au>
      cc: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
      cc: Afzal Mohammed <afzal@ti.com>
      cc: linux-crypto@vger.kernel.org
      cc: linux-media@vger.kernel.org
      cc: linux-mtd@lists.infradead.org
      cc: linux-usb@vger.kernel.org
      cc: linux-fbdev@vger.kernel.org
      Acked-by: NFelipe Balbi <balbi@ti.com>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      45c3eb7d
  3. 09 11月, 2012 1 次提交
  4. 01 11月, 2012 1 次提交
  5. 23 10月, 2012 1 次提交
    • P
      ARM: OMAP3: PM: apply part of the erratum i582 workaround · 856c3c5b
      Paul Walmsley 提交于
      On OMAP34xx/35xx, and OMAP36xx chips with ES < 1.2, if the PER
      powerdomain goes to OSWR or OFF while CORE stays at CSWR or ON, or if,
      upon chip wakeup from OSWR or OFF, the CORE powerdomain goes ON before
      PER, the UART3/4 FIFOs and McBSP2/3 SIDETONE memories will be
      unusable.  This is erratum i582 in the OMAP36xx Silicon Errata
      document.
      
      This patch implements one of several parts of the workaround: the
      addition of the wakeup dependency between the PER and WKUP
      clockdomains, such that PER will wake up at the same time CORE_L3
      does.
      
      This is not a complete workaround.  For it to be complete:
      
      1. the PER powerdomain's next power state must not be set to OSWR or
         OFF if the CORE powerdomain's next power state is set to CSWR or
         ON;
      
      2. the UART3/4 FIFO and McBSP2/3 SIDETONE loopback tests should be run
         if the LASTPOWERSTATEENTERED bits for PER and CORE indicate that
         PER went OFF while CORE stayed on.  If loopback tests fail, then
         those devices will be unusable until PER and CORE can undergo a
         transition from ON to OSWR/OFF and back ON.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Cc: Tero Kristo <t-kristo@ti.com>
      Cc: Kevin Hilman <khilman@ti.com>
      Signed-off-by: NKevin Hilman <khilman@ti.com>
      856c3c5b
  6. 21 10月, 2012 2 次提交
  7. 19 10月, 2012 1 次提交
    • T
      ARM: OMAP: Split plat/cpu.h into local soc.h for mach-omap1 and mach-omap2 · e4c060db
      Tony Lindgren 提交于
      We want to remove plat/cpu.h. To do this, let's first split
      it to private soc.h to mach-omap1 and mach-omap2. We have to
      keep plat/cpu.h around until the remaining drivers are fixed,
      so let's include the local soc.h in plat/cpu.h and for drivers
      still including plat/cpu.h.
      
      Once the drivers are fixed not to include plat/cpu.h, we
      can remove the file.
      
      This is needed for the ARM common zImage support.
      
      [tony@atomide.com: updated to not print a warning]
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      e4c060db
  8. 18 10月, 2012 2 次提交
  9. 16 10月, 2012 1 次提交
  10. 15 10月, 2012 1 次提交
  11. 13 9月, 2012 1 次提交
  12. 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
  13. 08 8月, 2012 1 次提交
    • K
      Revert "ARM: OMAP3: PM: call pre/post transition per powerdomain" · e0e29fd7
      Kevin Hilman 提交于
      This reverts commit 58f0829b.
      
      Converstion to per-pwrdm per/post transition calls was a bit
      premature.  Only tracking MPU, PER & CORE in the idle path means we
      lose the accounting for all the other powerdomains which may also
      transition in idle.  On OMAP3, due to autodeps, several powerdomains
      transition along with MPU (e.g. DSS, USBHOST), and the accounting for
      these was lost with this patch.  Since the accounting includes the
      context loss counters, drivers for devices in those power domains
      would never notice context lost, so would likely hang after any
      off-mode transitions.
      
      This patch should be revisited when the upcoming clkdm/pwrmdm/voltdm
      use-counting seires is merged since then we can properly do accounting
      without relying on a call in the idle path.
      
      In addition, the original patch had another bug because the PER
      powerdomain accounting was not updated until after the GPIO resume
      hook is called.  Since gpio_resume_after_idle() checks the context
      loss count (which is not yet updated) it would not properly restore
      context, leaving the GPIO banks in an undefined state.
      
      Cc: Jean Pihet <jean.pihet@newoldbits.com>
      Cc: Tero Kristo <t-kristo@ti.com>
      Cc: Rajendra Nayak <rnayak@ti.com>
      Reported-by: NPaul Walmsley <paul@pwsan.com>
      Signed-off-by: NKevin Hilman <khilman@ti.com>
      e0e29fd7
  14. 26 6月, 2012 3 次提交
  15. 22 6月, 2012 3 次提交
  16. 20 6月, 2012 1 次提交
  17. 12 5月, 2012 1 次提交
    • K
      ARM: OMAP3: PM: fix shared PRCM interrupts: leave disabled at boot · 99b59df0
      Kevin Hilman 提交于
      By default, request_irq() will auto-enable the requested IRQ.
      
      For PRCM interrupts, we may want to avoid that until the PM core code
      is fully ready to handle the interrupts.  This is particularily true
      for IO pad interrupts on OMAP3, which are shared between the hwmod
      core and the PRM core.
      
      In order to avoid PRCM IO-chain interrupts until the PM core is ready
      to handle them, ready, set the IRQ_NOAUTOEN flag for the PRCM IO-chain
      interrupt,  which means it will remain disabled after request_irq().
      
      Then, explicitly enable the PRCM interrupts after the request_irq() in
      the PM core (but not in the hwmod core.)
      
      Special thanks to Tero Kristo for suggesting to isolate the fix to
      only the IO-chain interrupt on OMAP3 instead of all PRCM interrupts.
      
      Cc: Tero Kristo <t-kristo@ti.com>
      Acked-by: NPaul Walmsley <paul@pwsan.com>
      Signed-off-by: NKevin Hilman <khilman@ti.com>
      99b59df0
  18. 08 5月, 2012 1 次提交
  19. 18 4月, 2012 1 次提交
    • P
      ARM: OMAP2+: clean up some cppcheck warnings · eeb3711b
      Paul Walmsley 提交于
      Resolve some warnings identified by cppcheck in arch/arm/mach-omap2:
      
          [arch/arm/mach-omap2/usb-tusb6010.c:129]: (style) Checking if unsigned variable 'tmp' is less than zero.
          [arch/arm/mach-omap2/prm_common.c:241]: (error) Possible null pointer dereference: irq_setup - otherwise it is redundant to check if irq_setup is null at line 247
          [arch/arm/mach-omap2/pm34xx.c:790]: (style) Variable 'per_clkdm' is assigned a value that is never used
          [arch/arm/mach-omap2/pm34xx.c:790]: (style) Variable 'core_clkdm' is assigned a value that is never used
          [arch/arm/mach-omap2/pm24xx.c:185]: (style) Variable 'only_idle' is assigned a value that is never used
          [arch/arm/mach-omap2/mux.c:254]: (error) Possible null pointer dereference: mux
          [arch/arm/mach-omap2/mux.c:258]: (error) Possible null pointer dereference: mux
          [arch/arm/mach-omap2/gpmc-onenand.c:178]: (style) Variable 'tick_ns' is assigned a value that is never used
          [arch/arm/mach-omap2/gpio.c:56]: (error) Possible null pointer dereference: pdata - otherwise it is redundant to check if pdata is null at line 57
          [arch/arm/mach-omap2/devices.c:45]: (style) Variable 'l' is assigned a value that is never used
          [arch/arm/mach-omap2/board-omap3evm.c:641] -> [arch/arm/mach-omap2/board-omap3evm.c:639]: (style) Found duplicate branches for if and else.
          [arch/arm/mach-omap2/am35xx-emac.c:95]: (style) Variable 'regval' is assigned a value that is never used
          [arch/arm/mach-omap2/devices.c:74]: (style) Variable 'l' is assigned a value that is never used
          [arch/arm/mach-omap2/pm34xx.c:277]: (style) Variable 'per_prev_state' is assigned a value that is never used
          [arch/arm/plat-omap/dmtimer.c:352]: (error) Possible null pointer dereference: timer - otherwise it is redundant to check if timer is null at line 354
          [arch/arm/plat-omap/omap_device.c:478]: (style) Variable 'c' is assigned a value that is never used
          [arch/arm/plat-omap/usb.c:42]: (style) Variable 'status' is assigned a value that is never used
          [arch/arm/mach-omap1/clock.c:197]: (style) Variable 'dpll1_rate' is assigned a value that is never used
          [arch/arm/mach-omap1/lcd_dma.c:60]: (style) struct or union member 'lcd_dma_info::size' is never used
          [arch/arm/mach-omap1/pm.c:572]: (style) Variable 'entry' is assigned a value that is never used
      
      Some of them are pretty good catches, such as gpio.c:56 and
      usb-tusb6010.c:129.
      
      Thanks to Jarkko Nikula for some comments on the sscanf() warnings.
      It seems that the kernel sscanf() ignores the field width anyway for the
      %d format, so those changes have been dropped from this second version.
      
      Thanks to Daniel Marjamäki <daniel.marjamaki@gmail.com> for pointing
      out that a variable was unnecessarily marked static in the
      board-omap3evm.c change.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Cc: Felipe Balbi <balbi@ti.com>
      Cc: Tony Lindgren <tony@atomide.com>
      Cc: Kevin Hilman <khilman@ti.com>
      Cc: Peter Ujfalusi <peter.ujfalusi@ti.com>
      Cc: Jarkko Nikula <jarkko.nikula@bitmer.com>
      Cc: Charulatha Varadarajan <charu@ti.com>
      Cc: Daniel Marjamäki <daniel.marjamaki@gmail.com>
      Cc: Tarun Kanti DebBarma <tarun.kanti@ti.com>
      Reviewed-by: Charulatha Varadarajan <charu@ti.com> # for gpio.c
      eeb3711b
  20. 29 3月, 2012 1 次提交
  21. 23 3月, 2012 2 次提交
  22. 06 3月, 2012 3 次提交
  23. 06 2月, 2012 1 次提交
  24. 21 1月, 2012 1 次提交
  25. 17 12月, 2011 1 次提交
    • T
      ARM: OMAP3: pm: use prcm chain handler · 22f51371
      Tero Kristo 提交于
      PM interrupt handling is now done through the PRCM chain handler. The
      interrupt handling logic is also split in two parts, to serve IO and
      WKUP events separately. This allows us to handle IO chain events in a
      clean way.
      
      Core event code is also changed in accordance to this, as PRCM
      interrupt handling is done by independent handlers, and the core
      handler should not clear the IO events anymore.
      Signed-off-by: NTero Kristo <t-kristo@ti.com>
      Tested-by: NKevin Hilman <khilman@ti.com>
      Reviewed-by: NKevin Hilman <khilman@ti.com>
      [paul@pwsan.com: use pr_err(); combined with portions of earlier patches and
       the "do not enable PRCM MPU interrupts manually" patch]
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      22f51371
  26. 15 12月, 2011 2 次提交
    • G
      ARM: OMAP2+: UART: Remove omap_uart_can_sleep and add pm_qos · 2fd14964
      Govindraj.R 提交于
      Omap_uart_can_sleep function blocks system wide low power state until
      uart is active remove this func and add qos requests to prevent
      MPU from transitioning.
      
      Keep qos request to default value which will allow MPU to transition
      and while uart baud rate is available calculate the latency value
      from the baudrate and use the same to hold constraint while uart clocks
      are enabled, and if uart is auto-idled the constraint is updated with
      default constraint value allowing MPU to transition.
      
      Qos requests are blocking notifier calls so put these requests to
      work queue, also the driver uses irq_safe version of runtime API's
      and callbacks can be called in interrupt disabled context.
      So to avoid warn on slow path warning while using qos update
      API's from runtime callbacks use the qos_work_queue.
      
      During bootup the runtime_resume call backs might not be called and runtime
      callback gets called only after uart is idled by setting the autosuspend
      timeout. So qos_request from runtime resume callback might not activated during
      boot if uart baudrate is calculated during bootup for console uart, so schedule
      the qos_work queue once we calc_latency while configuring the uart port.
      
      Flush and complete any pending qos jobs in work queue while suspending.
      Signed-off-by: NGovindraj.R <govindraj.raja@ti.com>
      Acked-by: Greg Kroah-Hartman <gregkh@suse.de> (for drivers/tty changes)
      Signed-off-by: NKevin Hilman <khilman@ti.com>
      2fd14964
    • G
      ARM: OMAP2+: UART: cleanup + remove uart pm specific API · 8384c974
      Govindraj.R 提交于
      In preparation to UART runtime conversion remove uart specific calls
      from pm24xx/34xx files and their definition from serial.c
      These func calls will no more be used with upcoming uart runtime design.
      
      1.) omap_uart_prepare_suspend :- can be taken care with driver suspend hooks.
      2.) omap_uart_enable_irqs :- Used to enable/disable uart irq's in suspend
          path from PM code, this is removed as same is handled by
          uart_suspend_port/uart_resume_port in omap-serial driver which will
          do an port_shutdown on suspend freeing irq and port_startup on resume
          enabling back irq.
      3.) Remove prepare_idle/resume_idle calls used to gate uart clocks.
          UART clocks can be gated within driver using runtime funcs
          and be woken up using irq_chaining from omap_prm driver.
      4.) Remove console_locking from idle path as clock gating is done withing
          driver itself with runtime API. Remove is_suspending check used to acquire
          console_lock.
      Signed-off-by: NGovindraj.R <govindraj.raja@ti.com>
      Signed-off-by: NKevin Hilman <khilman@ti.com>
      8384c974
  27. 18 11月, 2011 1 次提交
  28. 08 10月, 2011 3 次提交
    • P
      ARM: OMAP3: PM: restrict erratum i443 handling to OMAP3430 only · 30474544
      Paul Walmsley 提交于
      Based on the documents that I have here, there doesn't appear to be an
      equivalent to erratum i443 for OMAP3630, so restrict this one to OMAP34xx
      chips.
      
      Also, explicitly restrict this erratum to EMU and HS devices.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Signed-off-by: NKevin Hilman <khilman@ti.com>
      30474544
    • P
      ARM: OMAP3: PM: fix I/O wakeup and I/O chain clock control detection · b02b9172
      Paul Walmsley 提交于
      The way that we detect which OMAP3 chips support I/O wakeup and
      software I/O chain clock control is broken.
      
      Currently, I/O wakeup is marked as present for all OMAP3 SoCs other
      than the AM3505/3517.  The TI81xx family of SoCs are at present
      considered to be OMAP3 SoCs, but don't support I/O wakeup.  To resolve
      this, convert the existing blacklist approach to an explicit,
      whitelist support, in which only SoCs which are known to support I/O
      wakeup are listed.  (At present, this only includes OMAP34xx,
      OMAP3503, OMAP3515, OMAP3525, OMAP3530, and OMAP36xx.)
      
      Also, the current code incorrectly detects the presence of a
      software-controllable I/O chain clock on several chips that don't
      support it.  This results in writes to reserved bitfields, unnecessary
      delays, and console messages on kernels running on those chips:
      
          http://www.spinics.net/lists/linux-omap/msg58735.html
      
      Convert this test to a feature test with a chip-by-chip whitelist.
      
      Thanks to Dave Hylands <dhylands@gmail.com> for reporting this problem
      and doing some testing to help isolate the cause.  Thanks to Steve
      Sakoman <sakoman@gmail.com> for catching a bug in the first version of
      this patch.  Thanks to Russell King <linux@arm.linux.org.uk> for
      comments.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Cc: Dave Hylands <dhylands@gmail.com>
      Cc: Steve Sakoman <sakoman@gmail.com>
      Tested-by: NSteve Sakoman <sakoman@gmail.com>
      Cc: Russell King - ARM Linux <linux@arm.linux.org.uk>
      Signed-off-by: NKevin Hilman <khilman@ti.com>
      b02b9172
    • C
      ARM: OMAP3: PM: fix pwrdm_post_transition call sequence · ff2f8e5f
      Charulatha V 提交于
      The context lost count is modified in omap_sram_idle() path when
      pwrdm_post_transition() is called. But pwrdm_post_transition() is called
      only after omap_gpio_resume_after_idle() is called. Correct this so that
      context lost count is modified before calling omap_gpio_resume_after_idle().
      
      This would be useful when OMAP GPIO save/restore context is called by
      the OMAP GPIO driver itself.
      Signed-off-by: NCharulatha V <charu@ti.com>
      Reviewed-by: NSantosh Shilimkar <santosh.shilimkar@ti.com>
      Acked-by: NTony Lindgren <tony@atomide.com>
      Signed-off-by: NKevin Hilman <khilman@ti.com>
      ff2f8e5f