diff options
Diffstat (limited to 'firmware/mpeg.c')
-rw-r--r-- | firmware/mpeg.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/firmware/mpeg.c b/firmware/mpeg.c index d830b0aac5..4a7d37e8f8 100644 --- a/firmware/mpeg.c +++ b/firmware/mpeg.c | |||
@@ -33,6 +33,7 @@ | |||
33 | #include "thread.h" | 33 | #include "thread.h" |
34 | #include "usb.h" | 34 | #include "usb.h" |
35 | #include "file.h" | 35 | #include "file.h" |
36 | #include "hwcompat.h" | ||
36 | #endif | 37 | #endif |
37 | 38 | ||
38 | extern void bitswap(unsigned char *data, int length); | 39 | extern void bitswap(unsigned char *data, int length); |
@@ -649,10 +650,18 @@ static void dma_tick(void) | |||
649 | TCNT2 = 0; | 650 | TCNT2 = 0; |
650 | for(i = 0;i < 30;i++) | 651 | for(i = 0;i < 30;i++) |
651 | { | 652 | { |
652 | PADR |= 0x800; | 653 | if(read_hw_mask() & PR_ACTIVE_HIGH) |
654 | PADR |= 0x800; | ||
655 | else | ||
656 | PADR &= ~0x800; | ||
657 | |||
653 | while(PBDR & 0x8000) {}; | 658 | while(PBDR & 0x8000) {}; |
654 | mp3buf[mp3buf_write] = *(unsigned char *)0x4000000; | 659 | mp3buf[mp3buf_write] = *(unsigned char *)0x4000000; |
655 | PADR &= ~0x800; | 660 | |
661 | if(read_hw_mask() & PR_ACTIVE_HIGH) | ||
662 | PADR &= ~0x800; | ||
663 | else | ||
664 | PADR |= 0x800; | ||
656 | 665 | ||
657 | mp3buf_write++; | 666 | mp3buf_write++; |
658 | if(mp3buf_write >= mp3buflen) | 667 | if(mp3buf_write >= mp3buflen) |