diff options
Diffstat (limited to 'drivers/usb/musb/cppi_dma.c')
-rw-r--r-- | drivers/usb/musb/cppi_dma.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/usb/musb/cppi_dma.c b/drivers/usb/musb/cppi_dma.c index ef2332a9941d..a44a450c860d 100644 --- a/drivers/usb/musb/cppi_dma.c +++ b/drivers/usb/musb/cppi_dma.c | |||
@@ -1154,8 +1154,11 @@ irqreturn_t cppi_interrupt(int irq, void *dev_id) | |||
1154 | struct musb_hw_ep *hw_ep = NULL; | 1154 | struct musb_hw_ep *hw_ep = NULL; |
1155 | u32 rx, tx; | 1155 | u32 rx, tx; |
1156 | int i, index; | 1156 | int i, index; |
1157 | unsigned long flags; | ||
1157 | 1158 | ||
1158 | cppi = container_of(musb->dma_controller, struct cppi, controller); | 1159 | cppi = container_of(musb->dma_controller, struct cppi, controller); |
1160 | if (cppi->irq) | ||
1161 | spin_lock_irqsave(&musb->lock, flags); | ||
1159 | 1162 | ||
1160 | tibase = musb->ctrl_base; | 1163 | tibase = musb->ctrl_base; |
1161 | 1164 | ||
@@ -1285,6 +1288,9 @@ irqreturn_t cppi_interrupt(int irq, void *dev_id) | |||
1285 | /* write to CPPI EOI register to re-enable interrupts */ | 1288 | /* write to CPPI EOI register to re-enable interrupts */ |
1286 | musb_writel(tibase, DAVINCI_CPPI_EOI_REG, 0); | 1289 | musb_writel(tibase, DAVINCI_CPPI_EOI_REG, 0); |
1287 | 1290 | ||
1291 | if (cppi->irq) | ||
1292 | spin_unlock_irqrestore(&musb->lock, flags); | ||
1293 | |||
1288 | return IRQ_HANDLED; | 1294 | return IRQ_HANDLED; |
1289 | } | 1295 | } |
1290 | 1296 | ||