1. 08 5月, 2012 11 次提交
  2. 20 4月, 2012 15 次提交
  3. 19 4月, 2012 14 次提交
    • P
      ARM: OMAP2xxx: hwmod data: start to fix the IVA1, IVA2 and DSP · 3af35fbc
      Paul Walmsley 提交于
      N800 logs this message on boot:
      
      [    0.182281] omap_hwmod: iva: cannot be enabled for reset (3)
      
      Fix by creating basic IVA1 and DSP hwmods for OMAP2420, and a basic IVA2
      hwmod for OMAP2430.  There is still more information to be added, but
      this should resolve the immediate issue.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      3af35fbc
    • P
      ARM: OMAP3: hwmod data: add IVA hard reset lines, main clock, clockdomain · f42c5496
      Paul Walmsley 提交于
      The IVA hwmod data is missing some fields that cause the following
      warning on boot:
      
      [    0.118011] omap_hwmod: iva: cannot be enabled for reset (3)
      
      Fix by encoding the IP block's main functional clock, reset lines, and
      clockdomain.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      f42c5496
    • P
      ARM: OMAP3: hwmod data: fix IVA interface clock · 064931ab
      Paul Walmsley 提交于
      The OMAP3 hwmod data listed iva2_ck as an interface clock between the
      IVA and L3.  This is incorrect.  iva2_ck is not an interface clock.
      Since it cannot auto-idle, specifying it here prevents the IVA and at
      least one of the CORE clockdomains from going idle, which causes PM
      problems such as these upon system suspend:
      
      [   70.626129] Powerdomain (iva2_pwrdm) didn't enter target state 1
      [   70.626190] Powerdomain (core_pwrdm) didn't enter target state 1
      
      Fix by specifying the actual interface clock in the hwmod data.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      064931ab
    • P
      ARM: OMAP2xxx: hwmod data: share common interface data · 6a29755f
      Paul Walmsley 提交于
      Several struct omap_hwmod_ocp_if records can be shared between OMAP2420
      and OMAP2430.  Move these shared records out of the chip-specific files
      into mach-omap2/omap_hwmod_2xxx_interconnect_data.c.  This should save some
      memory and source lines, at the cost of readability.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Cc: Benoît Cousson <b-cousson@ti.com>
      
      6a29755f
    • P
      ARM: OMAP2xxx: hwmod data: share common hwmods between OMAP2420 and OMAP2430 · cb48427e
      Paul Walmsley 提交于
      After the link registration conversion, it's much easier to share some
      hwmod data between OMAP2420 and 2430.  Move the shareable data into a
      common file.  This should save some memory and lines of source, at the
      cost of readability.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Cc: Benoît Cousson <b-cousson@ti.com>
      
      
      cb48427e
    • 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: OMAP: hwmod: remove code support for direct hwmod registration · 11cd4b94
      Paul Walmsley 提交于
      Now that the data has been converted to use interface registration, we
      can remove the (now unused) direct hwmod registration code.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Cc: Benoît Cousson <b-cousson@ti.com>
      11cd4b94
    • 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: OMAP2+: hwmod: add support for link registration · 2221b5cd
      Paul Walmsley 提交于
      Add support for direct IP block interconnect ("link") registration to
      the hwmod code via a new function, omap_hwmod_register_links().  This
      will replace direct registration of hwmods, and a subsequent patch
      will remove omap_hwmod_register().
      
      This change will allow a subsequent patch to remove the hwmod data
      link arrays.  This will reduce the size of the hwmod static data and
      also make it easier to generate the data files.  It will also make it
      possible to share some of the struct omap_hwmod records across
      multiple SoCs, since the link array pointers will be removed from the
      struct omap_hwmod.
      
      The downside is that boot time will increase.  Minimizing boot time
      was the reason why the link arrays were originally introduced.
      Removing them will require extra computation during boot to allocate
      memory and associate IP blocks with their interconnects.  However,
      since the current kernel development focus is on reducing the number
      of lines in arch/arm/mach-omap2/, boot time impact is now seemingly
      considered a lower priority.
      
      This patch contains additional complexity to reduce the number of
      memory allocations required for this change.  This reduces the boot
      time impact: total hwmod link registration time was ~ 2655
      microseconds with a simple allocation strategy, but is now ~ 549
      microseconds[1] with the approach taken by this patch.
      
      1. Measured on a BeagleBoard 35xx @ 500MHz MPU/333 MHz CORE, average
         of 7 samples.  Total uncertainty is +/- 61 microseconds.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Cc: Benoît Cousson <b-cousson@ti.com>
      2221b5cd
    • P
      ARM: OMAP2+: hwmod: consolidate finding the MPU port index and storing it · 24dbc213
      Paul Walmsley 提交于
      An IP block's MPU interface port only needs to be found once.  The result
      can be cached to speed further lookups.  This patch consolidates these
      two steps into a single function.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Cc: Benoît Cousson <b-cousson@ti.com>
      24dbc213
    • P
      ARM: OMAP2+: hwmod: add function to iterate over struct omap_hwmod_ocp_if · 5d95dde7
      Paul Walmsley 提交于
      To reduce the number of lines of data in the OMAP portion of the Linux
      code base, subsequent patches will remove the lists of hwmod
      interconnect links from the static hwmod data.  These lists will be
      built dynamically during boot.  To ease this transition, this patch
      centralizes the way that interconnect links are iterated into a single
      function, _fetch_next_ocp_if().
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Cc: Benoît Cousson <b-cousson@ti.com>
      5d95dde7
    • P
      ARM: OMAP2+: hwmod: add _find_mpu_rt_port() · 2d6141ba
      Paul Walmsley 提交于
      Most IP blocks on the OMAP SoC have an interconnect link that is
      intended to be used by the MPU to communicate with the IP block.
      Several parts of the hwmod code need to be able to identify this link.
      Currently, this is open-coded.  However, future patches will change
      the way that interconnect links are represented and will make
      identifying the link more complex.  So to avoid code duplication, this
      patch centralizes the MPU port link identification code into a new
      function, _find_mpu_rt_port().
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Cc: Benoît Cousson <b-cousson@ti.com>
      2d6141ba
    • P
      ARM: OMAP2+: hwmod: extend OCP_* register offsets from 16 to 32 bits · 515237d6
      Paul Walmsley 提交于
      Extend the OCP_* register offsets in the struct
      omap_hwmod_class_sysconfig to 32 bits.  This is required to add the
      OMAP4+ GPU hwmod, which uses OCP_* register offsets larger than 16
      bits.
      
      Another possible solution may be to simply add a single 16 bit offset
      field in this structure, and to add code to factor that offset into
      all OCP_* register accesses.  This would save some memory, since
      almost no modules need 32 bit offsets.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Cc: Benoît Cousson <b-cousson@ti.com>
      515237d6
    • 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