aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm
diff options
context:
space:
mode:
authorPeter Ujfalusi <peter.ujfalusi@nokia.com>2009-11-22 13:11:05 -0500
committerTony Lindgren <tony@atomide.com>2009-11-22 13:24:32 -0500
commiteebfa9f239a21d9663af03b50958d4d0bb7ab1d9 (patch)
tree693e33f735fdf9d32d1c5a12ccc84c4cd157ce8b /arch/arm
parenta76e9a90e8dc0c8ca641a077780c6e05270d25ff (diff)
omap: McBSP: Do not use extensive spin locks for dma_op_mode
The use of the spin lock, which supposed to protect the the dma_op_mode causing "INFO: inconsistent lock state" on playback start. Remove the spin locks around the dma_op_mode, when it's purpuse is to protect the dma_op_mode. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@nokia.com> Acked-by: Jarkko Nikula <jhnikula@gmail.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
Diffstat (limited to 'arch/arm')
-rw-r--r--arch/arm/plat-omap/mcbsp.c6
1 files changed, 0 insertions, 6 deletions
diff --git a/arch/arm/plat-omap/mcbsp.c b/arch/arm/plat-omap/mcbsp.c
index 92770334d728..2cc1cc328bac 100644
--- a/arch/arm/plat-omap/mcbsp.c
+++ b/arch/arm/plat-omap/mcbsp.c
@@ -298,9 +298,7 @@ int omap_mcbsp_get_dma_op_mode(unsigned int id)
298 } 298 }
299 mcbsp = id_to_mcbsp_ptr(id); 299 mcbsp = id_to_mcbsp_ptr(id);
300 300
301 spin_lock_irq(&mcbsp->lock);
302 dma_op_mode = mcbsp->dma_op_mode; 301 dma_op_mode = mcbsp->dma_op_mode;
303 spin_unlock_irq(&mcbsp->lock);
304 302
305 return dma_op_mode; 303 return dma_op_mode;
306} 304}
@@ -318,7 +316,6 @@ static inline void omap34xx_mcbsp_request(struct omap_mcbsp *mcbsp)
318 syscon = OMAP_MCBSP_READ(mcbsp->io_base, SYSCON); 316 syscon = OMAP_MCBSP_READ(mcbsp->io_base, SYSCON);
319 syscon &= ~(ENAWAKEUP | SIDLEMODE(0x03) | CLOCKACTIVITY(0x03)); 317 syscon &= ~(ENAWAKEUP | SIDLEMODE(0x03) | CLOCKACTIVITY(0x03));
320 318
321 spin_lock_irq(&mcbsp->lock);
322 if (mcbsp->dma_op_mode == MCBSP_DMA_MODE_THRESHOLD) { 319 if (mcbsp->dma_op_mode == MCBSP_DMA_MODE_THRESHOLD) {
323 syscon |= (ENAWAKEUP | SIDLEMODE(0x02) | 320 syscon |= (ENAWAKEUP | SIDLEMODE(0x02) |
324 CLOCKACTIVITY(0x02)); 321 CLOCKACTIVITY(0x02));
@@ -327,7 +324,6 @@ static inline void omap34xx_mcbsp_request(struct omap_mcbsp *mcbsp)
327 } else { 324 } else {
328 syscon |= SIDLEMODE(0x01); 325 syscon |= SIDLEMODE(0x01);
329 } 326 }
330 spin_unlock_irq(&mcbsp->lock);
331 327
332 OMAP_MCBSP_WRITE(mcbsp->io_base, SYSCON, syscon); 328 OMAP_MCBSP_WRITE(mcbsp->io_base, SYSCON, syscon);
333 } 329 }
@@ -1145,9 +1141,7 @@ static ssize_t dma_op_mode_show(struct device *dev,
1145 ssize_t len = 0; 1141 ssize_t len = 0;
1146 const char * const *s; 1142 const char * const *s;
1147 1143
1148 spin_lock_irq(&mcbsp->lock);
1149 dma_op_mode = mcbsp->dma_op_mode; 1144 dma_op_mode = mcbsp->dma_op_mode;
1150 spin_unlock_irq(&mcbsp->lock);
1151 1145
1152 for (s = &dma_op_modes[i]; i < ARRAY_SIZE(dma_op_modes); s++, i++) { 1146 for (s = &dma_op_modes[i]; i < ARRAY_SIZE(dma_op_modes); s++, i++) {
1153 if (dma_op_mode == i) 1147 if (dma_op_mode == i)