summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Sevakis <jethead71@rockbox.org>2009-02-23 04:33:33 +0000
committerMichael Sevakis <jethead71@rockbox.org>2009-02-23 04:33:33 +0000
commitb1dccc47fd8488cef147961f247f0e34d57a0399 (patch)
tree0b712b361b8ac24cc49297c6878ff04238565ab6
parent93f4bd351bcbd422d81592182aa1a2328f8d2d25 (diff)
downloadrockbox-b1dccc47fd8488cef147961f247f0e34d57a0399.tar.gz
rockbox-b1dccc47fd8488cef147961f247f0e34d57a0399.zip
PP502x: Improve accuracy of header file. It looks as though DMA channels share the same interrupt enable (tested that 0 and 2 do at least).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20089 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--firmware/export/pp5020.h10
-rw-r--r--firmware/target/arm/pcm-pp.c8
2 files changed, 6 insertions, 12 deletions
diff --git a/firmware/export/pp5020.h b/firmware/export/pp5020.h
index 26d5bbaa51..35fe09c1e4 100644
--- a/firmware/export/pp5020.h
+++ b/firmware/export/pp5020.h
@@ -107,10 +107,7 @@
107#define USB_IRQ 20 107#define USB_IRQ 20
108#define IDE_IRQ 23 108#define IDE_IRQ 23
109#define FIREWIRE_IRQ 25 109#define FIREWIRE_IRQ 25
110#define DMA0_IRQ 26 110#define DMA_IRQ 26
111#define DMA1_IRQ 27 /* guess */
112#define DMA2_IRQ 28 /* guess */
113#define DMA3_IRQ 29 /* guess */
114#define HI_IRQ 30 111#define HI_IRQ 30
115#define GPIO0_IRQ (32+0) /* Ports A..D */ 112#define GPIO0_IRQ (32+0) /* Ports A..D */
116#define GPIO1_IRQ (32+1) /* Ports E..H */ 113#define GPIO1_IRQ (32+1) /* Ports E..H */
@@ -126,10 +123,7 @@
126#define IDE_MASK (1 << IDE_IRQ) 123#define IDE_MASK (1 << IDE_IRQ)
127#define USB_MASK (1 << USB_IRQ) 124#define USB_MASK (1 << USB_IRQ)
128#define FIREWIRE_MASK (1 << FIREWIRE_IRQ) 125#define FIREWIRE_MASK (1 << FIREWIRE_IRQ)
129#define DMA0_MASK (1 << DMA0_IRQ) 126#define DMA_MASK (1 << DMA_IRQ)
130#define DMA1_MASK (1 << DMA1_IRQ)
131#define DMA2_MASK (1 << DMA2_IRQ)
132#define DMA3_MASK (1 << DMA3_IRQ)
133#define HI_MASK (1 << HI_IRQ) 127#define HI_MASK (1 << HI_IRQ)
134#define GPIO0_MASK (1 << (GPIO0_IRQ-32)) 128#define GPIO0_MASK (1 << (GPIO0_IRQ-32))
135#define GPIO1_MASK (1 << (GPIO1_IRQ-32)) 129#define GPIO1_MASK (1 << (GPIO1_IRQ-32))
diff --git a/firmware/target/arm/pcm-pp.c b/firmware/target/arm/pcm-pp.c
index f441bb82ce..ce30908b0e 100644
--- a/firmware/target/arm/pcm-pp.c
+++ b/firmware/target/arm/pcm-pp.c
@@ -328,7 +328,7 @@ void pcm_play_lock(void)
328 328
329 if (++dma_play_data.locked == 1) { 329 if (++dma_play_data.locked == 1) {
330#ifdef CPU_PP502x 330#ifdef CPU_PP502x
331 CPU_INT_DIS = DMA0_MASK; 331 CPU_INT_DIS = DMA_MASK;
332#else 332#else
333 IIS_IRQTX_REG &= ~IIS_IRQTX; 333 IIS_IRQTX_REG &= ~IIS_IRQTX;
334#endif 334#endif
@@ -343,7 +343,7 @@ void pcm_play_unlock(void)
343 343
344 if (--dma_play_data.locked == 0 && dma_play_data.state != 0) { 344 if (--dma_play_data.locked == 0 && dma_play_data.state != 0) {
345#ifdef CPU_PP502x 345#ifdef CPU_PP502x
346 CPU_INT_EN = DMA0_MASK; 346 CPU_INT_EN = DMA_MASK;
347#else 347#else
348 IIS_IRQTX_REG |= IIS_IRQTX; 348 IIS_IRQTX_REG |= IIS_IRQTX;
349#endif 349#endif
@@ -493,8 +493,8 @@ void pcm_play_dma_init(void)
493#ifdef CPU_PP502x 493#ifdef CPU_PP502x
494 /* Enable DMA controller */ 494 /* Enable DMA controller */
495 DMA_MASTER_CONTROL |= DMA_MASTER_CONTROL_EN; 495 DMA_MASTER_CONTROL |= DMA_MASTER_CONTROL_EN;
496 /* FIQ priority for DMA0 */ 496 /* FIQ priority for DMA */
497 CPU_INT_PRIORITY |= DMA0_MASK; 497 CPU_INT_PRIORITY |= DMA_MASK;
498 /* Enable request?? Not setting or clearing everything doesn't seem to 498 /* Enable request?? Not setting or clearing everything doesn't seem to
499 * prevent it operating. Perhaps important for reliability (how requests 499 * prevent it operating. Perhaps important for reliability (how requests
500 * are handled). */ 500 * are handled). */