diff --git a/drivers/dma/ti/k3-udma-common.c b/drivers/dma/ti/k3-udma-common.c index 415f243aa..08de2e0e4 100644 --- a/drivers/dma/ti/k3-udma-common.c +++ b/drivers/dma/ti/k3-udma-common.c @@ -2032,6 +2032,11 @@ void udma_vchan_complete(struct tasklet_struct *t) spin_unlock_irq(&vc->lock); udma_desc_pre_callback(vc, vd, NULL); + + if (vd) + pr_err("UDMA_COMPLETE cookie=%d\n", + vd->tx.cookie); + dmaengine_desc_callback_invoke(&cb, NULL); list_for_each_entry_safe(vd, _vd, &head, node) { diff --git a/drivers/dma/ti/k3-udma.c b/drivers/dma/ti/k3-udma.c index 24b29747d..17b4e8e26 100644 --- a/drivers/dma/ti/k3-udma.c +++ b/drivers/dma/ti/k3-udma.c @@ -349,6 +349,12 @@ static bool udma_is_desc_really_done(struct udma_chan *uc, struct udma_desc *d) peer_bcnt = udma_tchanrt_read(uc, UDMA_CHAN_RT_PEER_BCNT_REG); bcnt = udma_tchanrt_read(uc, UDMA_CHAN_RT_BCNT_REG); + + dev_err(uc->ud->dev, + "DONE_CHECK cookie=%d BCNT=%u PEER_BCNT=%u\n", + d->vd.tx.cookie, + bcnt, + peer_bcnt); /* Transfer is incomplete, store current residue and time stamp */ if (peer_bcnt < bcnt) { diff --git a/drivers/media/platform/ti/j721e-csi2rx/j721e-csi2rx.c b/drivers/media/platform/ti/j721e-csi2rx/j721e-csi2rx.c index f910c1502..d7ad84553 100644 --- a/drivers/media/platform/ti/j721e-csi2rx/j721e-csi2rx.c +++ b/drivers/media/platform/ti/j721e-csi2rx/j721e-csi2rx.c @@ -77,6 +77,7 @@ struct ti_csi2rx_buffer { struct vb2_v4l2_buffer vb; struct list_head list; struct ti_csi2rx_ctx *ctx; + dma_cookie_t cookie; }; enum ti_csi2rx_dma_state { @@ -806,6 +807,13 @@ static void ti_csi2rx_dma_callback(void *param) spin_lock_irqsave(&dma->lock, flags); WARN_ON(!list_is_first(&buf->list, &dma->submitted)); + + dev_err(ctx->csi->dev, + "CSI_DONE seq=%u cookie=%d buf=%p\n", + ctx->sequence, + buf->cookie, + buf); + vb2_buffer_done(&buf->vb.vb2_buf, VB2_BUF_STATE_DONE); list_del(&buf->list); @@ -839,6 +847,7 @@ static int ti_csi2rx_start_dma(struct ti_csi2rx_ctx *ctx, desc->callback_param = buf; cookie = dmaengine_submit(desc); + buf->cookie = cookie; ret = dma_submit_error(cookie); if (ret) return ret;