diff options
author | Jörg Hohensohn <hohensoh@rockbox.org> | 2003-11-06 01:34:50 +0000 |
---|---|---|
committer | Jörg Hohensohn <hohensoh@rockbox.org> | 2003-11-06 01:34:50 +0000 |
commit | 75bab49a542922bb3623f5671ec259e6ef4734d5 (patch) | |
tree | eb0d8fedec577ec25460e951ccb1ce5d6f99fef0 /firmware/drivers/mas.c | |
parent | 9e957579289cac6cb468500dff5bd169d97d45fa (diff) | |
download | rockbox-75bab49a542922bb3623f5671ec259e6ef4734d5.tar.gz rockbox-75bab49a542922bb3623f5671ec259e6ef4734d5.zip |
set/clear port bits with atomic instructions instead of read-modify-write, saves time+space, allows port usage in ISR
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4022 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/drivers/mas.c')
-rw-r--r-- | firmware/drivers/mas.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/firmware/drivers/mas.c b/firmware/drivers/mas.c index e5967fe5f0..4d2c35be0f 100644 --- a/firmware/drivers/mas.c +++ b/firmware/drivers/mas.c | |||
@@ -23,6 +23,7 @@ | |||
23 | #include "debug.h" | 23 | #include "debug.h" |
24 | #include "mas.h" | 24 | #include "mas.h" |
25 | #include "kernel.h" | 25 | #include "kernel.h" |
26 | #include "system.h" | ||
26 | 27 | ||
27 | extern bool old_recorder; | 28 | extern bool old_recorder; |
28 | 29 | ||
@@ -268,21 +269,21 @@ static int mas_devread(unsigned long *dest, int len) | |||
268 | #ifdef HAVE_MAS3587F | 269 | #ifdef HAVE_MAS3587F |
269 | void mas_reset(void) | 270 | void mas_reset(void) |
270 | { | 271 | { |
271 | PAIOR |= 0x100; | 272 | __set_bit_constant(8-8, &PAIORH); |
272 | 273 | ||
273 | if(old_recorder) | 274 | if(old_recorder) |
274 | { | 275 | { |
275 | /* Older recorder models don't invert the POR signal */ | 276 | /* Older recorder models don't invert the POR signal */ |
276 | PADR |= 0x100; | 277 | __set_bit_constant(8-8, &PADRH); |
277 | sleep(HZ/100); | 278 | sleep(HZ/100); |
278 | PADR &= ~0x100; | 279 | __clear_bit_constant(8-8, &PADRH); |
279 | sleep(HZ/5); | 280 | sleep(HZ/5); |
280 | } | 281 | } |
281 | else | 282 | else |
282 | { | 283 | { |
283 | PADR &= ~0x100; | 284 | __clear_bit_constant(8-8, &PADRH); |
284 | sleep(HZ/100); | 285 | sleep(HZ/100); |
285 | PADR |= 0x100; | 286 | __set_bit_constant(8-8, &PADRH); |
286 | sleep(HZ/5); | 287 | sleep(HZ/5); |
287 | } | 288 | } |
288 | } | 289 | } |