From a1ab7a55ffc768da55e4cb30a87cfb85b1231902 Mon Sep 17 00:00:00 2001 From: Michael Sevakis Date: Thu, 4 Dec 2008 15:06:48 +0000 Subject: Meg-FX: s3c register definitions really should be unsigned. Switch from 'int' to 'unsigned long' like other targets. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19325 a1c6a512-1295-4272-9138-f99709370657 --- .../target/arm/s3c2440/gigabeat-fx/system-meg-fx.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) (limited to 'firmware/target/arm/s3c2440/gigabeat-fx/system-meg-fx.c') diff --git a/firmware/target/arm/s3c2440/gigabeat-fx/system-meg-fx.c b/firmware/target/arm/s3c2440/gigabeat-fx/system-meg-fx.c index 8065926e28..6d8108be49 100644 --- a/firmware/target/arm/s3c2440/gigabeat-fx/system-meg-fx.c +++ b/firmware/target/arm/s3c2440/gigabeat-fx/system-meg-fx.c @@ -118,34 +118,35 @@ static void set_page_tables(void) map_section((int)FRAME, (int)FRAME, 1, BUFFERED); /* enable buffered writing for the framebuffer */ } -void memory_init(void) { +void memory_init(void) +{ ttb_init(); set_page_tables(); enable_mmu(); } -void s3c_regmod(volatile int *reg, unsigned int set, unsigned int clr) +void s3c_regmod32(volatile unsigned long *reg, unsigned long bits, + unsigned long mask) { int oldstatus = disable_interrupt_save(IRQ_FIQ_STATUS); - unsigned int val = *reg; - *reg = (val | set) & ~clr; + *reg = (*reg & ~mask) | (bits & mask); restore_interrupt(oldstatus); } -void s3c_regset(volatile int *reg, unsigned int mask) +void s3c_regset32(volatile unsigned long *reg, unsigned long bits) { - s3c_regmod(reg, mask, 0); + s3c_regmod32(reg, bits, bits); } -void s3c_regclr(volatile int *reg, unsigned int mask) +void s3c_regclr32(volatile unsigned long *reg, unsigned long bits) { - s3c_regmod(reg, 0, mask); + s3c_regmod32(reg, 0, bits); } void system_init(void) { INTMSK = 0xFFFFFFFF; - INTMOD = 0; + INTMOD = 0; SRCPND = 0xFFFFFFFF; INTPND = 0xFFFFFFFF; INTSUBMSK = 0xFFFFFFFF; -- cgit v1.2.3