summaryrefslogtreecommitdiff
path: root/firmware/target/arm/s3c2440/gigabeat-fx/timer-meg-fx.c
diff options
context:
space:
mode:
authorMichael Sevakis <jethead71@rockbox.org>2008-03-31 01:29:50 +0000
committerMichael Sevakis <jethead71@rockbox.org>2008-03-31 01:29:50 +0000
commita65406e3f48daed80f4d1b8627fae38a683fecb6 (patch)
tree0ba581f99dfcf18727fa05152b5a8b25fae86410 /firmware/target/arm/s3c2440/gigabeat-fx/timer-meg-fx.c
parent241fd0fbdb218518cabbc6430dc0159b348549bc (diff)
downloadrockbox-a65406e3f48daed80f4d1b8627fae38a683fecb6.tar.gz
rockbox-a65406e3f48daed80f4d1b8627fae38a683fecb6.zip
meg-fx: It's important to make sure certain interrupt-related registers have bits changed atomically.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16894 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/target/arm/s3c2440/gigabeat-fx/timer-meg-fx.c')
-rw-r--r--firmware/target/arm/s3c2440/gigabeat-fx/timer-meg-fx.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/firmware/target/arm/s3c2440/gigabeat-fx/timer-meg-fx.c b/firmware/target/arm/s3c2440/gigabeat-fx/timer-meg-fx.c
index b59e95806d..574083373a 100644
--- a/firmware/target/arm/s3c2440/gigabeat-fx/timer-meg-fx.c
+++ b/firmware/target/arm/s3c2440/gigabeat-fx/timer-meg-fx.c
@@ -89,7 +89,7 @@ bool __timer_register(void)
89{ 89{
90 bool retval = true; 90 bool retval = true;
91 91
92 int oldstatus = set_interrupt_status(IRQ_FIQ_DISABLED, IRQ_FIQ_STATUS); 92 int oldstatus = disable_interrupt_save(IRQ_FIQ_STATUS);
93 93
94 stop_timer(); 94 stop_timer();
95 95
@@ -115,14 +115,14 @@ bool __timer_register(void)
115 retval = false; 115 retval = false;
116 } 116 }
117 117
118 set_interrupt_status(oldstatus, IRQ_FIQ_STATUS); 118 restore_interrupt(oldstatus);
119 119
120 return retval; 120 return retval;
121} 121}
122 122
123void __timer_unregister(void) 123void __timer_unregister(void)
124{ 124{
125 int oldstatus = set_interrupt_status(IRQ_FIQ_DISABLED, IRQ_FIQ_STATUS); 125 int oldstatus = disable_interrupt_save(IRQ_FIQ_STATUS);
126 stop_timer(); 126 stop_timer();
127 set_interrupt_status(oldstatus, IRQ_FIQ_STATUS); 127 restore_interrupt(oldstatus);
128} 128}