summaryrefslogtreecommitdiff
path: root/firmware/drivers/mas.c
diff options
context:
space:
mode:
authorJörg Hohensohn <hohensoh@rockbox.org>2003-11-06 01:34:50 +0000
committerJörg Hohensohn <hohensoh@rockbox.org>2003-11-06 01:34:50 +0000
commit75bab49a542922bb3623f5671ec259e6ef4734d5 (patch)
treeeb0d8fedec577ec25460e951ccb1ce5d6f99fef0 /firmware/drivers/mas.c
parent9e957579289cac6cb468500dff5bd169d97d45fa (diff)
downloadrockbox-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.c11
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
27extern bool old_recorder; 28extern 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
269void mas_reset(void) 270void 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}