1. 16 12月, 2011 2 次提交
    • A
      ARM: OMAP: hwmod data: fix the panic on Nokia RM-680 during boot · 91a36bdb
      Aaro Koskinen 提交于
      Booting the Linux kernel on Nokia RM-680 board has been broken since
      2.6.39 due to the following:
      
      [    0.217193] omap_hwmod: timer12: enabling
      [    0.221435] Unhandled fault: external abort on non-linefetch (0x1028) at 0xfa304010
      [    0.229431] Internal error: : 1028 [#1] SMP
      [    0.233825] Modules linked in:
      [    0.237060] CPU: 0    Not tainted  (3.2.0-rc4-dirty #46)
      [    0.242645] PC is at _update_sysc_cache+0x2c/0x7c
      [    0.247589] LR is at _enable+0x1b0/0x2d8
      [    0.251708] pc : [<c0026108>]    lr : [<c0026df4>]    psr: 40000013
      [    0.251708] sp : ef831f40  ip : ef82f380  fp : c06ac0c0
      [    0.263702] r10: 00000000  r9 : c05dfb2c  r8 : ef830000
      [    0.269165] r7 : c0027494  r6 : 00000000  r5 : 00000000  r4 : c06608b0
      [    0.276000] r3 : fa304000  r2 : 00000010  r1 : c0661e28  r0 : c06608b0
      [    0.282806] Flags: nZcv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
      [    0.290405] Control: 10c5387d  Table: 80004019  DAC: 00000017
      [    0.296417] Process swapper (pid: 1, stack limit = 0xef8302f8)
      [    0.302520] Stack: (0xef831f40 to 0xef832000)
      [    0.307098] 1f40: c06608b0 c0026df4 c06ad094 c0035120 00000001 c06608b0 00000000 c0027530
      [    0.315612] 1f60: c0027604 ef830000 c05dfb2c c06608b0 c0642ac0 c0025bf0 c0621234 c062120c
      [    0.324127] 1f80: c0621738 00000013 ef830000 c05dfb6c c0621234 c0008688 c062c880 c009eadc
      [    0.332641] 1fa0: 0000005f 00000000 c0621738 35390013 00000000 00000000 00000000 0000019a
      [    0.341156] 1fc0: c0681cf4 c0621234 c062120c c0621738 00000013 00000000 00000000 00000000
      [    0.349670] 1fe0: 00000000 c05d5298 00000000 c05d5200 c0014fa8 c0014fa8 ffff0000 ffff0000
      [    0.358184] [<c0026108>] (_update_sysc_cache+0x2c/0x7c) from [<c0026df4>] (_enable+0x1b0/0x2d8)
      [    0.367248] [<c0026df4>] (_enable+0x1b0/0x2d8) from [<c0027530>] (_setup+0x9c/0x170)
      [    0.375335] [<c0027530>] (_setup+0x9c/0x170) from [<c0025bf0>] (omap_hwmod_for_each+0x38/0x58)
      [    0.384307] [<c0025bf0>] (omap_hwmod_for_each+0x38/0x58) from [<c05dfb6c>] (omap_hwmod_setup_all+0x40/0xa0)
      [    0.394409] [<c05dfb6c>] (omap_hwmod_setup_all+0x40/0xa0) from [<c0008688>] (do_one_initcall+0x34/0x180)
      [    0.404296] [<c0008688>] (do_one_initcall+0x34/0x180) from [<c05d5298>] (kernel_init+0x98/0x144)
      [    0.413452] [<c05d5298>] (kernel_init+0x98/0x144) from [<c0014fa8>] (kernel_thread_exit+0x0/0x8)
      [    0.422576] Code: e3130c01 1590304c 0590304c 119320b2 (07932002)
      [    0.429046] ---[ end trace 1b75b31a2719ed1c ]---
      [    0.433959] Kernel panic - not syncing: Attempted to kill init!
      
      Timer 12 is not necessarily available on non-GP devices (see e.g.
      http://marc.info/?l=linux-omap&m=129433066521102&w=2), so it should be
      registered only on GP OMAPs. With this change it's again possible to
      boot RM-680 into the shell. Tested with 3.2-rc4.
      Signed-off-by: NAaro Koskinen <aaro.koskinen@nokia.com>
      [paul@pwsan.com: changed subject line]
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      91a36bdb
    • F
      ARM: OMAP: hwmod data: fix iva and mailbox hwmods for OMAP 3 · 7c17c770
      Felipe Contreras 提交于
      Seems the commit 7e89098c was overly aggressive in adding iva and mailbox
      hwmods so now they are registered twice.
      
      ------------[ cut here ]------------
      WARNING: at arch/arm/mach-omap2/omap_hwmod.c:1959 omap_hwmod_register+0x104/0x12c()
      omap_hwmod: iva: _register returned -22
      Modules linked in:
      [<c0012aa4>] (unwind_backtrace+0x0/0xec) from [<c002f970>] (warn_slowpath_common+0x4c/0x64)
      [<c002f970>] (warn_slowpath_common+0x4c/0x64) from [<c002fa08>] (warn_slowpath_fmt+0x2c/0x3c)
      [<c002fa08>] (warn_slowpath_fmt+0x2c/0x3c) from [<c02fdb4c>] (omap_hwmod_register+0x104/0x12c)
      [<c02fdb4c>] (omap_hwmod_register+0x104/0x12c) from [<c02fbb44>] (omap3_init_early+0x1c/0x28)
      [<c02fbb44>] (omap3_init_early+0x1c/0x28) from [<c02f9580>] (setup_arch+0x6b8/0x7a4)
      [<c02f9580>] (setup_arch+0x6b8/0x7a4) from [<c02f754c>] (start_kernel+0x6c/0x264)
      [<c02f754c>] (start_kernel+0x6c/0x264) from [<80008040>] (0x80008040)
      ---[ end trace 1b75b31a2719ed1c ]---
      ------------[ cut here ]------------
      WARNING: at arch/arm/mach-omap2/omap_hwmod.c:1959 omap_hwmod_register+0x104/0x12c()
      omap_hwmod: mailbox: _register returned -22
      Modules linked in:
      [<c0012aa4>] (unwind_backtrace+0x0/0xec) from [<c002f970>] (warn_slowpath_common+0x4c/0x64)
      [<c002f970>] (warn_slowpath_common+0x4c/0x64) from [<c002fa08>] (warn_slowpath_fmt+0x2c/0x3c)
      [<c002fa08>] (warn_slowpath_fmt+0x2c/0x3c) from [<c02fdb4c>] (omap_hwmod_register+0x104/0x12c)
      [<c02fdb4c>] (omap_hwmod_register+0x104/0x12c) from [<c02fbb44>] (omap3_init_early+0x1c/0x28)
      [<c02fbb44>] (omap3_init_early+0x1c/0x28) from [<c02f9580>] (setup_arch+0x6b8/0x7a4)
      [<c02f9580>] (setup_arch+0x6b8/0x7a4) from [<c02f754c>] (start_kernel+0x6c/0x264)
      [<c02f754c>] (start_kernel+0x6c/0x264) from [<80008040>] (0x80008040)
      ---[ end trace 1b75b31a2719ed1d ]---
      Signed-off-by: NFelipe Contreras <felipe.contreras@gmail.com>
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      7c17c770
  2. 08 11月, 2011 3 次提交
    • 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: OMAP3: HWMOD: fix DSS clock data · 6c3d7e34
      Tomi Valkeinen 提交于
      The OMAP3 HWMOD data currently contains these errors with DSS clocks:
      
      - dss_rfbi is missing ick opt-clock, which is needed for RFBI to
        calculate timings
      
      - dss_dsi is missing ick and sys_clk
      
      - dss_venc is missing dss_96m_fck opt-clock, which is required on
        OMAP3430
      
      - dss_venc's interface and main clocks are wrong, causing VENC to fail
        to start
      
      These problems were temporarily fixed with a DSS patch
      9ede365a ("HACK: OMAP: DSS2: clk hack
      for OMAP2/3"), which can be reverted after this patch (and the similar
      patches for other OMAPs).
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      6c3d7e34
    • T
      ARM: OMAP3: HWMOD: Fix DSS reset · 8c3105ca
      Tomi Valkeinen 提交于
      DSS needs all DSS clocks to be enabled to be able to finish reset
      properly. Before v3.1-rc1 the omapdss driver was managing clocks and
      resets correctly. However, when omapdss started using runtime PM at
      v3.1-rc1, the responsibility for the reset moved to HWMOD framework.
      
      HWMOD framework does not currently enable all the DSS clocks when
      resetting the DSS hardware. This hasn't caused any problems so far, but
      we may just have been lucky.
      
      dss_core's opt-clocks is also missing dss_96m_fck, which is a DSS clock
      present only on OMAP3430, and thus required on OMAP3430 to finish the
      reset.
      
      This patch sets HWMOD_CONTROL_OPT_CLKS_IN_RESET and adds the dss_96m_fck
      opt-clock for dss_core in OMAP3 HWMOD data, fixing the issue.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      [paul@pwsan.com: merged duplicate .flags fields]
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      8c3105ca
  3. 05 11月, 2011 1 次提交
    • P
      ARM: OMAP3: hwmod: fix variant registration and remove SmartReflex from common list · ace90216
      Paul Walmsley 提交于
      Commit d6504acd ("OMAP2+: hwmod:
      remove OMAP_CHIP*") tests the inverse condition of what it should be
      testing for the return value from omap_hwmod_register().  This causes
      several IP blocks to not be registered on several OMAP3 family devices.
      
      Fixing that bug also unmasked another bug, originally reported by
      Chase Maupin <chase.maupin@ti.com> and then subsequently by Abhilash K
      V <abhilash.kv@ti.com>, which caused SmartReflex IP blocks to be
      registered on SoCs that don't support them.
      
      Thanks to Russell King - ARM Linux <linux@arm.linux.org.uk> for comments
      on a previous version of the patch.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Cc: Chase Maupin <chase.maupin@ti.com>
      Cc: Abhilash K V <abhilash.kv@ti.com>
      Cc: Russell King - ARM Linux <linux@arm.linux.org.uk>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      ace90216
  4. 07 10月, 2011 1 次提交
  5. 22 9月, 2011 1 次提交
  6. 16 9月, 2011 1 次提交
  7. 15 9月, 2011 1 次提交
    • P
      OMAP2+: hwmod: remove OMAP_CHIP* · d6504acd
      Paul Walmsley 提交于
      At Tony's request, remove the OMAP_CHIP* flags from the hwmod data, and
      replace it instead with chip family, variant, and ES level-specific lists
      of hwmods to register.
      
      Thanks to Gražvydas Ignotas <notasas@gmail.com> for finding a bug in the
      AM3517/3505 support, and for other review comments.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Cc: Gražvydas Ignotas <notasas@gmail.com>
      d6504acd
  8. 10 7月, 2011 11 次提交
  9. 21 4月, 2011 1 次提交
    • A
      OMAP2/3: hwmod: fix gpio-reset timeouts seen during bootup. · f95440ca
      Avinash.H.M 提交于
      GPIO module expects the debounce clocks to be enabled during reset. It doesn't
      reset properly and timeouts are seen, if this clock isn't enabled during
      reset. Add the HWMOD_CONTROL_OPT_CLKS_IN_RESET flags to the GPIO HWMODs, with
      which the debounce clocks are enabled during reset.
      
      Cc: Rajendra Nayak <rnayak@ti.com>
      Cc: Paul Walmsley <paul@pwsan.com>
      Cc: Benoit Cousson <b-cousson@ti.com>
      Cc: Kevin Hilman <khilman@ti.com>
      Signed-off-by: NAvinash.H.M <avinashhm@ti.com>
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      f95440ca
  10. 20 4月, 2011 1 次提交
  11. 11 3月, 2011 3 次提交
  12. 10 3月, 2011 4 次提交
    • A
      omap: hwmod: add syss reset done flags to omap2, omap3 hwmods · d73d65fa
      Avinash.H.M 提交于
      Some of the omap2, omap3 peripherals support software reset. This
      can be done through the softreset bit in sysconfig register.
      The reset status can be checked through resetdone bit of
      sysstatus register. syss_has_reset_status is added to the hwmod
      database of peripherals which have resetdone bit in sysstatus register.
      
      Cc: Rajendra Nayak <rnayak@ti.com>
      Cc: Paul Walmsley <paul@pwsan.com>
      Cc: Benoit Cousson <b-cousson@ti.com>
      Cc: Kevin Hilman <khilman@ti.com>
      Reviewed-by: NGovindraj.R <govindraj.raja@ti.com>
      Signed-off-by: NAvinash.H.M <avinashhm@ti.com>
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      d73d65fa
    • B
      OMAP3: hwmod data: Remove masters port links for interconnects. · 478f478b
      Benoit Cousson 提交于
      Master ports from interconnect are generating some annoying circular
      references that become tricky to handle if we have to dynamically
      remove some IP on some variant platforms.
      Since they are not used for the moment, and since we can still build
      that relation using the reverse relation (slave port from the IP
      toward master port of the interconnect), let remove them for the
      moment like it is done on OMAP4.
      Signed-off-by: NBenoit Cousson <b-cousson@ti.com>
      Cc: Paul Walmsley <paul@pwsan.com>
      Cc: Sanjeev Premi <premi@ti.com>
      478f478b
    • B
      OMAP3: hwmod data: Fix incorrect SmartReflex -> L4 CORE interconnect links · b9ccf8af
      Benoit Cousson 提交于
      Commit d3442726 ("OMAP3: PM: Adding
      smartreflex hwmod data") added data that claims that the L4 CORE has
      two slave interfaces that originate from the SmartReflex modules,
      omap3_l4_core__sr1 and omap3_l4_core__sr2.  But as those two data
      structure records show, it's L4 CORE that has a master port towards
      SR1 and SR2.
      Move the incorrect data from slaves list to master list.
      
      Based on a path by Paul Walmsley <paul@pwsan.com>
      
          https://patchwork.kernel.org/patch/623171/
      
      That is based on a patch by Benoît Cousson <b-cousson@ti.com>:
      
          https://patchwork.kernel.org/patch/590561/Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Signed-off-by: NBenoît Cousson <b-cousson@ti.com>
      Cc: Sanjeev Premi <premi@ti.com>
      Cc: Thara Gopinath <thara@ti.com>
      b9ccf8af
    • P
      OMAP2/3: VENC hwmod: add OCPIF_SWSUP_IDLE flag to interface · c39bee8a
      Paul Walmsley 提交于
      According to the hwmod interface data, the DSS submodule "VENC" uses a
      clock, "dss_54m_fck"/"dss_tv_fck", which the PRCM cannot autoidle.  By
      default, the hwmod code assumes that interface clocks can be autoidled
      by the PRCM.  When the interface clock can't be autoidled by the PRCM,
      those interfaces must be marked with the OCPIF_SWSUP_IDLE flag.
      Otherwise, the "interface clock" will always have a non-zero use
      count, and the device won't enter idle.  This problem was observed on
      N8x0.
      
      Fix the immediate problem by marking the VENC interface with the
      OCPIF_SWSUP_IDLE flag.  But it's not clear that
      "dss_54m_fck"/"dss_tv_fck" is really the correct interface clock for
      VENC.  It may be that the VENC interface should use a
      hardware-autoidling interface clock.  This is the situation on OMAP4,
      which uses "l3_div_ck" as the VENC interface clock, which can be
      autoidled by the PRCM.  Clarification from TI is needed.
      
      Problem found and patch tested on N8x0 by Tony Lindgren
      <tony@atomide.com>.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Cc: Tony Lindgren <tony@atomide.com>
      Cc: Senthilvadivu Guruswamy <svadivu@ti.com>
      Cc: Sumit Semwal <sumit.semwal@ti.com>
      Cc: Kevin Hilman <khilman@ti.com>
      Cc: Benoît Cousson <b-cousson@ti.com>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      c39bee8a
  13. 09 3月, 2011 1 次提交
  14. 08 3月, 2011 1 次提交
    • P
      OMAP: smartreflex: move plat/smartreflex.h to mach-omap2/smartreflex.h · 7328ff4d
      Paul Walmsley 提交于
      There's no reason for this header file to be in
      plat-omap/include/plat/smartreflex.h.  The hardware devices are in
      OMAP2+ SoCs only.  Leaving this header file in plat-omap causes
      problems due to cross-dependencies with other header files that should
      live in mach-omap2/.
      
      Thanks to Benoît Cousson <b-cousson@ti.com> for suggesting the removal
      of the smartreflex.h include from the OMAP3xxx hwmod data.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Cc: Benoît Cousson <b-cousson@ti.com>
      7328ff4d
  15. 02 3月, 2011 2 次提交
  16. 01 3月, 2011 1 次提交
    • P
      OMAP2+: hwmod: rename some init functions · 550c8092
      Paul Walmsley 提交于
      Rename omap_hwmod_init() to omap_hwmod_register().  Rename
      omap_hwmod_late_init() to omap_hwmod_setup_all().  Also change all of
      the callers to reflect the new names.  While here, update some
      copyrights.
      
      Suggested by Tony Lindgren <tony@atomide.com>.
      
      N.B. The comment in mach-omap2/serial.c may no longer be correct, given
           recent changes in init order.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Cc: Benoît Cousson <b-cousson@ti.com>
      Cc: Kevin Hilman <khilman@ti.com>
      Cc: Tony Lindgren <tony@atomide.com>
      550c8092
  17. 28 2月, 2011 1 次提交
  18. 25 2月, 2011 3 次提交
  19. 23 2月, 2011 1 次提交