1. 16 Feb, 2011 3 commits
  2. 14 Feb, 2011 2 commits
  3. 19 Jan, 2011 3 commits
  4. 18 Jan, 2011 1 commit
    • Paul Walmsley's avatar
      OMAP: counter_32k: init clocksource as part of machine timer init · d8328f3b
      Paul Walmsley authored
      After commit dc548fbb ("ARM: omap: convert
      sched_clock() to use new infrastructure"), OMAPs that use the 32KiHz
      "synchronization timer" as their clocksource crash during boot:
      
      [    0.000000] OMAP clockevent source: GPTIMER1 at 32768 Hz
      [    0.000000] Unable to handle kernel NULL pointer dereference at virtual address 00000000
      [    0.000000] pgd = c0004000
      [    0.000000] [00000000] *pgd=00000000
      [    0.000000] Internal error: Oops: 80000005 [#1] SMP
      [    0.000000] last sysfs file:
      [    0.000000] Modules linked in:
      [    0.000000] CPU: 0    Tainted: G        W    (2.6.37-07734-g2467802 #7)
      [    0.000000] PC is at 0x0
      [    0.000000] LR is at sched_clock_poll+0x2c/0x3c
      [    0.000000] pc : [<00000000>]    lr : [<c0060b74>]    psr: 600001d3
      [    0.000000] sp : c058bfd0  ip : c058a000  fp : 00000000
      [    0.000000] r10: 00000000  r9 : 411fc092  r8 : 800330c8
      [    0.000000] r7 : c05a08e0  r6 : c0034c48  r5 : c05ffc40  r4 : c0034c4c
      [    0.000000] r3 : c05ffe6c  r2 : c05a0bc0  r1 : c059f098  r0 : 00000000
      [    0.000000] Flags: nZCv  IRQs off  FIQs off  Mode SVC_32  ISA ARM  Segment kernel
      [    0.000000] Control: 10c53c7f  Table: 8000404a  DAC: 00000017
      
      This is due to the recent ARM init_sched_clock() changes and the late
      initialization of the counter_32k clock source.  More information here:
      
         http://marc.info/?l=linux-omap&m=129513468605208&w=2
      
      
      
      Fix by initializing the counter_32k clocksource during the machine timer
      initialization.
      Reported-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
      Tested-by: default avatarThomas Weber <weber@corscience.de>
      Signed-off-by: default avatarPaul Walmsley <paul@pwsan.com>
      d8328f3b
  5. 13 Jan, 2011 1 commit
  6. 10 Jan, 2011 5 commits
  7. 07 Jan, 2011 5 commits
    • Santosh Shilimkar's avatar
      omap2plus: voltage: Trivial linking fix for 'EINVAL' undeclared · faacebc5
      Santosh Shilimkar authored
      
      
      CC      arch/arm/mach-omap2/omap_hwmod_common_data.o
      In file included from arch/arm/plat-omap/include/plat/omap_hwmod.h:38,
                       from arch/arm/mach-omap2/omap_hwmod_common_data.c:20:
      arch/arm/plat-omap/include/plat/voltage.h: In function 'omap_voltage_late_init':
      arch/arm/plat-omap/include/plat/voltage.h:145: error: 'EINVAL' undeclared (first use in this function)
      arch/arm/plat-omap/include/plat/voltage.h:145: error: (Each undeclared identifier is reported only once
      arch/arm/plat-omap/include/plat/voltage.h:145: error: for each function it appears in.)
      make[1]: *** [arch/arm/mach-omap2/omap_hwmod_common_data.o] Error 1
      make: *** [arch/arm/mach-omap2] Error 2
      
      The error is reported when omap2plus_defconfig built with CONFIG_PM disabled
      Signed-off-by: default avatarSantosh Shilimkar <santosh.shilimkar@ti.com>
      Cc: Thara Gopinath <thara@ti.com>
      Cc: Kevin Hilman <khilman@deeprootsystems.com>
      Cc: Nishanth Menon <nm@ti.com>
      Signed-off-by: default avatarKevin Hilman <khilman@ti.com>
      faacebc5
    • Santosh Shilimkar's avatar
      omap2plus: voltage: Trivial linking fix 'undefined reference' · dd361b6f
      Santosh Shilimkar authored
      
      
      LD      init/built-in.o
      LD      .tmp_vmlinux1
      arch/arm/mach-omap2/built-in.o: In function `omap2_set_init_voltage':
      arch/arm/mach-omap2/pm.c:181: undefined reference to `omap_voltage_domain_lookup'
      arch/arm/mach-omap2/built-in.o: In function `omap4_twl_init':
      arch/arm/mach-omap2/omap_twl.c:244: undefined reference to `omap_voltage_domain_lookup'
      arch/arm/mach-omap2/omap_twl.c:247: undefined reference to `omap_voltage_domain_lookup'
      arch/arm/mach-omap2/omap_twl.c:250: undefined reference to `omap_voltage_domain_lookup'
      make: *** [.tmp_vmlinux1] Error 1
      
      The error is reported when omap2plus_defconfig built with CONFIG_PM disabled
      Signed-off-by: default avatarSantosh Shilimkar <santosh.shilimkar@ti.com>
      Cc: Thara Gopinath <thara@ti.com>
      Cc: Kevin Hilman <khilman@deeprootsystems.com>
      Cc: Nishanth Menon <nm@ti.com>
      Signed-off-by: default avatarKevin Hilman <khilman@ti.com>
      dd361b6f
    • Santosh Shilimkar's avatar
      omap2plus: voltage: Trivial warning fix 'no return statement' · d7e08f1b
      Santosh Shilimkar authored
      
      
      Fix below build warnings
      
       CC      arch/arm/mach-omap2/common.o
        CC      arch/arm/mach-omap2/gpio.o
      In file included from arch/arm/plat-omap/include/plat/omap_hwmod.h:38,
                       from arch/arm/mach-omap2/gpio.c:25:
      arch/arm/plat-omap/include/plat/voltage.h: In function 'omap_voltage_register_pmic':
      arch/arm/plat-omap/include/plat/voltage.h:137: warning: no return statement in function returning non-void
        CC      arch/arm/mach-omap2/dma.o
      In file included from arch/arm/plat-omap/include/plat/omap_hwmod.h:38,
                       from arch/arm/mach-omap2/dma.c:32:
      arch/arm/plat-omap/include/plat/voltage.h: In function 'omap_voltage_register_pmic':
      arch/arm/plat-omap/include/plat/voltage.h:137: warning: no return statement in function returning non-void
        CC      arch/arm/mach-omap2/wd_timer.o
      In file included from arch/arm/plat-omap/include/plat/omap_hwmod.h:38,
                       from arch/arm/mach-omap2/wd_timer.c:15:
      arch/arm/plat-omap/include/plat/voltage.h: In function 'omap_voltage_register_pmic':
      arch/arm/plat-omap/include/plat/voltage.h:137: warning: no return statement in function returning non-void
        CC      arch/arm/mach-omap2/prm44xx.o
        CC      arch/arm/mach-omap2/omap_hwmod.o
      In file included from arch/arm/plat-omap/include/plat/omap_hwmod.h:38,
                       from arch/arm/mach-omap2/omap_hwmod.c:145:
      arch/arm/plat-omap/include/plat/voltage.h: In function 'omap_voltage_register_pmic':
      arch/arm/plat-omap/include/plat/voltage.h:137: warning: no return statement in function returning non-void
        CC      arch/arm/mach-omap2/omap_hwmod_common_data.o
      In file included from arch/arm/plat-omap/include/plat/omap_hwmod.h:38,
                       from arch/arm/mach-omap2/omap_hwmod_common_data.c:20:
      arch/arm/plat-omap/include/plat/voltage.h: In function 'omap_voltage_register_pmic':
      arch/arm/plat-omap/include/plat/voltage.h:137: warning: no return statement in function returning non-void
      
      The error is reported when omap2plus_defconfig built with CONFIG_PM disabled
      Signed-off-by: default avatarSantosh Shilimkar <santosh.shilimkar@ti.com>
      Cc: Thara Gopinath <thara@ti.com>
      Cc: Kevin Hilman <khilman@deeprootsystems.com>
      Cc: Nishanth Menon <nm@ti.com>
      Signed-off-by: default avatarKevin Hilman <khilman@ti.com>
      d7e08f1b
    • Felipe Balbi's avatar
      arm: omap: gpio: don't access irq_desc array directly · 1a9b5878
      Felipe Balbi authored
      
      
      Instead of accessing the irq_desc array directly
      we can use irq_to_desc(irq). That will allow us to,
      if wanted, select SPARSE_IRQ and irq_descs will be
      added to a radix tree, instead of a array.
      Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
      Signed-off-by: default avatarKevin Hilman <khilman@ti.com>
      1a9b5878
    • Mika Westerberg's avatar
      OMAP: GPIO: fix _set_gpio_triggering() for OMAP2+ · f7c5cc45
      Mika Westerberg authored
      
      
      In case on OMAP2+ we call set_24xx_gpio_triggering() instead of
      updating reg and l values. However, at the end of the function we
      perform a write:
      
      	__raw_writel(l, reg);
      
      So on OMAP2+ we end up writing 0 to the bank->base which is not
      correct (typically this points to GPIO_REVISION register).
      
      Fix this by returning immediately after call to
      set_24xx_gpio_triggering().
      Signed-off-by: default avatarMika Westerberg <ext-mika.1.westerberg@nokia.com>
      Signed-off-by: default avatarKevin Hilman <khilman@ti.com>
      f7c5cc45
  8. 06 Jan, 2011 1 commit
  9. 03 Jan, 2011 1 commit
  10. 24 Dec, 2010 1 commit
    • Ben Gamari's avatar
      omap2: Make OMAP2PLUS select OMAP_DM_TIMER · dc69d1af
      Ben Gamari authored
      
      
      It appears that arch/arm/mach-omap2/timer-gp.o is needed by OMAP2PLUS.
      Since timer-gp.o has direct dependencies on omap_dm_timer_*, it seems
      correct for the architecture to depend upon OMAP_DM_TIMER, otherwise
      unsuspecting integrators will be faced with a whole bunch of linker
      errors at the end of their kernel build:
      
      arch/arm/mach-omap2/built-in.o: In function `omap2_gp_timer_set_mode':
      /home/bgamari/trees/linux-2.6/arch/arm/mach-omap2/timer-gp.c:84: undefined reference to `omap_dm_timer_stop'
      /home/bgamari/trees/linux-2.6/arch/arm/mach-omap2/timer-gp.c:88: undefined reference to `omap_dm_timer_get_fclk'
      /home/bgamari/trees/linux-2.6/arch/arm/mach-omap2/timer-gp.c:90: undefined reference to `omap_dm_timer_set_load_start'
      ...
      Signed-off-by: default avatarBen Gamari <bgamari.foss@gmail.com>
      Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
      dc69d1af
  11. 22 Dec, 2010 12 commits
  12. 21 Dec, 2010 5 commits
    • Kevin Hilman's avatar
      OMAP: PM noop: implement context loss count for non-omap_devices · 6081dc34
      Kevin Hilman authored
      For devices which have not (yet) been converted to use omap_device,
      implement the context loss counter using the "brutal method" as
      originally proposed by Paul Walmsley[1].
      
      The dummy context loss counter is incremented every time it is
      checked, but only when off-mode is enabled.  When off-mode is
      disabled, the dummy counter stops incrementing.
      
      Tested on 36xx/Zoom3 using MMC driver, which is currently the
      only in-tree user of this API.
      
      This patch should be reverted after all devices are converted to using
      omap_device.
      
      [1] http://marc.info/?l=linux-omap&m=129176260000626&w=2
      
      Signed-off-by: default avatarKevin Hilman <khilman@deeprootsystems.com>
      [paul@pwsan.com: fixed compile warning; fixed to compile on OMAP1]
      Signed-off-by: default avatarPaul Walmsley <paul@pwsan.com>
      6081dc34
    • Kevin Hilman's avatar
      OMAP: PM: implement context loss count APIs · c80705aa
      Kevin Hilman authored
      
      
      Implement OMAP PM layer omap_pm_get_dev_context_loss_count() API by
      creating similar APIs at the omap_device and omap_hwmod levels.  The
      omap_hwmod level call is the layer with access to the powerdomain
      core, so it is the place where the powerdomain is queried to get the
      context loss count.
      
      The new APIs return an unsigned value that can wrap as the
      context-loss count grows.  However, the wrapping is not important as
      the role of this function is to determine context loss by checking for
      any difference in subsequent calls to this function.
      
      Note that these APIs at each level can return zero when no context
      loss is detected, or on errors.  This is to avoid returning error
      codes which could potentially be mistaken for large context loss
      counters.
      
      NOTE: only works for devices which have been converted to use
            omap_device/omap_hwmod.
      
      Longer term, we could possibly remove this API from the OMAP PM layer,
      and instead directly use the omap_device level API.
      Signed-off-by: default avatarKevin Hilman <khilman@deeprootsystems.com>
      Signed-off-by: default avatarPaul Walmsley <paul@pwsan.com>
      c80705aa
    • Jon Hunter's avatar
      OMAP: clock: fix configuration of J-Type DPLLs to work for OMAP3 and OMAP4 · a36795c1
      Jon Hunter authored
      
      
      J-Type DPLLs have additional configuration parameters that need to
      be programmed when setting the multipler and divider for the DPLL.
      These parameters being the sigma delta divider (SD_DIV) for the DPLL
      and the digital controlled oscillator (DCO) to be used by the DPLL.
      
      The current code is implemented specifically to configure the
      OMAP3630 PER J-Type DPLL. The OMAP4430 USB DPLL is also a J-Type DPLL
      and so this code needs to be updated to work for both OMAP3 and OMAP4
      devices and any other future devices that have J-TYPE DPLLs.
      
      For the OMAP3630 PER DPLL both the SD_DIV and DCO paramenters are
      used but for the OMAP4430 USB DPLL only the SD_DIV field is used.
      The current implementation will only program the SD_DIV and DCO
      fields if the DPLL has both and hence this does not work for
      OMAP4430.
      
      In order to make the code more generic add two new fields to the
      dpll_data structure for the SD_DIV field and DCO field bit-masks
      and only program these fields if the masks are defined for a specific
      DPLL. This simplifies the code and allows us to remove the flag
      DPLL_NO_DCO_SEL.
      
      Tested on OMAP36xx Zoom3 and OMAP4 Blaze.
      Signed-off-by: default avatarJon Hunter <jon-hunter@ti.com>
      [paul@pwsan.com: removed explicit inlining and added '_' prefix on lookup_*()
       functions; added testing info to commit message; added 35xx comments back in]
      Signed-off-by: default avatarPaul Walmsley <paul@pwsan.com>
      a36795c1
    • Benoit Cousson's avatar
      OMAP2+: hwmod: Add wakeup support for new OMAP4 IPs · 86009eb3
      Benoit Cousson authored
      
      
      The new OMAP4 IPs introduced a new idle mode named smart-idle with wakeup.
      
      This new idlemode replaces the enawakeup for the new IPs but seems to
      coexist as well for some legacy IPs (UART, GPIO, MCSPI...)
      
      Add the new SIDLE_SMART_WKUP flag to mark the IPs that support this
      capability.
      The omap_hwmod_44xx_data.c will have to be updated to add this new flag.
      
      Enable this new mode when applicable in _enable_wakeup, _enable_sysc and
      _idle_sysc.
      Signed-off-by: default avatarBenoit Cousson <b-cousson@ti.com>
      Tested-by: default avatarSebastien Guiriec <s-guiriec@ti.com>
      Signed-off-by: default avatarPaul Walmsley <paul@pwsan.com>
      Cc: Kevin Hilman <khilman@deeprootsystems.com>
      Cc: Rajendra Nayak <rnayak@ti.com>
      86009eb3
    • Benoit Cousson's avatar
      OMAP2+: hwmod: Make omap_hwmod_register private and remove omap_hwmod_unregister · 0102b627
      Benoit Cousson authored
      
      
      Do not allow omap_hwmod_register to be used outside the core
      hwmod code. An omap_hwmod should be registered only at init time.
      Remove the omap_hwmod_unregister that is not used today since the
      hwmod list will be built once at init time and never be modified
      at runtime.
      Signed-off-by: default avatarBenoit Cousson <b-cousson@ti.com>
      Signed-off-by: default avatarPaul Walmsley <paul@pwsan.com>
      Cc: Kevin Hilman <khilman@deeprootsystems.com>
      0102b627