1. 04 7月, 2012 2 次提交
  2. 22 6月, 2012 2 次提交
    • R
      ARM: OMAP4: hwmod data: Force HDMI in no-idle while enabled · dc57aef5
      Ricardo Neri 提交于
      As per the OMAP4 documentation, audio over HDMI must be transmitted in
      no-idle mode. This patch adds the HWMOD_SWSUP_SIDLE so that omap_hwmod uses
      no-idle/force-idle settings instead of smart-idle mode.
      
      This is required as the DSS interface clock is used as functional clock
      for the HDMI wrapper audio FIFO. If no-idle mode is not used, audio could
      be choppy, have bad quality or not be audible at all.
      Signed-off-by: NRicardo Neri <ricardo.neri@ti.com>
      [b-cousson@ti.com: Update the subject and align the .flags
      location with the script template]
      Signed-off-by: NBenoit Cousson <b-cousson@ti.com>
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      dc57aef5
    • P
      ARM: OMAP4: hwmod data: fix 32k sync timer idle modes · 252a4c54
      Paul Walmsley 提交于
      The 32k sync timer IP block target idle modes in the hwmod data are
      incorrect.  The IP block does not support any smart-idle modes.
      Update the data to reflect the correct modes.
      
      This problem was initially identified and a diff fragment posted to
      the lists by Benoît Cousson <b-cousson@ti.com>.  A patch description
      bug in the first version was also identified by Benoît.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Cc: Benoît Cousson <b-cousson@ti.com>
      Cc: Tero Kristo <t-kristo@ti.com>
      252a4c54
  3. 20 6月, 2012 1 次提交
  4. 19 6月, 2012 1 次提交
    • K
      ARM: OMAP2+: hwmod: use init-time function ptrs for enable/disable module · 9ebfd285
      Kevin Hilman 提交于
      The enable/disable module functions are specific to SoCs with
      OMAP4-class PRCM.  Rather than use cpu_is* checks at runtime inside
      the enable/disable module functions, use cpu_is at init time to
      initialize function pointers only for SoCs that need them.
      
      NOTE: the cpu_is* check for _enable_module was different than
            the one for _disable_module, and this patch uses
            cpu_is_omap44xx() for both.
      Signed-off-by: NKevin Hilman <khilman@ti.com>
      [paul@pwsan.com: moved soc_ops function pointers to be per-kernel rather than
       per-hwmod since they do not vary by hwmod; added kerneldoc]
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      9ebfd285
  5. 14 6月, 2012 1 次提交
    • J
      ARM: OMAP2+: HWMOD: Correct timer device attributes · 139486fa
      Jon Hunter 提交于
      Fix the following issues with the timer device attributes for OMAP2+ devices:
      
      1. For OMAP24xx devices, timers 2-8 have the ALWAYS-ON attribute indicating
         that these timers are in an ALWAYS-ON power domain. This is not the case
         only timer1 is in an ALWAYS-ON power domain.
      2. For OMAP3xxx devices, timers 2-7 have the ALWAYS-ON attribute indicating
         that these timers are in an ALWAYS-ON power domain. This is not the case
         only timer1 and timer12 are in an ALWAYS-ON power domain.
      3. For OMAP3xxx devices, timer12 does not have the ALWAYS-ON attribute but
         is in an always-on power domain.
      Signed-off-by: NJon Hunter <jon-hunter@ti.com>
      Acked-by: NPaul Walmsley <paul@pwsan.com>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      139486fa
  6. 01 6月, 2012 1 次提交
  7. 09 5月, 2012 3 次提交
    • K
      ARM: OMAP2+: WDTIMER integration: fix !PM boot crash, disarm timer after hwmod reset · 414e4128
      Kevin Hilman 提交于
      Without runtime PM enabled, hwmod needs to leave all IP blocks in an
      enabled state by default so any driver access to the HW will succeed.
      This is accomplished by seting the postsetup_state to enabled for all
      hwmods during init when runtime PM is disabled.
      
      Currently, we have a special case for WDT in that its postsetup_state
      is always set to disabled.  This is done so that the WDT is disabled
      and the timer is disarmed at boot in case there is no WDT driver.
      This also means that when runtime PM is disabled, if a WDT driver *is*
      built in the kernel, the kernel will crash on the first access to the
      WDT hardware.
      
      We can't simply leave the WDT module enabled, because the timer is
      armed by default after reset. That means that if there is no WDT
      driver initialzed or loaded before the timer expires, the kernel will
      reboot.
      
      To fix this, a custom reset method is added to the watchdog class of
      omap_hwmod.  This method will *always* disarm the timer after hwmod
      reset.  The WDT timer then will only be rearmed when/if the driver is
      loaded for the WDT.  With the timer disarmed by default, we no longer
      need a special-case for the postsetup_state of WDT during init, so it
      is removed.
      
      Any platforms wishing to ensure the watchdog remains armed across the
      entire boot boot can simply disable the reset-on-init feature of the
      watchdog hwmod using omap_hwmod_no_setup_reset().
      
      Tested on 3530/Overo, 4430/Panda.
      
      NOTE: on 4430, the hwmod OCP reset does not seem to rearm the timer as
      documented in the TRM (and what happens on OMAP3.)  I noticed this
      because testing the HWMOD_INIT_NO_RESET feature with no driver loaded,
      I expected a reboot part way through the boot, but did not see a
      reboot.  Adding some debug to read the counter, I verified that right
      after OCP softreset, the counter is not firing.  After writing the
      magic start sequence, the timer starts counting.  This means that the
      timer disarm sequence added here does not seem to be needed for 4430,
      but is technically the correct way to ensure the timer is disarmed, so
      it is left in for OMAP4.
      
      Special thanks to Paul Walmsley for helping brainstorm ideas to fix
      this problem.
      
      Cc: Paul Walmsley <paul@pwsan.com>
      Signed-off-by: NKevin Hilman <khilman@ti.com>
      Cc: Santosh Shilimkar <santosh.shilimkar@ti.com>
      Acked-by: NSantosh Shilimkar <santosh.shilimkar@ti.com>
      [paul@pwsan.com: updated the omap2_wd_timer_reset() function in the
       wake of commit 3c55c1ba ("ARM:
       OMAP2+: hwmod: Revert "ARM: OMAP2+: hwmod: Make omap_hwmod_softreset
       wait for reset status""); added kerneldoc; rolled in warning fix from Kevin]
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      414e4128
    • P
      ARM: OMAP4: hwmod_data: Name the common irq for McBSP ports · 437e8970
      Peter Ujfalusi 提交于
      Use 'common' as name for the common irq number in hwmod data for the McBSP
      ports. The same name already in use for OMAP2430, and OMAP3.
      Signed-off-by: NPeter Ujfalusi <peter.ujfalusi@ti.com>
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      437e8970
    • S
      ARM: OMAP4: hwmod data: I2C: add flag for context restore · aa8f6cef
      Shubhrajyoti D 提交于
      Restore of context is not done for OMAP4. This patch
      adds the OMAP_I2C_FLAG_RESET_REGS_POSTIDLE in the OMAP4
      hwmod data which activates the restore for OMAP4.
      Currently the OMAP4 does not hit device off still the
      driver may have support for it.
      
      Cc: Benoit Cousson <b-cousson@ti.com>
      Cc: Paul Wamsley <paul@pwsan.com>
      Reviewed-by: NKevin Hilman <khilman@ti.com>
      Signed-off-by: NShubhrajyoti D <shubhrajyoti@ti.com>
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      aa8f6cef
  8. 20 4月, 2012 14 次提交
  9. 19 4月, 2012 6 次提交
    • P
      ARM: OMAP2+: hwmod data: remove forward declarations, reorganize · 844a3b63
      Paul Walmsley 提交于
      Reorganize the hwmod data to declare the IP blocks first and the
      interconnects second.  This allows us to remove the forward
      declarations, which this patch also does. Saves some lines of source
      data.  While here, take the opportunity to synchronize the order of
      the OMAP44xx hwmod data with the autogenerator output -- it's slightly
      different due to past mismerges -- and fix a few minor typos and
      whitespace problems in the files.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Cc: Benoît Cousson <b-cousson@ti.com>
      844a3b63
    • P
      ARM: OMAP2+: hwmod data: convert to link registration · 0a78c5c5
      Paul Walmsley 提交于
      Register interconnect links between IP blocks, rather than the IP
      blocks themselves.  (The IP blocks will be registered as a side-effect
      of registering the links.)
      
      The objective is to reduce the number of lines of static data and
      facilitate the sharing of IP block data between different SoCs.  These
      objectives come at the penalty of increased boot time due to increased
      computation.
      
      While here, fix a few whitespace problems and inaccurate variable names.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Cc: Benoît Cousson <b-cousson@ti.com>
      0a78c5c5
    • P
      ARM: OMAP4: hwmod data: uncomment some "excluded" hwmods · 53c4c6c3
      Paul Walmsley 提交于
      Some hwmods were commented out from the OMAP4 data, under the theory
      that they shouldn't be added until drivers were ready.  But part of
      the utility of the hwmod code is that it can reset and properly
      initialize IP blocks that have no drivers associated with them.
      Rather than commenting the links in the future hwmod data conversion
      patches, discussing this with Benoit, it seems best to simply
      uncomment them now.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Cc: Benoît Cousson <b-cousson@ti.com>
      53c4c6c3
    • P
      ARM: OMAP4: hwmod data: add OCP_USER_DSP; mark omap44xx_dsp__iva appropriately · 3d10f0d6
      Paul Walmsley 提交于
      One of the OMAP4 links was missing OCP_USER flags, since it was only
      used by the DSP initiator, and we did not have an OCP_USER_DSP flag.
      Future patches will switch the hwmod code and data to register
      interfaces, rather than hwmods, and it will be mandatory for all
      interfaces to have at least one user bit set.  This patch resolves the
      issue by adding OCP_USER_DSP and marking the DSP-IVA interface
      appropriately.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Cc: Benoît Cousson <b-cousson@ti.com>
      
      
      3d10f0d6
    • P
      ARM: OMAP4: hwmod data: remove bandgap hwmod · 8291113f
      Paul Walmsley 提交于
      Commit 407a6888 ("OMAP4: hwmod data:
      Add AESS, McPDM, bandgap, counter_32k, MMC, KBD, ISS & IPU") adds a
      hwmod for the bandgap die temperature sensor IP block.  This IP block
      has no interconnect port or firewall region, nor does it have an
      independent register space or OCP control registers.  Its registers
      are embedded in the System Control Module (SCM) IP block.  So it
      appears that the bandgap device should be created by the SCM driver.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Cc: Benoît Cousson <b-cousson@ti.com>
      8291113f
    • P
      ARM: OMAP4: hwmod data: remove pseudo-hwmods associated with hardreset lines · f2f5736c
      Paul Walmsley 提交于
      Remove the pseudo-hwmods associated with hardreset lines from the
      OMAP4 data file.  Future patches will convert this data to register
      hwmods by interfaces, rather than registering hwmods directly.  The
      pseudo-hwmods aren't associated with any interfaces, so this will
      create a problem.
      
      After this change, the hwmod code will reset processor IPs at the
      hwmod level, rather than by individual hardreset lines.  So, for
      example, if the IVA device driver code wishes to place one of the
      sequencer cores into reset, while leaving the other active, it must do
      so itself by calling the appropriate PRM functions.
      
      This patch will cause a change in the initialization behavior of the
      DSP, IVA, and IPU.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Cc: Benoît Cousson <b-cousson@ti.com>
      f2f5736c
  10. 13 4月, 2012 1 次提交
    • F
      ARM: OMAP2+: hwmod: add softreset delay field and OMAP4 data · d99de7f5
      Fernando Guzman Lugo 提交于
      Due to HW limitation, some IPs should not be accessed just after a
      softreset. Since the current hwmod sequence is accessing the sysconfig
      register just after the reset, it might lead to OCP bus error in
      that case.
      
      Add a new field in the sysconfig structure to specify a delay in usecs
      needed after doing a softreset.
      
      In the case of the ISS and FDIF modules, the L3 OCP port will be
      disconnected upon a SW reset. That issue was confirmed with HW simulation
      and an errata should be available soon. The HW recommendation to avoid
      that is to wait for 100 OCP clk cycles, before accessing the IP.
      
      Considering the worse case (OPP50), the L3 bus will run at 100 MHz,
      so a 1 usec delay is needed. Add an x2 margin to be safe.
      Acked-by: NBenoit Cousson <b-cousson@ti.com>
      Signed-off-by: NFernando Guzman Lugo <fernando.lugo@ti.com>
      [paul@pwsan.com: dropped FDIF change for now since the hwmod data is not
       yet upstream; the FDIF change will need to be added later once the FDIF
       data is merged]
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      d99de7f5
  11. 04 4月, 2012 1 次提交
  12. 06 3月, 2012 2 次提交
  13. 26 1月, 2012 1 次提交
  14. 16 12月, 2011 2 次提交
  15. 08 11月, 2011 2 次提交
    • A
      ARM: OMAP2PLUS: DSS: Ensure DSS works correctly if display is enabled in bootloader · b923d40d
      Archit Taneja 提交于
      Resetting DISPC when a DISPC output is enabled causes the DSS to go into an
      inconsistent state. Thus if the bootloader has enabled a display, the hwmod code
      cannot reset the DISPC module just like that, but the outputs need to be
      disabled first.
      
      Add function dispc_disable_outputs() which disables all active overlay manager
      and ensure all frame transfers are completed.
      
      Modify omap_dss_reset() to call this function and clear DSS_CONTROL,
      DSS_SDI_CONTROL and DSS_PLL_CONTROL so that DSS is in a clean state when the
      DSS2 driver starts.
      
      This resolves the hang issue(caused by a L3 error during boot) seen on the
      beagle board C3, which has a factory bootloader that enables display. The issue
      is resolved with this patch.
      
      Thanks to Tomi and Sricharan for some additional testing.
      Acked-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      Tested-by: NR, Sricharan <r.sricharan@ti.com>
      Signed-off-by: NArchit Taneja <archit@ti.com>
      [paul@pwsan.com: restructured code, removed omap_{read,write}l(), removed
       cpu_is_omap*() calls and converted to dev_attr]
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      b923d40d
    • T
      ARM: OMAP: HWMOD: Unify DSS resets for OMAPs · 13662dc5
      Tomi Valkeinen 提交于
      This patch adds a custom DSS reset function used on OMAPs from OMAP2
      forward.
      
      The function doesn't actually do a reset, it only waits for the reset to
      complete. The reason for this is that on OMAP4 there is no possibility
      to do a SW reset, and on OMAP2/3 doing a SW reset for dss_core resets
      all the other DSS modules also, thus breaking the HWMOD model where
      every DSS module is handled independently.
      
      This fixes the problem with DSS reset on OMAP4, caused by the fact that
      because there's no SW reset for dss_core on OMAP4, the HWMOD framework
      doesn't try to reset dss_core and thus the DSS clocks were never enabled
      at the same time. This causes causes the HWMOD reset to fail for
      dss_dispc and dss_rfbi.
      
      The common reset function will also allow us to fix another problem in
      the future: before doing a reset we need to disable DSS outputs, which
      are in some cases enabled by the bootloader, as otherwise DSS HW seems
      to get more or less stuck, requiring a power reset to recover.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      [paul@pwsan.com: modified to build arch/arm/mach-omap2/display.o
       unconditionally to avoid an error when !CONFIG_OMAP2_DSS]
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      13662dc5