1. 07 3月, 2012 1 次提交
    • Y
      ARM: OMAP3+: PM: VP: fix integer truncation error · 3223d007
      Yuan Jiangli 提交于
      commit 2f34ce81
      (OMAP3: PM: Adding voltage driver support.)
      introduced runtime computation of waittime to handle all potential
      sys clocks available.
      
      In the voltage processor, the SPMSUpdateWait is calculated based on
      the slew rate and the voltage step (SMPSUpdateWait = slew rate *
      Voltage Step). After the voltage processor receives the SMPS_Ack
      signal, the Voltage Controller will wait for SMPSUpdateWait clock
      cycles for the voltage to settle to the new value. For all
      practical purposes, the waittime parameter is the OMAP hardware
      translation of what the slew rate on the PMIC is.
      
      As an example, with TPS62361 on OMAP4460,
      step_size = 10000
      slew_rate = 32000
      sys_clk_rate = 38400
      
      Our current computation results in the following:
       = ((step_size / slew_rate) * sys_clk_rate) / 1000
       = ((10000 / 32000) * 38400 / 1000
       = 0
      
      Fix the same using DIV_ROUND_UP as an extra wait clock cycle
      is better than lesser clock cycle. For the above example, this
      translates to:
       = (10000 * 38400) / (1000 * 32000)
       = 12
      Acked-by: NJon Hunter <jon-hunter@ti.com>
      [nm@ti.com: slightly better implementation]
      Signed-off-by: NNishanth Menon <nm@ti.com>
      Signed-off-by: NYuan Jiangli <jlyuan@motorola.com>
      Acked-by: NKevin Hilman <khilman@ti.com>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      3223d007
  2. 10 2月, 2012 1 次提交
    • R
      ARM: omap: fix oops in arch/arm/mach-omap2/vp.c when pmic is not found · d980e0f8
      Russell King 提交于
      When the PMIC is not found, voltdm->pmic will be NULL.  vp.c's
      initialization function tries to dereferences this, which causes an
      oops:
      
      Unable to handle kernel NULL pointer dereference at virtual address 00000000
      pgd = c0004000
      [00000000] *pgd=00000000
      Internal error: Oops: 5 [#1] PREEMPT
      Modules linked in:
      CPU: 0    Not tainted  (3.3.0-rc2+ #204)
      PC is at omap_vp_init+0x5c/0x15c
      LR is at omap_vp_init+0x58/0x15c
      pc : [<c03db880>]    lr : [<c03db87c>]    psr: 60000013
      sp : c181ff30  ip : c181ff68  fp : c181ff64
      r10: c0407808  r9 : c040786c  r8 : c0407814
      r7 : c0026868  r6 : c00264fc  r5 : c040ad6c  r4 : 00000000
      r3 : 00000040  r2 : 000032c8  r1 : 0000fa00  r0 : 000032c8
      Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
      Control: 10c5387d  Table: 80004019  DAC: 00000015
      Process swapper (pid: 1, stack limit = 0xc181e2e8)
      Stack: (0xc181ff30 to 0xc1820000)
      ff20:                                     c0381d00 c02e9c6d c0383582 c040786c
      ff40: c040ad6c c00264fc c0026868 c0407814 00000000 c03d9de4 c181ff8c c181ff68
      ff60: c03db448 c03db830 c02e982c c03fdfb8 c03fe004 c0039988 00000013 00000000
      ff80: c181ff9c c181ff90 c03d9df8 c03db390 c181ffdc c181ffa0 c0008798 c03d9df0
      ffa0: c181ffc4 c181ffb0 c0055a44 c0187050 c0039988 c03fdfb8 c03fe004 c0039988
      ffc0: 00000013 00000000 00000000 00000000 c181fff4 c181ffe0 c03d1284 c0008708
      ffe0: 00000000 c03d1208 00000000 c181fff8 c0039988 c03d1214 1077ce40 01f7ee08
      Backtrace:
      [<c03db824>] (omap_vp_init+0x0/0x15c) from [<c03db448>] (omap_voltage_late_init+0xc4/0xfc)
      [<c03db384>] (omap_voltage_late_init+0x0/0xfc) from [<c03d9df8>] (omap2_common_pm_late_init+0x14/0x54)
       r8:00000000 r7:00000013 r6:c0039988 r5:c03fe004 r4:c03fdfb8
      [<c03d9de4>] (omap2_common_pm_late_init+0x0/0x54) from [<c0008798>] (do_one_initcall+0x9c/0x164)
      [<c00086fc>] (do_one_initcall+0x0/0x164) from [<c03d1284>] (kernel_init+0x7c/0x120)
      [<c03d1208>] (kernel_init+0x0/0x120) from [<c0039988>] (do_exit+0x0/0x2cc)
       r5:c03d1208 r4:00000000
      Code: e5ca300b e5900034 ebf69027 e5994024 (e5941000)
      ---[ end trace aed617dddaf32c3d ]---
      Kernel panic - not syncing: Attempted to kill init!
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      d980e0f8
  3. 18 11月, 2011 1 次提交
  4. 16 9月, 2011 14 次提交