[oe-commits] org.oe.dev merge of 'f1c0af35653349c378da9671d2861f1aa08e4ecc'

oe commit oe at amethyst.openembedded.net
Thu Jul 31 15:38:40 UTC 2008


merge of 'f1c0af35653349c378da9671d2861f1aa08e4ecc'
     and 'f5b5a855a9ceef36d2e91eb4defd3cafafea854d'

Author: oe at openembedded.org
Branch: org.openembedded.dev
Revision: 066c6fcbe98c8444c2fbff69204d0d8606d85077
ViewMTN: http://monotone.openembedded.org/revision/info/066c6fcbe98c8444c2fbff69204d0d8606d85077
Files:
1
packages/ffmpeg/ffmpeg_git.bb
conf/machine/htcpolaris.conf
packages/linux/linux-omap2-git/beagleboard/03-gptimer_double_write_tocr
packages/linux/linux-omap2-git/beagleboard/04-gptimer_add_debug
packages/linux/linux-kaiser_2.6.24+git.bb
packages/linux/linux-kexecboot.inc
packages/linux/linux-omap2-git/beagleboard/01-gptimer_maintain_tldr_lt_0xffffffff
packages/linux/linux-omap2-git/beagleboard/02-gptimer_clear_tocr
packages/linux/linux-omap2_git.bb
Diffs:

#
# mt diff -rf1c0af35653349c378da9671d2861f1aa08e4ecc -r066c6fcbe98c8444c2fbff69204d0d8606d85077
#
#
#
# patch "packages/ffmpeg/ffmpeg_git.bb"
#  from [a907fbb10775925c12156c9558ee1d21c462e567]
#    to [302e26dbd823c718b9a63c94a5d6d018b5fe9d49]
#
============================================================
--- packages/ffmpeg/ffmpeg_git.bb	a907fbb10775925c12156c9558ee1d21c462e567
+++ packages/ffmpeg/ffmpeg_git.bb	302e26dbd823c718b9a63c94a5d6d018b5fe9d49
@@ -6,6 +6,8 @@ DEFAULT_PREFERENCE = "-1"
 PR = "r19"
 
 DEFAULT_PREFERENCE = "-1"
+DEFAULT_PREFERENCE_armv5te = "1"
+DEFAULT_PREFERENCE_armv6 = "1"
 DEFAULT_PREFERENCE_armv7a = "1"
 
 FFBRANCH_arm = "arm-neon"


#
# mt diff -rf5b5a855a9ceef36d2e91eb4defd3cafafea854d -r066c6fcbe98c8444c2fbff69204d0d8606d85077
#
#
#
# add_file "conf/machine/htcpolaris.conf"
#  content [bace1967854f817e81f88e99cda797aeadd07831]
# 
# add_file "packages/linux/linux-omap2-git/beagleboard/03-gptimer_double_write_tocr"
#  content [8a1765af8eda0841b0182cf0e1cfc8a2d946f9ab]
# 
# add_file "packages/linux/linux-omap2-git/beagleboard/04-gptimer_add_debug"
#  content [550cb7c6d6b7070905727ffbfe899338a3abb4c9]
# 
# patch "packages/linux/linux-kaiser_2.6.24+git.bb"
#  from [4c1d297ed2650a9ec5c683f87ef9189967a1afde]
#    to [179f47a7546391b82d05471702ef85d5ff831bc9]
# 
# patch "packages/linux/linux-kexecboot.inc"
#  from [1a5dde189f3eed29477082972af6e8298f55c4a6]
#    to [b1e9350d2c88928146c9e589e65cb802829b65c1]
# 
# patch "packages/linux/linux-omap2-git/beagleboard/01-gptimer_maintain_tldr_lt_0xffffffff"
#  from [7c9bf439882aa8c9a61562b641bd230143c75fb9]
#    to [52c65326341dfb4f4c9dad1e8e1236459f47bba9]
# 
# patch "packages/linux/linux-omap2-git/beagleboard/02-gptimer_clear_tocr"
#  from [0f618ebc4d656a0020964339216cfd22e2662469]
#    to [1a7bc59d07a513afbc2746556e259f05d53d6399]
# 
# patch "packages/linux/linux-omap2_git.bb"
#  from [9117272d8b2908df59a233aaf707e94115da1631]
#    to [df75156ba05c33c4903ee65406bd8aecc88a7c49]
#
============================================================
--- conf/machine/htcpolaris.conf	bace1967854f817e81f88e99cda797aeadd07831
+++ conf/machine/htcpolaris.conf	bace1967854f817e81f88e99cda797aeadd07831
@@ -0,0 +1,23 @@
+#@TYPE: Machine
+#@NAME: HTC Polaris phone
+#@DESCRIPTION: Machine configuration for HTC Polaris phone
+TARGET_ARCH = "arm"
+PACKAGE_EXTRA_ARCHS = "armv4 armv4t armv5te armv6"
+ 
+PREFERRED_PROVIDER_virtual/xserver = "xserver-kdrive"
+XSERVER = "xserver-kdrive-fbdev"
+ 
+GUI_MACHINE_CLASS = "smallscreen"
+MACHINE_DISPLAY_WIDTH_PIXELS = "240"
+MACHINE_DISPLAY_HEIGHT_PIXELS = "320"
+ 
+TARGET_CC_ARCH = "-march=armv6j -mtune=arm1136jf-s"
+FEED_ARCH = "armv6"
+BASE_PACKAGE_ARCH = "armv6"
+ 
+
+IMAGE_FSTYPES ?= "tar.gz cpio.gz"
+ 
+PREFERRED_PROVIDER_virtual/kernel = "linux-kaiser"
+ 
+MACHINE_FEATURES = "kernel26 touchscreen screen keyboard bluetooth"
============================================================
--- packages/linux/linux-omap2-git/beagleboard/03-gptimer_double_write_tocr	8a1765af8eda0841b0182cf0e1cfc8a2d946f9ab
+++ packages/linux/linux-omap2-git/beagleboard/03-gptimer_double_write_tocr	8a1765af8eda0841b0182cf0e1cfc8a2d946f9ab
@@ -0,0 +1,25 @@
+OMAP3 GPTIMER: TOCR clears sometimes require two writes
+
+From: Paul Walmsley <paul at pwsan.com>
+
+Some GPTIMER register changes do not take effect with a single write;
+they require two writes for some reason.  Could be related to the
+existing 3430 errata "GPTimer 1,2, and 10: first write access to TCRR
+register discarded"
+---
+
+ arch/arm/plat-omap/dmtimer.c |    1 +
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+
+diff --git a/arch/arm/plat-omap/dmtimer.c b/arch/arm/plat-omap/dmtimer.c
+index 18a1e68..4a5ada7 100644
+--- a/arch/arm/plat-omap/dmtimer.c
++++ b/arch/arm/plat-omap/dmtimer.c
+@@ -619,6 +619,7 @@ void omap_dm_timer_set_int_enable(struct omap_dm_timer *timer,
+ void omap_dm_timer_clear_ovf_cnt(struct omap_dm_timer *timer)
+ {
+ 	omap_dm_timer_write_reg(timer, OMAP_TIMER_TICK_INT_MASK_SET_REG, 0);
++	omap_dm_timer_write_reg(timer, OMAP_TIMER_TICK_INT_MASK_SET_REG, 0);
+ }
+ 
+ unsigned int omap_dm_timer_read_status(struct omap_dm_timer *timer)
============================================================
--- packages/linux/linux-omap2-git/beagleboard/04-gptimer_add_debug	550cb7c6d6b7070905727ffbfe899338a3abb4c9
+++ packages/linux/linux-omap2-git/beagleboard/04-gptimer_add_debug	550cb7c6d6b7070905727ffbfe899338a3abb4c9
@@ -0,0 +1,105 @@
+Add extra debug for the q_d_w_o() when work fn is already active.
+
+From: Paul Walmsley <paul at pwsan.com>
+
+
+---
+
+ arch/arm/mach-omap2/timer-gp.c      |    3 ++-
+ arch/arm/plat-omap/dmtimer.c        |   18 ++++++++++++++++++
+ include/asm-arm/arch-omap/dmtimer.h |    1 +
+ kernel/workqueue.c                  |   12 ++++++++++++
+ 4 files changed, 33 insertions(+), 1 deletions(-)
+
+diff --git a/arch/arm/mach-omap2/timer-gp.c b/arch/arm/mach-omap2/timer-gp.c
+index 869fe14..4db3252 100644
+--- a/arch/arm/mach-omap2/timer-gp.c
++++ b/arch/arm/mach-omap2/timer-gp.c
+@@ -37,6 +37,7 @@
+ #include <asm/arch/dmtimer.h>
+ 
+ static struct omap_dm_timer *gptimer;
++struct omap_dm_timer *gptimer_pub;
+ static struct clock_event_device clockevent_gpt;
+ 
+ static irqreturn_t omap2_gp_timer_interrupt(int irq, void *dev_id)
+@@ -114,7 +115,7 @@ static void __init omap2_gp_clockevent_init(void)
+ {
+ 	u32 tick_rate;
+ 
+-	gptimer = omap_dm_timer_request_specific(1);
++	gptimer = gptimer_pub = omap_dm_timer_request_specific(1);
+ 	BUG_ON(gptimer == NULL);
+ 
+ #if defined(CONFIG_OMAP_32K_TIMER)
+diff --git a/arch/arm/plat-omap/dmtimer.c b/arch/arm/plat-omap/dmtimer.c
+index 4a5ada7..3242495 100644
+--- a/arch/arm/plat-omap/dmtimer.c
++++ b/arch/arm/plat-omap/dmtimer.c
+@@ -622,6 +622,24 @@ void omap_dm_timer_clear_ovf_cnt(struct omap_dm_timer *timer)
+ 	omap_dm_timer_write_reg(timer, OMAP_TIMER_TICK_INT_MASK_SET_REG, 0);
+ }
+ 
++void omap_dm_timer_dump_int_enable(struct omap_dm_timer *timer)
++{
++	u32 l;
++	l = omap_dm_timer_read_reg(timer, OMAP_TIMER_COUNTER_REG);
++	pr_err("GPT TCRR: %08x\n", l);
++	l = omap_dm_timer_read_reg(timer, OMAP_TIMER_STAT_REG);
++	pr_err("GPT TISR: %08x\n", l);
++	l = omap_dm_timer_read_reg(timer, OMAP_TIMER_TICK_INT_MASK_SET_REG);
++	pr_err("GPT TOCR: %08x\n", l);
++	l = omap_dm_timer_read_reg(timer, OMAP_TIMER_TICK_INT_MASK_COUNT_REG);
++	pr_err("GPT TOWR: %08x\n", l);
++	l = omap_dm_timer_read_reg(timer, OMAP_TIMER_TICK_POS_REG);
++	pr_err("GPT TPIR: %08x\n", l);
++	l = omap_dm_timer_read_reg(timer, OMAP_TIMER_TICK_NEG_REG);
++	pr_err("GPT TNIR: %08x\n", l);
++}
++
++
+ unsigned int omap_dm_timer_read_status(struct omap_dm_timer *timer)
+ {
+ 	unsigned int l;
+diff --git a/include/asm-arm/arch-omap/dmtimer.h b/include/asm-arm/arch-omap/dmtimer.h
+index 7b1138b..db57015 100644
+--- a/include/asm-arm/arch-omap/dmtimer.h
++++ b/include/asm-arm/arch-omap/dmtimer.h
+@@ -73,6 +73,7 @@ void omap_dm_timer_set_prescaler(struct omap_dm_timer *timer, int prescaler);
+ 
+ void omap_dm_timer_set_int_enable(struct omap_dm_timer *timer, unsigned int value);
+ 
++void omap_dm_timer_dump_int_enable(struct omap_dm_timer *timer);
+ void omap_dm_timer_clear_ovf_cnt(struct omap_dm_timer *timer);
+ 
+ unsigned int omap_dm_timer_read_status(struct omap_dm_timer *timer);
+diff --git a/kernel/workqueue.c b/kernel/workqueue.c
+index ce77995..65b3b9a 100644
+--- a/kernel/workqueue.c
++++ b/kernel/workqueue.c
+@@ -33,6 +33,9 @@
+ #include <linux/kallsyms.h>
+ #include <linux/debug_locks.h>
+ #include <linux/lockdep.h>
++#include <asm/arch/dmtimer.h>
++
++extern struct omap_dm_timer *gptimer_pub;
+ 
+ /*
+  * The per-CPU workqueue (if single thread, we always use the first
+@@ -235,6 +238,15 @@ int queue_delayed_work_on(int cpu, struct workqueue_struct *wq,
+ 		else
+ 			add_timer(timer);
+ 		ret = 1;
++	} else {
++		s64 texp;
++		u64 now = ktime_to_ns(ktime_get());
++		u64 ens = jiffies_to_usecs(dwork->timer.expires) * 1000;
++		texp = ens - now;
++		if (texp < 0) {
++			pr_err("** Timer workaround\n");
++			omap_dm_timer_dump_int_enable(gptimer_pub);
++		}
+ 	}
+ 	return ret;
+ }
============================================================
--- packages/linux/linux-kaiser_2.6.24+git.bb	4c1d297ed2650a9ec5c683f87ef9189967a1afde
+++ packages/linux/linux-kaiser_2.6.24+git.bb	179f47a7546391b82d05471702ef85d5ff831bc9
@@ -4,13 +4,14 @@ COMPATIBLE_MACHINE = "htckaiser"
 PR = "r1"
 
 COMPATIBLE_MACHINE = "htckaiser"
+COMPATIBLE_MACHINE = "htcpolaris"
 
+
 SRC_URI = "git://git.linuxtogo.org/home/groups/mobile-linux/kernel.git;branch=htc-msm;protocol=git"
 
 S = "${WORKDIR}/git"
 
 do_configure_prepend() {
-	cp arch/arm/configs/htckaiser_defconfig ../defconfig
+	cp arch/arm/configs/${MACHINE}_defconfig ../defconfig
 }
 
-
============================================================
--- packages/linux/linux-kexecboot.inc	1a5dde189f3eed29477082972af6e8298f55c4a6
+++ packages/linux/linux-kexecboot.inc	b1e9350d2c88928146c9e589e65cb802829b65c1
@@ -2,6 +2,7 @@ LICENSE = "GPL"
 SECTION = "kernel"
 LICENSE = "GPL"
 
+DONT_CHECK_KERNELSIZE = ""
 INITRAMFS_IMAGE = "initramfs-kexec-image"
 inherit kernel
 PACKAGES = ""
============================================================
--- packages/linux/linux-omap2-git/beagleboard/01-gptimer_maintain_tldr_lt_0xffffffff	7c9bf439882aa8c9a61562b641bd230143c75fb9
+++ packages/linux/linux-omap2-git/beagleboard/01-gptimer_maintain_tldr_lt_0xffffffff	52c65326341dfb4f4c9dad1e8e1236459f47bba9
@@ -1,8 +1,10 @@
-3430 TRM 16.2.4.2 states:
+OMAP2/3 GPTIMER: don't load GPTIMER with 0xffffffff
 
 From: Paul Walmsley <paul at pwsan.com>
 
-Do not put the overflow value (0xFFFFFFFF) in the GPTi.TLDR register
+3430 TRM 16.2.4.2 states:
+
+     Do not put the overflow value (0xFFFFFFFF) in the GPTi.TLDR register
      because it can lead to undesired results.
 
 3430 TRM 16.2.4.7 states:
============================================================
--- packages/linux/linux-omap2-git/beagleboard/02-gptimer_clear_tocr	0f618ebc4d656a0020964339216cfd22e2662469
+++ packages/linux/linux-omap2-git/beagleboard/02-gptimer_clear_tocr	1a7bc59d07a513afbc2746556e259f05d53d6399
@@ -23,19 +23,19 @@ serial port, so magic SysRq will still w
 This patch fixes the "serial hangs" reported by some BeagleBoard
 users.  During these hangs, characters are still received from the
 serial port, so magic SysRq will still work; but characters are never
-delivered on to the underlying line discipline.  This since
-tty_flip_buffer_push() uses schedule_delayed_work() to defer passing
-the input buffer to the line discipline, but the delayed work function
-is never called since no timer tick ever arrives.
+delivered on to the underlying line discipline.  The 8250 serial code
+calls tty_flip_buffer_push(), which calls schedule_delayed_work() to
+defer passing the input buffer to the line discipline, but since no
+timer tick ever arrives, the delayed work function is never called .
 
 The patch should also fix some other sporadic boot hangs reported by
 BeagleBoard users that are due to timer interrupt non-delivery.
 ---
 
  arch/arm/mach-omap2/timer-gp.c      |    1 +
- arch/arm/plat-omap/dmtimer.c        |    8 ++++++++
+ arch/arm/plat-omap/dmtimer.c        |    9 ++++++++-
  include/asm-arm/arch-omap/dmtimer.h |    2 ++
- 3 files changed, 11 insertions(+), 0 deletions(-)
+ 3 files changed, 11 insertions(+), 1 deletions(-)
 
 diff --git a/arch/arm/mach-omap2/timer-gp.c b/arch/arm/mach-omap2/timer-gp.c
 index edc0c9e..869fe14 100644
@@ -50,14 +50,14 @@ diff --git a/arch/arm/plat-omap/dmtimer.
  
  	evt->event_handler(evt);
 diff --git a/arch/arm/plat-omap/dmtimer.c b/arch/arm/plat-omap/dmtimer.c
-index f22506a..2cbb4cc 100644
+index f22506a..18a1e68 100644
 --- a/arch/arm/plat-omap/dmtimer.c
 +++ b/arch/arm/plat-omap/dmtimer.c
 @@ -543,6 +543,8 @@ void omap_dm_timer_set_load(struct omap_dm_timer *timer, int autoreload,
  	while (readl(timer->io_base + (OMAP_TIMER_WRITE_PEND_REG & 0xff)))
  		cpu_relax();
  
-+	omap_dm_timer_write_reg(timer, OMAP_TIMER_TICK_INT_MASK_SET_REG, 0);
++	omap_dm_timer_clear_ovf_cnt(timer);
 +
  	omap_dm_timer_write_reg(timer, OMAP_TIMER_TRIGGER_REG, 0);
  }
@@ -66,22 +66,23 @@ index f22506a..2cbb4cc 100644
  
  	omap_dm_timer_write_reg(timer, OMAP_TIMER_COUNTER_REG, load);
  	omap_dm_timer_write_reg(timer, OMAP_TIMER_LOAD_REG, load);
-+	omap_dm_timer_write_reg(timer, OMAP_TIMER_TICK_INT_MASK_SET_REG, 0);
++	omap_dm_timer_clear_ovf_cnt(timer);
  	omap_dm_timer_write_reg(timer, OMAP_TIMER_CTRL_REG, l);
  }
  
-@@ -614,6 +617,11 @@ void omap_dm_timer_set_int_enable(struct omap_dm_timer *timer,
- 	omap_dm_timer_write_reg(timer, OMAP_TIMER_WAKEUP_EN_REG, value);
- }
- 
+@@ -611,7 +614,11 @@ void omap_dm_timer_set_int_enable(struct omap_dm_timer *timer,
+ 				  unsigned int value)
+ {
+ 	omap_dm_timer_write_reg(timer, OMAP_TIMER_INT_EN_REG, value);
+-	omap_dm_timer_write_reg(timer, OMAP_TIMER_WAKEUP_EN_REG, value);
++}
++
 +void omap_dm_timer_clear_ovf_cnt(struct omap_dm_timer *timer)
 +{
 +	omap_dm_timer_write_reg(timer, OMAP_TIMER_TICK_INT_MASK_SET_REG, 0);
-+}
-+
+ }
+ 
  unsigned int omap_dm_timer_read_status(struct omap_dm_timer *timer)
- {
- 	unsigned int l;
 diff --git a/include/asm-arm/arch-omap/dmtimer.h b/include/asm-arm/arch-omap/dmtimer.h
 index 02b29e8..7b1138b 100644
 --- a/include/asm-arm/arch-omap/dmtimer.h
============================================================
--- packages/linux/linux-omap2_git.bb	9117272d8b2908df59a233aaf707e94115da1631
+++ packages/linux/linux-omap2_git.bb	df75156ba05c33c4903ee65406bd8aecc88a7c49
@@ -6,7 +6,7 @@ PV = "2.6.26"
 
 PV = "2.6.26"
 #PV = "2.6.26+2.6.27-rc1+${PR}+git${SRCREV}"
-PR = "r51"
+PR = "r52"
 
 SRC_URI = "git://source.mvista.com/git/linux-omap-2.6.git;protocol=git \
 	   file://defconfig"
@@ -47,6 +47,8 @@ SRC_URI_append_beagleboard = " file://no
            file://no-cortex-deadlock.patch;patch=1 \
            file://01-gptimer_maintain_tldr_lt_0xffffffff;patch=1 \
            file://02-gptimer_clear_tocr;patch=1 \
+           file://03-gptimer_double_write_tocr;patch=1 \
+	   file://04-gptimer_add_debug;patch=1 \
 "
 
 SRC_URI_append_omap3evm = " file://no-harry-potter.diff;patch=1 \






More information about the Openembedded-commits mailing list