aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/plat-s3c64xx
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/plat-s3c64xx')
-rw-r--r--arch/arm/plat-s3c64xx/dma.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/arch/arm/plat-s3c64xx/dma.c b/arch/arm/plat-s3c64xx/dma.c
index 266a10745a85..6fa706f0f42a 100644
--- a/arch/arm/plat-s3c64xx/dma.c
+++ b/arch/arm/plat-s3c64xx/dma.c
@@ -339,6 +339,7 @@ int s3c2410_dma_enqueue(unsigned int channel, void *id,
339 struct s3c64xx_dma_buff *next; 339 struct s3c64xx_dma_buff *next;
340 struct s3c64xx_dma_buff *buff; 340 struct s3c64xx_dma_buff *buff;
341 struct pl080s_lli *lli; 341 struct pl080s_lli *lli;
342 unsigned long flags;
342 int ret; 343 int ret;
343 344
344 WARN_ON(!chan); 345 WARN_ON(!chan);
@@ -366,6 +367,8 @@ int s3c2410_dma_enqueue(unsigned int channel, void *id,
366 367
367 s3c64xx_dma_fill_lli(chan, lli, data, size); 368 s3c64xx_dma_fill_lli(chan, lli, data, size);
368 369
370 local_irq_save(flags);
371
369 if ((next = chan->next) != NULL) { 372 if ((next = chan->next) != NULL) {
370 struct s3c64xx_dma_buff *end = chan->end; 373 struct s3c64xx_dma_buff *end = chan->end;
371 struct pl080s_lli *endlli = end->lli; 374 struct pl080s_lli *endlli = end->lli;
@@ -397,6 +400,8 @@ int s3c2410_dma_enqueue(unsigned int channel, void *id,
397 s3c64xx_lli_to_regs(chan, lli); 400 s3c64xx_lli_to_regs(chan, lli);
398 } 401 }
399 402
403 local_irq_restore(flags);
404
400 show_lli(lli); 405 show_lli(lli);
401 406
402 dbg_showchan(chan); 407 dbg_showchan(chan);