All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tomasz Stanislawski <t.stanislaws@samsung.com>
To: Subash Patel <subashrp@gmail.com>
Cc: kyungmin.park@samsung.com, dri-devel@lists.freedesktop.org,
	linaro-mm-sig@lists.linaro.org, sakari.ailus@iki.fi,
	Andrzej Pietrasiewicz <andrzej.p@samsung.com>,
	airlied@redhat.com
Subject: Re: [Linaro-mm-sig] [RFCv2 PATCH 2/9 - 4/4] v4l: vb2-dma-contig: update and code refactoring
Date: Thu, 22 Mar 2012 17:18:53 +0100	[thread overview]
Message-ID: <4F6B50ED.9020107@samsung.com> (raw)
In-Reply-To: <4F6B3CA5.60404@gmail.com>

On 03/22/2012 03:52 PM, Subash Patel wrote:
> Hi Laurent,
> 
> On 03/22/2012 08:12 PM, Laurent Pinchart wrote:
>> Hi Tomasz,
>>
>> On Thursday 22 March 2012 14:36:33 Tomasz Stanislawski wrote:
>>> Hi Laurent,
>>> Thank you very much for your comments and question.
>>> They were very useful.
>>
>> You're welcome.
>>
>>> Please refer to the comments below.
>>>
>>> On 03/22/2012 11:50 AM, Laurent Pinchart wrote:
>>>> On Thursday 22 March 2012 11:02:23 Laurent Pinchart wrote:
>>>>> From: Tomasz Stanislawski<t.stanislaws@samsung.com>
>>>>>

[snip]

>>> The physical address is already present in buf->dma_addr, but it is only
>>> valid if the device has no MMU. Notice that vb2-dma-contig possess no
>>> knowledge if MMU is present for a given device.
>>
>> That's why buf->dma_addr can't be considered as a physical address. It's only
>> useful in the device context.
>>
>>> The sg list is not going to be single-entry if the device is provided with
>>> its own MMU.
>>
>> There's something I don't get then. vb2-dma-contig deals with physically
>> contiguous buffers. The buffer is backed by physically contiguous pages, so
>> the sg list should have a single entry.
>>
> I think at present, vb2-dma-contig is abused for any kind of memory allocation (continuous or not). Wouldnt it be good to have a
> proper working setup for videobuf2-dma-sg instead? Driver which chooses to use continuous, shall assign vb2_queue->mem_ops =
> vb2_dma_contig_memops. The devices which know they have a MMU backing can assign the same to vb2_dma_sg_memops. But as of now,
> we try to use vb2_dma_contig_memops for all kind of operation. I have also done this mistake, and wish I repaired it and posted
> it before :(
> 

Hi Subash,

At first, I do not think that vb2-dma-contig is abused for any kind of
allocation. It is used only for DMA coherent contiguous mapping what is
very close to vb2-dma-contig's original purpose.

One thing has to be said loudly:

"The driver does not need to and should not know if IOMMU is present or not."

The DMA framework must know if device uses IOMMU or not.
Reason: the memory is allocated, free, flushed, mapped only by DMA framework.

Usage of vb2-dma-contig or vb2-dma-sg depends only on the way how the memory is
configured into the device. Most of embedded devices use only buffer's
start address and buffer size (often indirectly specified by width/height and format).
It mean that device needs a buffer that is contiguous for its DMA engine.

In such a case, the driver should ALWAYS use vb2-dma-contig.

The DMA framework hidden deep in dma_alloc_coherent internals will deal with
IOMMU configuration.

I hope you find this information useful.

Regards,
Tomasz Stanislawski

  reply	other threads:[~2012-03-22 16:18 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-03-13 10:16 [RFCv2 PATCH 0/9] Integration of videobuf2 with dmabuf Tomasz Stanislawski
2012-03-13 10:16 ` [RFCv2 PATCH 1/9] v4l: vb2: fixes for DMABUF support Tomasz Stanislawski
2012-03-22  7:56   ` Laurent Pinchart
2012-03-13 10:17 ` [RFCv2 PATCH 2/9] v4l: vb2-dma-contig: update and code refactoring Tomasz Stanislawski
2012-03-22  9:27   ` Laurent Pinchart
2012-03-22 10:02     ` [RFCv2 PATCH 2/9 - 1/4] v4l: vb2-dma-contig: Shorten vb2_dma_contig prefix to vb2_dc Laurent Pinchart
2012-03-22 10:02     ` [RFCv2 PATCH 2/9 - 2/4] v4l: vb2-dma-contig: Reorder functions Laurent Pinchart
2012-03-22 10:02     ` [RFCv2 PATCH 2/9 - 3/4] v4l: vb2-dma-contig: Remove unneeded allocation context structure Laurent Pinchart
2012-03-22 10:02     ` [RFCv2 PATCH 2/9 - 4/4] v4l: vb2-dma-contig: update and code refactoring Laurent Pinchart
2012-03-22 10:50       ` [Linaro-mm-sig] " Laurent Pinchart
2012-03-22 13:36         ` Tomasz Stanislawski
2012-03-22 14:42           ` Laurent Pinchart
2012-03-22 14:52             ` Subash Patel
2012-03-22 16:18               ` Tomasz Stanislawski [this message]
2012-03-22 15:58             ` Tomasz Stanislawski
2012-03-27 15:01               ` Laurent Pinchart
2012-03-27 16:45                 ` Jerome Glisse
2012-03-27 16:58                   ` Laurent Pinchart
2012-03-22 13:42   ` [Linaro-mm-sig] [RFCv2 PATCH 2/9] " Subash Patel
2012-03-13 10:17 ` [RFCv2 PATCH 3/9] v4l: vb2: Add dma-contig allocator as dma_buf user Tomasz Stanislawski
2012-03-22 11:04   ` Laurent Pinchart
2012-03-26 15:53     ` Tomasz Stanislawski
2012-03-28 15:50       ` Laurent Pinchart
2012-03-13 10:17 ` [RFCv2 PATCH 4/9] v4l: add buffer exporting via dmabuf Tomasz Stanislawski
2012-03-18 21:47   ` Daniel Vetter
2012-03-22 11:16   ` Laurent Pinchart
2012-03-22 13:57     ` [Linaro-mm-sig] " Subash Patel
2012-03-22 14:07       ` Laurent Pinchart
2012-03-22 14:26         ` Daniel Vetter
2012-03-22 14:43           ` Laurent Pinchart
2012-03-22 14:59         ` Subash Patel
2012-03-22 15:09           ` Laurent Pinchart
2012-03-23 11:33     ` Tomasz Stanislawski
2012-03-27 10:21       ` Laurent Pinchart
2012-03-13 10:17 ` [RFCv2 PATCH 5/9] v4l: vb2: " Tomasz Stanislawski
2012-03-22 11:24   ` Laurent Pinchart
2012-03-23 11:50     ` Tomasz Stanislawski
2012-03-13 10:17 ` [RFCv2 PATCH 6/9] v4l: vb2-dma-contig: add support for DMABUF exporting Tomasz Stanislawski
2012-03-13 10:17 ` [RFCv2 PATCH 7/9] v4l: vb2-dma-contig: change map/unmap behaviour Tomasz Stanislawski
2012-03-22 12:15   ` Laurent Pinchart
2012-03-22 12:25     ` Daniel Vetter
2012-03-27 10:31       ` Laurent Pinchart
2012-03-13 10:17 ` [RFCv2 PATCH 8/9] v4l: fimc: integrate capture i-face with dmabuf Tomasz Stanislawski
2012-03-13 10:17 ` [RFCv2 PATCH 9/9] v4l: s5p-tv: mixer: integrate " Tomasz Stanislawski

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=4F6B50ED.9020107@samsung.com \
    --to=t.stanislaws@samsung.com \
    --cc=airlied@redhat.com \
    --cc=andrzej.p@samsung.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=kyungmin.park@samsung.com \
    --cc=linaro-mm-sig@lists.linaro.org \
    --cc=sakari.ailus@iki.fi \
    --cc=subashrp@gmail.com \
    /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.