summaryrefslogtreecommitdiff
path: root/firmware/target/arm/s3c2440/mini2440/pcm-mini2440.c
diff options
context:
space:
mode:
authorMichael Sevakis <jethead71@rockbox.org>2010-06-30 02:02:46 +0000
committerMichael Sevakis <jethead71@rockbox.org>2010-06-30 02:02:46 +0000
commite286b0bbc04a34c181978efce19c6d0814e228c0 (patch)
tree841288761e20dc9a7a25e5ba83306adf52547d65 /firmware/target/arm/s3c2440/mini2440/pcm-mini2440.c
parentf4a00174b50c209f2a23b7a73fe7cb544ef59d02 (diff)
downloadrockbox-e286b0bbc04a34c181978efce19c6d0814e228c0.tar.gz
rockbox-e286b0bbc04a34c181978efce19c6d0814e228c0.zip
Remove atomic register bit manipulation functions from i.MX and s3c target code and introduce generic functions for ARM (bitmod32, bitset32, and bitclr32). Multiprocessor support is possible but just not implemented at the moment, only interrupt lockout.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27188 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/target/arm/s3c2440/mini2440/pcm-mini2440.c')
-rw-r--r--firmware/target/arm/s3c2440/mini2440/pcm-mini2440.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/firmware/target/arm/s3c2440/mini2440/pcm-mini2440.c b/firmware/target/arm/s3c2440/mini2440/pcm-mini2440.c
index 30db29c42c..8a6b62f31f 100644
--- a/firmware/target/arm/s3c2440/mini2440/pcm-mini2440.c
+++ b/firmware/target/arm/s3c2440/mini2440/pcm-mini2440.c
@@ -62,14 +62,14 @@ void fiq_handler(void) __attribute__((interrupt ("FIQ")));
62void pcm_play_lock(void) 62void pcm_play_lock(void)
63{ 63{
64 if (++dma_play_lock.locked == 1) 64 if (++dma_play_lock.locked == 1)
65 s3c_regset32(&INTMSK, DMA2_MASK); 65 bitset32(&INTMSK, DMA2_MASK);
66} 66}
67 67
68/* Unmask the DMA interrupt if enabled */ 68/* Unmask the DMA interrupt if enabled */
69void pcm_play_unlock(void) 69void pcm_play_unlock(void)
70{ 70{
71 if (--dma_play_lock.locked == 0) 71 if (--dma_play_lock.locked == 0)
72 s3c_regclr32(&INTMSK, dma_play_lock.state); 72 bitclr32(&INTMSK, dma_play_lock.state);
73} 73}
74 74
75void pcm_play_dma_init(void) 75void pcm_play_dma_init(void)
@@ -77,7 +77,7 @@ void pcm_play_dma_init(void)
77 /* There seem to be problems when changing the IIS interface configuration 77 /* There seem to be problems when changing the IIS interface configuration
78 * when a clock is not present. 78 * when a clock is not present.
79 */ 79 */
80 s3c_regset32(&CLKCON, 1<<17); 80 bitset32(&CLKCON, 1<<17);
81 81
82#ifdef HAVE_UDA1341 82#ifdef HAVE_UDA1341
83 /* master, transmit mode, 16 bit samples, BCLK 32fs, PCLK */ 83 /* master, transmit mode, 16 bit samples, BCLK 32fs, PCLK */
@@ -95,7 +95,7 @@ void pcm_play_dma_init(void)
95 IISCON |= (1<<3) | (1<<2); 95 IISCON |= (1<<3) | (1<<2);
96#endif 96#endif
97 97
98 s3c_regclr32(&CLKCON, 1<<17); 98 bitclr32(&CLKCON, 1<<17);
99 99
100 audiohw_init(); 100 audiohw_init();
101 101
@@ -112,11 +112,11 @@ void pcm_play_dma_init(void)
112 /* Do not service DMA requests, yet */ 112 /* Do not service DMA requests, yet */
113 113
114 /* clear any pending int and mask it */ 114 /* clear any pending int and mask it */
115 s3c_regset32(&INTMSK, DMA2_MASK); 115 bitset32(&INTMSK, DMA2_MASK);
116 SRCPND = DMA2_MASK; 116 SRCPND = DMA2_MASK;
117 117
118 /* connect to FIQ */ 118 /* connect to FIQ */
119 s3c_regset32(&INTMOD, DMA2_MASK); 119 bitset32(&INTMOD, DMA2_MASK);
120} 120}
121 121
122void pcm_postinit(void) 122void pcm_postinit(void)
@@ -172,7 +172,7 @@ static void play_start_pcm(void)
172static void play_stop_pcm(void) 172static void play_stop_pcm(void)
173{ 173{
174 /* Mask DMA interrupt */ 174 /* Mask DMA interrupt */
175 s3c_regset32(&INTMSK, DMA2_MASK); 175 bitset32(&INTMSK, DMA2_MASK);
176 176
177 /* De-Activate the DMA channel */ 177 /* De-Activate the DMA channel */
178 DMASKTRIG2 = 0x4; 178 DMASKTRIG2 = 0x4;
@@ -200,7 +200,7 @@ static void play_stop_pcm(void)
200void pcm_play_dma_start(const void *addr, size_t size) 200void pcm_play_dma_start(const void *addr, size_t size)
201{ 201{
202 /* Enable the IIS clock */ 202 /* Enable the IIS clock */
203 s3c_regset32(&CLKCON, 1<<17); 203 bitset32(&CLKCON, 1<<17);
204 204
205 /* stop any DMA in progress - idle IIS */ 205 /* stop any DMA in progress - idle IIS */
206 play_stop_pcm(); 206 play_stop_pcm();
@@ -231,7 +231,7 @@ void pcm_play_dma_stop(void)
231 play_stop_pcm(); 231 play_stop_pcm();
232 232
233 /* Disconnect the IIS clock */ 233 /* Disconnect the IIS clock */
234 s3c_regclr32(&CLKCON, 1<<17); 234 bitclr32(&CLKCON, 1<<17);
235} 235}
236 236
237void pcm_play_dma_pause(bool pause) 237void pcm_play_dma_pause(bool pause)