diff options
-rw-r--r-- | packages/dsplink/dsplink_1.50.bb | 2 | ||||
-rw-r--r-- | packages/ffmpeg/ffmpeg_git.bb | 4 | ||||
-rw-r--r-- | packages/ffmpeg/omapfbplay_git.bb | 4 | ||||
-rw-r--r-- | packages/linux/linux-omap2-git/beagleboard/01-gptimer_maintain_tldr_lt_0xffffffff | 62 | ||||
-rw-r--r-- | packages/linux/linux-omap2-git/beagleboard/02-gptimer_clear_tocr | 97 | ||||
-rw-r--r-- | packages/linux/linux-omap2-git/beagleboard/serialfix.diff | 18 | ||||
-rw-r--r-- | packages/linux/linux-omap2_git.bb | 5 | ||||
-rw-r--r-- | packages/swfdec/swfdec-mozilla_0.7.4.bb | 19 | ||||
-rw-r--r-- | packages/swfdec/swfdec_0.7.4.bb | 26 |
9 files changed, 212 insertions, 25 deletions
diff --git a/packages/dsplink/dsplink_1.50.bb b/packages/dsplink/dsplink_1.50.bb index 965c735798..62a352e43c 100644 --- a/packages/dsplink/dsplink_1.50.bb +++ b/packages/dsplink/dsplink_1.50.bb @@ -1,6 +1,6 @@ require dsplink.inc -PR = "r9" +PR = "r10" PE = "1" PV = "1.50" diff --git a/packages/ffmpeg/ffmpeg_git.bb b/packages/ffmpeg/ffmpeg_git.bb index e45ea4b6e6..f8cf7015be 100644 --- a/packages/ffmpeg/ffmpeg_git.bb +++ b/packages/ffmpeg/ffmpeg_git.bb @@ -3,7 +3,7 @@ require ffmpeg.inc DEPENDS += "libgsm" PV = "0.4.9+${PR}+gitr${SRCREV}" -PR = "r18" +PR = "r19" DEFAULT_PREFERENCE = "-1" DEFAULT_PREFERENCE_armv7a = "1" @@ -12,7 +12,7 @@ FFBRANCH_arm = "arm-neon" FFBRANCH ?= "master" SRCREV = "3692b8de9fae73860be636606cb6344f26e28b1a" -SRCREV_arm = "c6bbb0c33f6f681b8265a43f8744735de5a9d45e" +SRCREV_arm = "a3f0e289611cb79254ea8ba01923a6693422679d" SRC_URI = "git://git.mansr.com/ffmpeg.mru;protocol=git;branch=${FFBRANCH} \ " diff --git a/packages/ffmpeg/omapfbplay_git.bb b/packages/ffmpeg/omapfbplay_git.bb index 1260c0ecc1..890ed31e20 100644 --- a/packages/ffmpeg/omapfbplay_git.bb +++ b/packages/ffmpeg/omapfbplay_git.bb @@ -2,7 +2,7 @@ DESCRIPTION = "Simple ffmpeg-based player that uses the omapfb overlays" DEPENDS = "bzip2 lame ffmpeg virtual/kernel" LICENSE = "MIT" -PR = "r8" +PR = "r9" inherit module-base @@ -15,7 +15,7 @@ SRC_URI = "git://git.mansr.com/${PN};protocol=git \ S = "${WORKDIR}/git" -CFLAGS += " -static -I${STAGING_KERNEL_DIR}/include " +CFLAGS += " -I${STAGING_KERNEL_DIR}/include " do_compile() { oe_runmake -e diff --git a/packages/linux/linux-omap2-git/beagleboard/01-gptimer_maintain_tldr_lt_0xffffffff b/packages/linux/linux-omap2-git/beagleboard/01-gptimer_maintain_tldr_lt_0xffffffff new file mode 100644 index 0000000000..ed62a6fb4b --- /dev/null +++ b/packages/linux/linux-omap2-git/beagleboard/01-gptimer_maintain_tldr_lt_0xffffffff @@ -0,0 +1,62 @@ +3430 TRM 16.2.4.2 states: + +From: Paul Walmsley <paul@pwsan.com> + +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: + + In the non-PWM mode, GTPi.TLDR must be maintained at less than or + equal to 0xFFFF FFFE. + +This patch contains some debugging code, and so is not yet intended for +merging into linux-omap. +--- + + arch/arm/mach-omap2/timer-gp.c | 17 ++++++++++++++++- + 1 files changed, 16 insertions(+), 1 deletions(-) + +diff --git a/arch/arm/mach-omap2/timer-gp.c b/arch/arm/mach-omap2/timer-gp.c +index 557603f..edc0c9e 100644 +--- a/arch/arm/mach-omap2/timer-gp.c ++++ b/arch/arm/mach-omap2/timer-gp.c +@@ -59,6 +59,11 @@ static struct irqaction omap2_gp_timer_irq = { + static int omap2_gp_timer_set_next_event(unsigned long cycles, + struct clock_event_device *evt) + { ++ if (cycles == 0) { ++ pr_err("*** cycles = 0! fixing\n"); ++ cycles = 1; ++ } ++ + omap_dm_timer_set_load_start(gptimer, 0, 0xffffffff - cycles); + + return 0; +@@ -76,6 +81,15 @@ static void omap2_gp_timer_set_mode(enum clock_event_mode mode, + period = clk_get_rate(omap_dm_timer_get_fclk(gptimer)) / HZ; + period -= 1; + ++ /* ++ * Unlikely that this will ever be hit since periodic ++ * mode is rarely used ++ */ ++ if (period == 0) { ++ pr_err("*** period = 0! fixing\n"); ++ period = 1; ++ } ++ + omap_dm_timer_set_load_start(gptimer, 1, 0xffffffff - period); + break; + case CLOCK_EVT_MODE_ONESHOT: +@@ -117,8 +131,9 @@ static void __init omap2_gp_clockevent_init(void) + clockevent_gpt.shift); + clockevent_gpt.max_delta_ns = + clockevent_delta2ns(0xffffffff, &clockevent_gpt); ++ /* per 3430 TRM table 16-11 */ + clockevent_gpt.min_delta_ns = +- clockevent_delta2ns(1, &clockevent_gpt); ++ clockevent_delta2ns(2, &clockevent_gpt); + + clockevent_gpt.cpumask = cpumask_of_cpu(0); + clockevents_register_device(&clockevent_gpt); diff --git a/packages/linux/linux-omap2-git/beagleboard/02-gptimer_clear_tocr b/packages/linux/linux-omap2-git/beagleboard/02-gptimer_clear_tocr new file mode 100644 index 0000000000..b92c5dd126 --- /dev/null +++ b/packages/linux/linux-omap2-git/beagleboard/02-gptimer_clear_tocr @@ -0,0 +1,97 @@ +OMAP2/3 GPTIMER: clear TOCR register after timer overflow interrupt and during load + +From: Paul Walmsley <paul@pwsan.com> + +There appears to be a hardware bug in the 1-ms tick generation section +of the GPTIMER blocks on some OMAP3530 chips. TOCR is sometimes +incremented when a a timer overflow event occurs and TPIR = TPNR = +TOWR = TOCR = 0, in contradiction of 34xx TRM 16.2.4.2.1. When TOCR +is incremented under these conditions, the timer will not generate any +further overflow interrupts. (The kernel currently relies on overflow +interrupts to generate ticks and drive the scheduler.) + +This patch works around the bug by clearing TOCR in the GPTIMER +overflow ISR and in the timer load functions. + +The precise sequence of hardware events needed to reproduce this bug +is still unknown. Without this patch, the bug is consistently +observable on several BeagleBoards (including mine and Koen's) within +a few minutes of boot. It's not clear whether this bug is present on +all OMAP3 revisions, or whether it is simply specific to certain +OMAP3530ES2.2 lots. + +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. + +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 ++++++++ + include/asm-arm/arch-omap/dmtimer.h | 2 ++ + 3 files changed, 11 insertions(+), 0 deletions(-) + +diff --git a/arch/arm/mach-omap2/timer-gp.c b/arch/arm/mach-omap2/timer-gp.c +index edc0c9e..869fe14 100644 +--- a/arch/arm/mach-omap2/timer-gp.c ++++ b/arch/arm/mach-omap2/timer-gp.c +@@ -44,6 +44,7 @@ static irqreturn_t omap2_gp_timer_interrupt(int irq, void *dev_id) + struct omap_dm_timer *gpt = (struct omap_dm_timer *)dev_id; + struct clock_event_device *evt = &clockevent_gpt; + ++ omap_dm_timer_clear_ovf_cnt(gpt); + omap_dm_timer_write_status(gpt, OMAP_TIMER_INT_OVERFLOW); + + evt->event_handler(evt); +diff --git a/arch/arm/plat-omap/dmtimer.c b/arch/arm/plat-omap/dmtimer.c +index f22506a..2cbb4cc 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_write_reg(timer, OMAP_TIMER_TRIGGER_REG, 0); + } + +@@ -561,6 +563,7 @@ void omap_dm_timer_set_load_start(struct omap_dm_timer *timer, int autoreload, + + 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_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); + } + ++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 ++++ b/include/asm-arm/arch-omap/dmtimer.h +@@ -73,6 +73,8 @@ 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_clear_ovf_cnt(struct omap_dm_timer *timer); ++ + unsigned int omap_dm_timer_read_status(struct omap_dm_timer *timer); + void omap_dm_timer_write_status(struct omap_dm_timer *timer, unsigned int value); + unsigned int omap_dm_timer_read_counter(struct omap_dm_timer *timer); diff --git a/packages/linux/linux-omap2-git/beagleboard/serialfix.diff b/packages/linux/linux-omap2-git/beagleboard/serialfix.diff deleted file mode 100644 index 74c2ebaa69..0000000000 --- a/packages/linux/linux-omap2-git/beagleboard/serialfix.diff +++ /dev/null @@ -1,18 +0,0 @@ ---- /tmp/pm34xx.c 2008-07-14 18:09:08.000000000 +0200 -+++ git/arch/arm/mach-omap2/pm34xx.c 2008-07-14 18:09:42.453198000 +0200 -@@ -398,13 +398,13 @@ - INT_34XX_PRCM_MPU_IRQ); - goto err1; - } -- -+/* - ret = pwrdm_for_each(pwrdms_setup); - if (ret) { - printk(KERN_ERR "Failed to setup powerdomains\n"); - goto err2; - } -- -+*/ - mpu_pwrdm = pwrdm_lookup("mpu_pwrdm"); - if (mpu_pwrdm == NULL) { - printk(KERN_ERR "Failed to get mpu_pwrdm\n"); diff --git a/packages/linux/linux-omap2_git.bb b/packages/linux/linux-omap2_git.bb index 589f1d1458..c744cb1d6d 100644 --- a/packages/linux/linux-omap2_git.bb +++ b/packages/linux/linux-omap2_git.bb @@ -6,7 +6,7 @@ SRCREV = "d3b3ae0fe6c71641da19c8de466ec366d39847e3" PV = "2.6.26" #PV = "2.6.26+2.6.27-rc1+${PR}+git${SRCREV}" -PR = "r50" +PR = "r51" SRC_URI = "git://source.mvista.com/git/linux-omap-2.6.git;protocol=git \ file://defconfig" @@ -29,7 +29,6 @@ SRC_URI_append_beagleboard = " file://no-harry-potter.diff;patch=1 \ file://06-ensure-fclk.diff;patch=1 \ file://07-set-burst-size.diff;patch=1 \ file://cache-display-fix.patch;patch=1 \ - file://serialfix.diff;patch=1 \ file://i2c-omap-race-fix.diff;patch=1 \ file://TWL4030-01.patch;patch=1 \ file://TWL4030-02.patch;patch=1 \ @@ -46,6 +45,8 @@ SRC_URI_append_beagleboard = " file://no-harry-potter.diff;patch=1 \ file://4bitmmc.diff;patch=1 \ file://400khz-i2c.diff;patch=1 \ file://no-cortex-deadlock.patch;patch=1 \ + file://01-gptimer_maintain_tldr_lt_0xffffffff;patch=1 \ + file://02-gptimer_clear_tocr;patch=1 \ " SRC_URI_append_omap3evm = " file://no-harry-potter.diff;patch=1 \ diff --git a/packages/swfdec/swfdec-mozilla_0.7.4.bb b/packages/swfdec/swfdec-mozilla_0.7.4.bb new file mode 100644 index 0000000000..2bc6a00a84 --- /dev/null +++ b/packages/swfdec/swfdec-mozilla_0.7.4.bb @@ -0,0 +1,19 @@ +DESCRIPTION = "Swfdec plugin for browsers using NPAPI. Swfdec is a decoder/renderer for Macromedia Flash animations." +LICENSE = "LGPL" + +DEPENDS = "gst-ffmpeg swfdec gstreamer libsoup-2.4 pango cairo liboil zlib libmad gtk+ alsa-lib" +RDEPENDS = "gst-ffmpeg" + +SRC_URI = "http://swfdec.freedesktop.org/download/swfdec-mozilla/0.7/${P}.tar.gz \ +" + +inherit autotools pkgconfig + +do_stage() { + autotools_stage_all +} + +FILES_${PN} += "${libdir}/mozilla/plugins/*.so" +FILES_${PN}-dev += "${libdir}/mozilla/plugins/*a" +FILES_${PN}-dbg += "${libdir}/mozilla/plugins/.debug" + diff --git a/packages/swfdec/swfdec_0.7.4.bb b/packages/swfdec/swfdec_0.7.4.bb new file mode 100644 index 0000000000..05d4977eae --- /dev/null +++ b/packages/swfdec/swfdec_0.7.4.bb @@ -0,0 +1,26 @@ +DESCRIPTION = "Swfdec is a decoder/renderer for Macromedia Flash animations." +LICENSE = "LGPL" + +DEPENDS = "gstreamer libsoup-2.4 pango cairo liboil zlib libmad gtk+ alsa-lib" + +SRC_URI = "http://swfdec.freedesktop.org/download/swfdec/0.7/${P}.tar.gz \ +" + +inherit autotools pkgconfig + +do_install_append() { + install -d ${D}/${bindir} + install -m 0755 ${S}/player/.libs/swfplay ${D}/${bindir} +} + +do_stage() { + autotools_stage_all +} + +PACKAGES =+ "libswfdecgtk libswfdec" + +FILES_${PN} += "${datadir}/icons" +FILES_libswfdec = "${libdir}/libswfdec-0.7.so.*" +FILES_libswfdecgtk = "${libdir}/libswfdec-gtk-0.7.so*" + + |