All of lore.kernel.org
 help / color / mirror / Atom feed
From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: Vaibhav Hiremath <hvaibhav@ti.com>
Cc: linux-media@vger.kernel.org, mchehab@infradead.org,
	archit@ti.com, linux-omap@vger.kernel.org
Subject: Re: [PATCH] omap_vout: Fix "DMA transaction error" issue when rotation is enabled
Date: Wed, 14 Mar 2012 16:30:25 +0100	[thread overview]
Message-ID: <2410737.F7OP3MWonz@avalon> (raw)
In-Reply-To: <1331295117-489-1-git-send-email-hvaibhav@ti.com>

Hi Vaibhav,

On Friday 09 March 2012 17:41:57 Vaibhav Hiremath wrote:
> When rotation is enabled and driver is configured in USERPTR
> buffer exchange mechanism, in specific use-case driver reports
> an error,
>    "DMA transaction error with device 0".
> 
> In driver _buffer_prepare funtion, we were using
> "vout->buf_phy_addr[vb->i]" for buffer physical address to
> configure SDMA channel, but this variable does get updated
> only during init.
> And the issue will occur when driver allocates less number
> of buffers during init and application requests more buffers
> through REQBUF ioctl; this variable will lead to invalid
> configuration of SDMA channel leading to DMA transaction error.
> 
> Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com>
> ---
> Archit/Laurent,
> Can you help me to validate this patch on your platform/usecase?

I've tested the patch by rotating the omap_vout overlay by 90 degrees and 
starting a video stream with 4 buffers. There's no crash, but the kernel 
prints

[77.877807] omapdss DISPC error: FIFO UNDERFLOW on gfx, disabling the overlay
[77.928344] omapdss DISPC error: FIFO UNDERFLOW on vid1, disabling the overlay

The same problem occurs with 3 buffers, which is what the omap_vout driver 
allocates by default.

Without your patch applied I get the same behaviour. Is my test procedure 
wrong ?

>  drivers/media/video/omap/omap_vout_vrfb.c |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
> 
> diff --git a/drivers/media/video/omap/omap_vout_vrfb.c
> b/drivers/media/video/omap/omap_vout_vrfb.c index 4be26ab..240d36d 100644
> --- a/drivers/media/video/omap/omap_vout_vrfb.c
> +++ b/drivers/media/video/omap/omap_vout_vrfb.c
> @@ -225,7 +225,7 @@ int omap_vout_prepare_vrfb(struct omap_vout_device
> *vout, if (!is_rotation_enabled(vout))
>  		return 0;
> 
> -	dmabuf = vout->buf_phy_addr[vb->i];
> +	dmabuf = (dma_addr_t) vout->queued_buf_addr[vb->i];
>  	/* If rotation is enabled, copy input buffer into VRFB
>  	 * memory space using DMA. We are copying input buffer
>  	 * into VRFB memory space of desired angle and DSS will

-- 
Regards,

Laurent Pinchart


  reply	other threads:[~2012-03-14 15:29 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-03-09 12:11 [PATCH] omap_vout: Fix "DMA transaction error" issue when rotation is enabled Vaibhav Hiremath
2012-03-09 12:11 ` Vaibhav Hiremath
2012-03-14 15:30 ` Laurent Pinchart [this message]
2012-03-16  9:26   ` Hiremath, Vaibhav

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=2410737.F7OP3MWonz@avalon \
    --to=laurent.pinchart@ideasonboard.com \
    --cc=archit@ti.com \
    --cc=hvaibhav@ti.com \
    --cc=linux-media@vger.kernel.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=mchehab@infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.