1. 04 9月, 2009 7 次提交
    • P
      OMAP2/3 board-*.c files: read bootloader configuration earlier · b3c6df3a
      Paul Walmsley 提交于
      Most board-*.c files read configuration data from the bootloader in
      their .init_machine() function.  This needs to happen earlier, at some
      point before omap2_init_common_hw() is called.  This is because a
      future patch will use the bootloader serial console port information
      to enable the UART clocks earlier, immediately after omap2_clk_init().
      This is in turn necessary since otherwise clock tree usecounts on
      clocks like dpll4_m2x2_ck will be bogus, which can cause the
      currently-active console UART clock to be disabled during boot.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      b3c6df3a
    • P
      OMAP2/3/4 PRCM: add module IDLEST wait code · 71348bca
      Paul Walmsley 提交于
      After a hardware module's clocks are enabled, Linux must wait for it
      to indicate readiness via its IDLEST bit before attempting to access
      the device, otherwise register accesses to the device may trigger an
      abort.  This has traditionally been implemented in the clock
      framework, but this is the wrong place for it: the clock framework
      doesn't know which module clocks must be enabled for a module to leave
      idle; and if a module is not in smart-idle mode, it may never leave
      idle at all.  This type of information is best stored in a
      per-hardware module data structure (coming in a following patch),
      rather than a per-clock data structure.  The new code will use these new
      functions to handle waiting for modules to enable.
      
      Once hardware module data is filled in for all of the on-chip devices,
      the clock framework code to handle IDLEST waiting can be removed.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      71348bca
    • P
      OMAP2/3 PM: create the OMAP PM interface and add a default OMAP PM no-op layer · c0407a96
      Paul Walmsley 提交于
      The interface provides device drivers, CPUFreq, and DSPBridge with a
      means of controlling OMAP power management parameters that are not yet
      supported by the Linux PM PMQoS interface.  Copious documentation is
      in the patch in Documentation/arm/OMAP/omap_pm and the interface
      header file, arch/arm/plat-omap/include/mach/omap-pm.h.
      
      Thanks to Rajendra Nayak <rnayak@ti.com> for adding CORE (VDD2) OPP
      support and moving the OPP table initialization earlier in the event
      that the clock code needs them.  Thanks to Tero Kristo
      <tero.kristo@nokia.com> for fixing the parameter check in
      omap_pm_set_min_bus_tput().  Jouni signed off on Tero's patch.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Signed-off-by: NKevin Hilman <khilman@deeprootsystems.com>
      Signed-off-by: NRajendra Nayak <rnayak@ti.com>
      Signed-off-by: NTero Kristo <tero.kristo@nokia.com>
      Signed-off-by: NJouni Högander <jouni.hogander@nokia.com>
      Cc: Tony Lindgren <tony@atomide.com>
      Cc: Igor Stoppa <igor.stoppa@nokia.com>
      Cc: Richard Woodruff <r-woodruff2@ti.com>
      Cc: Anand Sawant <sawant@ti.com>
      Cc: Sakari Poussa <sakari.poussa@nokia.com>
      Cc: Veeramanikandan Raju <veera@ti.com>
      Cc: Karthik Dasu <karthik-dp@ti.com>
      c0407a96
    • P
      OMAP3 clock: remove superfluous calls to omap2_init_clk_clkdm · 08e3d5f2
      Paul Walmsley 提交于
      omap2_init_clk_clkdm() is called as part of the chip architecture-specific
      initialization code, so calling it again from the struct clk init pointer
      just wastes cycles.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      08e3d5f2
    • P
      OMAP clock: associate MPU clocks with the mpu_clkdm · 19f4d3a9
      Paul Walmsley 提交于
      All MPU-related clocks should be in the mpu_clkdm.  This is needed for the
      upcoming omap_hwmod patches, which needs to know the clockdomain that arm_fck
      is in.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      19f4d3a9
    • S
      OMAP3 clock: Fixed processing of bootarg 'mpurate' · 11b66383
      Sanjeev Premi 提交于
      The argument 'mpurate' had no effect on the MPU
      frequency. This patch fixes the same.
      Signed-off-by: NSanjeev Premi <premi@ti.com>
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      11b66383
    • P
      OMAP: powerdomain: Fix overflow when doing powerdomain deps lookups. · 5d113262
      Paul Walmsley 提交于
      At the end of the list pd is a pointer to a NULL struct, so checking
      if the address == NULL doesn't help here. In fact the original code
      will just keep running past the struct to read who knows what in
      memory.
      
      This case manifests itself when from clkdms_setup() when enabling auto
      idle for a clock domain and the clockdomain usecount is greater than
      0. When _clkdm_add_autodeps() tries to add the a dependency that does
      not exist in the powerdomain->wkdep_srcs array the for loop will run
      past the wkdep_srcs array.
      
      Currently in linux-omap you won't hit this because the not found case
      is never executed, unless you start modifying powerdomains and their
      wakeup/sleep deps.
      Signed-off-by: NMike Chan <mike@android.com>
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      5d113262
  2. 29 8月, 2009 9 次提交
  3. 10 8月, 2009 3 次提交
  4. 08 8月, 2009 1 次提交
  5. 06 8月, 2009 12 次提交
  6. 26 7月, 2009 1 次提交
  7. 25 7月, 2009 7 次提交
    • P
      OMAP3 clock: correct module IDLEST bits: SSI; DSS; USBHOST; HSOTGUSB · 3c82e229
      Paul Walmsley 提交于
      Fix two bugs in the OMAP3 clock tree pertaining to the SSI, DSS,
      USBHOST, and HSOTGUSB devices.  These devices are both interconnect
      initiators and targets.  Without this patch, clk_enable()s on clocks for
      these modules can be very high latency (potentially up to ~200
      milliseconds) and message such as the following are generated:
      
          Clock usbhost_48m_fck didn't enable in 100000 tries
      
      Two bugs are fixed by this patch.  First, OMAP hardware only supports
      target CM_IDLEST register bits on ES2+ chips and beyond.  ES1 chips
      should not wait for these clocks to enable.  So, split the appropriate
      clocks into ES1 and ES2+ variants, so that kernels running on ES1
      devices won't try to wait.
      
      Second, the current heuristic in omap2_clk_dflt_find_idlest() will
      fail for these clocks.  It assumes that the CM_IDLEST bit to wait upon
      is the same as the CM_*CLKEN bit, which is false[1].  Fix by
      implementing custom clkops .find_idlest function pointers for the
      appropriate clocks that return the correct slave IDLEST bit shift.
      
      This was originally fixed in the linux-omap kernel during 2.6.29 in a
      slightly different manner[2][3].
      
      In the medium-term future, all of the module IDLEST code will
      eventually be moved to the omap_hwmod code.
      
      Problem reported by Jarkko Nikula <jhnikula@gmail.com>:
      
          http://marc.info/?l=linux-omap&m=124306184903679&w=2
      
      ...
      
      1. See for example 34xx TRM Revision P Table 4-213 and 4-217 (for the
         DSS case).
      
      2. http://www.spinics.net/lists/linux-omap/msg05512.html et seq.
      
      3. http://lkml.indiana.edu/hypermail/linux/kernel/0901.3/01498.htmlSigned-off-by: NPaul Walmsley <paul@pwsan.com>
      Cc: Jarkko Nikula <jhnikula@gmail.com>
      3c82e229
    • P
      OMAP2 clock: 2430 I2CHS uses non-standard CM_IDLEST register · 3dc21975
      Paul Walmsley 提交于
      OMAP2430 I2CHS CM_IDLEST bits are in CM_IDLEST1_CORE, but the CM_*CLKEN bits
      are in CM_{I,F}CLKEN2_CORE [1].  Fix by implementing a custom clkops
      .find_idlest function to return the correct slave IDLEST register.
      
      ...
      
      1. OMAP2430 Multimedia Device Package-on-Package (POP) Silicon Revision 2.1
         (Rev. V) Technical Reference Manual, tables 4-99 and 4-105.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      3dc21975
    • P
      OMAP2/3 clock: split, rename omap2_wait_clock_ready() · 72350b29
      Paul Walmsley 提交于
      Some OMAP2/3 hardware modules have CM_IDLEST attributes that are not
      handled by the current omap2_wait_clock_ready() code.  In preparation
      for patches that fix the unusual devices, rename the function
      omap2_wait_clock_ready() to omap2_wait_module_ready() and split it
      into three parts:
      
      1. A clkops-specific companion clock return function (by default,
         omap2_clk_dflt_find_companion())
      
      2. A clkops-specific CM_IDLEST register address and bit shift return
         function (by default, omap2_clk_dflt_find_idlest())
      
      3. Code to wait for the CM to indicate that the module is ready
         (omap2_cm_wait_idlest())
      
      Clocks can now specify their own custom find_companion() and find_idlest()
      functions; used in subsequent patches.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      72350b29
    • R
      OMAP3 SDRC: Move the clk stabilization delay to the right place · df56556e
      Rajendra Nayak 提交于
      The clock stabilization delay post a M2 divider change is needed
      even before a SDRC interface clock re-enable and not only before
      jumping back to SDRAM.
      Signed-off-by: NRajendra Nayak <rnayak@ti.com>
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      df56556e
    • R
      OMAP3 SDRC: Fix freeze when scaling CORE dpll to < 83Mhz · 8ff120e5
      Rajendra Nayak 提交于
      This patch fixes a bug in the CORE dpll scaling sequence which was
      errouneously clearing some bits in the SDRC DLLA CTRL register and
      hence causing a freeze.  The issue was observed only on platforms
      which scale CORE dpll to < 83Mhz and hence program the DLL in fixed
      delay mode.
      
      Issue reported by Limei Wang <E12499@motorola.com>, with debugging
      assistance from Richard Woodruff <r-woodruff2@ti.com> and Girish
      Ghongdemath <girishsg@ti.com>.
      Signed-off-by: NRajendra Nayak <rnayak@ti.com>
      Cc: Limei Wang <E12499@motorola.com>
      Cc: Richard Woodruff <r-woodruff2@ti.com>
      Cc: Girish Ghongdemath <girishsg@ti.com>
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      [paul@pwsan.com: updated patch description to include collaboration credits]
      8ff120e5
    • P
      OMAP2/3 SDRC: don't set SDRC_POWER.PWDENA on boot · 75f251e3
      Paul Walmsley 提交于
      Stop setting SDRC_POWER.PWDENA on boot.  There is a nasty erratum
      (34xx erratum 1.150) that can cause memory corruption if PWDENA is
      enabled.
      
      Based originally on a patch from Samu P. Onkalo <samu.p.onkalo@nokia.com>.
      
      Tested on BeagleBoard rev C2.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Cc: Samu P. Onkalo <samu.p.onkalo@nokia.com>
      75f251e3
    • J
      OMAP3: Setup MUX settings for SDRC CKE signals · 9fb97412
      Jean Pihet 提交于
      This patches ensures the MUX settings are correct for the SDRC
      CKE signals to SDRAM. This allows the self-refresh to work when
      2 chip-selects are in use.
      
      A warning is thrown away in case the initial muxing is incorrect,
      in order to track faulty or old-dated bootloaders.
      Note: The CONFIG_OMAP_MUX and CONFIG_OMAP_MUX_WARNINGS options
      must be enabled for the mux code to have effect.
      Signed-off-by: NJean Pihet <jpihet@mvista.com>
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      9fb97412