From 17b8805b49e1f3c096b885982b6e81a6742f6662 Mon Sep 17 00:00:00 2001 From: Bertrik Sikken Date: Sat, 18 Jul 2009 11:54:01 +0000 Subject: S5L8700: fix off-by-one error in kernel timer and fix incorrect interrupt mask in pcm driver. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21950 a1c6a512-1295-4272-9138-f99709370657 --- firmware/target/arm/s5l8700/kernel-s5l8700.c | 4 ++-- firmware/target/arm/s5l8700/pcm-s5l8700.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'firmware') diff --git a/firmware/target/arm/s5l8700/kernel-s5l8700.c b/firmware/target/arm/s5l8700/kernel-s5l8700.c index cfa13aab2c..6f131d93f8 100644 --- a/firmware/target/arm/s5l8700/kernel-s5l8700.c +++ b/firmware/target/arm/s5l8700/kernel-s5l8700.c @@ -44,13 +44,13 @@ void tick_start(unsigned int interval_in_ms) /* configure timer for 10 kHz */ TBCMD = (1 << 1); /* TB_CLR */ - TBPRE = 624; /* prescaler */ + TBPRE = 625 - 1; /* prescaler */ TBCON = (0 << 13) | /* TB_INT1_EN */ (1 << 12) | /* TB_INT0_EN */ (0 << 11) | /* TB_START */ (2 << 8) | /* TB_CS = PCLK / 16 */ (0 << 4); /* TB_MODE_SEL = interval mode */ - TBDATA0 = cycles-1; /* set interval period */ + TBDATA0 = cycles; /* set interval period */ TBCMD = (1 << 0); /* TB_EN */ /* enable timer interrupt */ diff --git a/firmware/target/arm/s5l8700/pcm-s5l8700.c b/firmware/target/arm/s5l8700/pcm-s5l8700.c index 38b581b80c..7a4bdeb174 100644 --- a/firmware/target/arm/s5l8700/pcm-s5l8700.c +++ b/firmware/target/arm/s5l8700/pcm-s5l8700.c @@ -75,7 +75,7 @@ void pcm_play_lock(void) void pcm_play_unlock(void) { if (--locked == 0) { - INTMSK |= ~(1 << 10); + INTMSK |= (1 << 10); } } -- cgit v1.2.3