struct moxart_dmadev *mc = devid;
        struct moxart_chan *ch = &mc->slave_chans[0];
        unsigned int i;
-       unsigned long flags;
        u32 ctrl;
 
        dev_dbg(chan2dev(&ch->vc.chan), "%s\n", __func__);
                if (ctrl & APB_DMA_FIN_INT_STS) {
                        ctrl &= ~APB_DMA_FIN_INT_STS;
                        if (ch->desc) {
-                               spin_lock_irqsave(&ch->vc.lock, flags);
+                               spin_lock(&ch->vc.lock);
                                if (++ch->sgidx < ch->desc->sglen) {
                                        moxart_dma_start_sg(ch, ch->sgidx);
                                } else {
                                        vchan_cookie_complete(&ch->desc->vd);
                                        moxart_dma_start_desc(&ch->vc.chan);
                                }
-                               spin_unlock_irqrestore(&ch->vc.lock, flags);
+                               spin_unlock(&ch->vc.lock);
                        }
                }