diff options
author | Michael Sevakis <jethead71@rockbox.org> | 2008-03-31 01:29:50 +0000 |
---|---|---|
committer | Michael Sevakis <jethead71@rockbox.org> | 2008-03-31 01:29:50 +0000 |
commit | a65406e3f48daed80f4d1b8627fae38a683fecb6 (patch) | |
tree | 0ba581f99dfcf18727fa05152b5a8b25fae86410 /firmware/target/arm/s3c2440/gigabeat-fx/timer-meg-fx.c | |
parent | 241fd0fbdb218518cabbc6430dc0159b348549bc (diff) | |
download | rockbox-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.c | 8 |
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 | ||
123 | void __timer_unregister(void) | 123 | void __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 | } |