1. 28 6月, 2011 1 次提交
  2. 28 1月, 2011 1 次提交
  3. 20 1月, 2011 2 次提交
  4. 19 1月, 2011 1 次提交
    • P
      OMAP: counter_32k: init clocksource as part of machine timer init · d8328f3b
      Paul Walmsley 提交于
      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: NRussell King <rmk+kernel@arm.linux.org.uk>
      Tested-by: NThomas Weber <weber@corscience.de>
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      d8328f3b
  5. 23 12月, 2010 3 次提交
  6. 07 12月, 2010 1 次提交
  7. 09 10月, 2010 2 次提交
    • P
      OMAP: split plat-omap/common.c · aa218daf
      Paul Walmsley 提交于
      Split plat-omap/common.c into three pieces:
      
      1. the 32KiHz sync timer and clocksource code, which now lives in
         plat-omap/counter_32k.c;
      
      2. the OMAP2+ common code, which has been moved to mach-omap2/common.c;
      
      3. and the remainder of the OMAP-wide common code, which includes the
         deprecated ATAGs code and a deprecated video RAM reservation function.
      
      The primary motivation for doing this is to move the OMAP2+-specific parts
      into an OMAP2+-specific file, so that build breakage related to the
      System Control Module code can be resolved.
      
      Benoît Cousson <b-cousson@ti.com> suggested a new filename and found
      some bugs in the counter_32k.c comments - thanks Benoît.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Cc: Benoît Cousson <b-cousson@ti.com>
      aa218daf
    • P
      OMAP2420: CTRL: fix OMAP242X_CTRL_REGADDR macro · 54164bb2
      Paul Walmsley 提交于
      Conform the OMAP2420_CTRL_BASE macro name to the standard of the rest of the
      OMAP*_CTRL_BASE macro names.  This fixes a bug in the OMAP2420 SCM code that
      prevented OMAP242X_CTRL_REGADDR from working.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      54164bb2
  8. 06 10月, 2010 1 次提交
  9. 30 9月, 2010 1 次提交
  10. 28 9月, 2010 2 次提交
  11. 04 8月, 2010 2 次提交
  12. 27 7月, 2010 1 次提交
  13. 16 7月, 2010 1 次提交
  14. 21 5月, 2010 1 次提交
  15. 24 4月, 2010 1 次提交
  16. 23 4月, 2010 1 次提交
    • A
      omap: fix clocksource_32k to start from zero · 2decb12e
      Aaro Koskinen 提交于
      When the 32k sync timer is used for sched_clock(), it should count
      time from the kernel boot (clocksource init) instead of the last HW
      reset. Otherwise printk.time values will jump suddenly during the boot:
      
      	[    0.000000] calling  omap2_clk_arch_init+0x0/0x138 @ 1
      	[    0.000000] initcall omap2_clk_arch_init+0x0/0x138 returned -22 after 0 usecs
      	[    0.000000] initcall omap2_clk_arch_init+0x0/0x138 returned with error code -22
      	[    0.000000] calling  omap_init_clocksource_32k+0x0/0x98 @ 1
      	[  508.697937] initcall omap_init_clocksource_32k+0x0/0x98 returned 0 after 0 usecs
      	[  508.697967] calling  omap_init_devices+0x0/0x38 @ 1
      	[  508.698425] initcall omap_init_devices+0x0/0x38 returned 0 after 0 usecs
      
      This will confuse tools such as scripts/bootgraph.pl.
      Signed-off-by: NAaro Koskinen <aaro.koskinen@nokia.com>
      Acked-by: NKevin Hilman <khilman@deeprootsystems.com>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      2decb12e
  17. 24 2月, 2010 1 次提交
  18. 16 2月, 2010 2 次提交
  19. 21 1月, 2010 1 次提交
    • K
      OMAP: timekeeping: time should not stop during suspend · d92cfcbe
      Kevin Hilman 提交于
      During suspend, the kernel timekeeping subsystem is shut down.  Before
      suspend and upon resume, it uses a weak function
      read_persistent_clock() to determine the amount of time that elapsed
      during suspend.
      
      This function was not implemented on OMAP, so from the timekeeping
      subsystem perspective (and thus userspace as well) it appeared that no
      time elapsed during suspend.
      
      This patch uses the 32k sync timer as a the persistent clock.
      
      NOTE: This does *NOT* fully handle wrapping of the 32k sync timer, so
            more than one wrapping of the 32k sync timer during suspend may
            cause problems.  Also note there are not interrupts when the 32k
            sync timer wraps, so something else has to be done.
      Reported-by: NJon Hunter <jon-hunter@ti.com>
      Signed-off-by: NKevin Hilman <khilman@deeprootsystems.com>
      d92cfcbe
  20. 12 12月, 2009 2 次提交
  21. 21 10月, 2009 1 次提交
    • T
      omap: headers: Move remaining headers from include/mach to include/plat · ce491cf8
      Tony Lindgren 提交于
      Move the remaining headers under plat-omap/include/mach
      to plat-omap/include/plat. Also search and replace the
      files using these headers to include using the right path.
      
      This was done with:
      
      #!/bin/bash
      mach_dir_old="arch/arm/plat-omap/include/mach"
      plat_dir_new="arch/arm/plat-omap/include/plat"
      headers=$(cd $mach_dir_old && ls *.h)
      omap_dirs="arch/arm/*omap*/ \
      drivers/video/omap \
      sound/soc/omap"
      other_files="drivers/leds/leds-ams-delta.c \
      drivers/mfd/menelaus.c \
      drivers/mfd/twl4030-core.c \
      drivers/mtd/nand/ams-delta.c"
      
      for header in $headers; do
      	old="#include <mach\/$header"
      	new="#include <plat\/$header"
      	for dir in $omap_dirs; do
      		find $dir -type f -name \*.[chS] | \
      			xargs sed -i "s/$old/$new/"
      	done
      	find drivers/ -type f -name \*omap*.[chS] | \
      		xargs sed -i "s/$old/$new/"
      	for file in $other_files; do
      		sed -i "s/$old/$new/" $file
      	done
      done
      
      for header in $(ls $mach_dir_old/*.h); do
      	git mv $header $plat_dir_new/
      done
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      ce491cf8
  22. 20 10月, 2009 2 次提交
  23. 29 8月, 2009 2 次提交
  24. 15 8月, 2009 1 次提交
  25. 29 5月, 2009 2 次提交
  26. 26 5月, 2009 4 次提交