All of lore.kernel.org
 help / color / mirror / Atom feed
From: Marin Mitov <mitov@issp.bas.bg>
To: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Cc: linux-kernel@vger.kernel.org, linux-media@vger.kernel.org
Subject: Re: [RFC][PATCH] add dma_reserve_coherent_memory()/dma_free_reserved_memory() API
Date: Fri, 20 Aug 2010 11:13:45 +0300	[thread overview]
Message-ID: <201008201113.46036.mitov@issp.bas.bg> (raw)
In-Reply-To: <20100820161631A.fujita.tomonori@lab.ntt.co.jp>

On Friday, August 20, 2010 10:17:48 am FUJITA Tomonori wrote:
> On Thu, 19 Aug 2010 18:18:35 +0300
> Marin Mitov <mitov@issp.bas.bg> wrote:
> 
> > struct device contains a member: struct dma_coherent_mem *dma_mem;
> > to hold information for a piece of memory declared dma-coherent.
> > Alternatively the same member could also be used to hold preallocated
> > dma-coherent memory for latter per-device use.
> 
> I think that drivers/base/dma-coherent.c is for architectures to
> implement dma_alloc_coherent(). So using it for drivers doesn't look
> correct.

It depends. Imagine your frame grabber has built-in RAM buffer on board
just as the frame buffer RAM on graphics cards, defined in BAR. You can use
dma_declare_coherent_memory()/dma_release_declared_memory() in
your driver and then use dma_alloc_coherent()/dma_free_coherent()
to allocate dma buffers from it and falling back transparently to system RAM
when this local resource is exhausted.

> 
> 
> > This tric is already used in drivers/staging/dt3155v4l.c
> > dt3155_alloc_coherent()/dt3155_free_coherent()
> > 
> > Here proposed for general use by popular demand from video4linux folks.
> > Helps for videobuf-dma-contig framework.
> 
> What you guys exactly want to do? If you just want to pre-allocate
> coherent memory for latter usage,

Yes, just to preallocate not coherent, but rather contiguous memory for latter usage.
We use coherent memory because it turns out to be contiguous.

> why dma_pool API (mm/dmapool.c) doesn't work?

I do not know why dma_pool API doesn't work for frame grabber buffers.
May be they are too big ~400KB. I have tried dma_pool APIs without success 
some time ago, so I had to find some other way to solve my problem leading to 
the proposed dma_reserve_coherent_memory()/dma_free_reserved_memory().

Thanks.

Marin Mitov



  reply	other threads:[~2010-08-20  8:15 UTC|newest]

Thread overview: 93+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-08-19 15:18 [RFC][PATCH] add dma_reserve_coherent_memory()/dma_free_reserved_memory() API Marin Mitov
2010-08-20  7:17 ` FUJITA Tomonori
2010-08-20  8:13   ` Marin Mitov [this message]
2010-08-20  8:35     ` FUJITA Tomonori
2010-08-20 11:50       ` Marin Mitov
2010-08-26  5:40         ` FUJITA Tomonori
2010-08-26  6:04           ` Marin Mitov
2010-08-26  6:24             ` FUJITA Tomonori
2010-08-26  7:01               ` Marin Mitov
2010-08-26  9:43                 ` FUJITA Tomonori
2010-08-26 10:14                   ` Marin Mitov
2010-08-26  9:06               ` [RFC][PATCH] add dma_reserve_coherent_memory()/dma_free_reserved_memory() Guennadi Liakhovetski
2010-08-26  9:06                 ` [RFC][PATCH] add dma_reserve_coherent_memory()/dma_free_reserved_memory() API Guennadi Liakhovetski
2010-08-26  9:06                 ` Guennadi Liakhovetski
2010-08-26  9:17                 ` [RFC][PATCH] add 
2010-08-26  9:17                   ` [RFC][PATCH] add dma_reserve_coherent_memory()/dma_free_reserved_memory() API Uwe Kleine-König
2010-08-26  9:17                   ` Uwe Kleine-König
2010-08-26 10:18                   ` Marin Mitov
2010-08-26 10:18                     ` Marin Mitov
2010-08-26 10:18                     ` Marin Mitov
2010-08-26  9:30                 ` [RFC][PATCH] add FUJITA Tomonori
2010-08-26  9:30                   ` [RFC][PATCH] add dma_reserve_coherent_memory()/dma_free_reserved_memory() API FUJITA Tomonori
2010-08-26  9:30                   ` FUJITA Tomonori
2010-08-26  9:45                   ` [RFC][PATCH] add dma_reserve_coherent_memory()/dma_free_reserved_memory() Guennadi Liakhovetski
2010-08-26  9:45                     ` [RFC][PATCH] add dma_reserve_coherent_memory()/dma_free_reserved_memory() API Guennadi Liakhovetski
2010-08-26  9:45                     ` Guennadi Liakhovetski
2010-08-26  9:51                     ` [RFC][PATCH] add FUJITA Tomonori
2010-08-26  9:51                       ` [RFC][PATCH] add dma_reserve_coherent_memory()/dma_free_reserved_memory() API FUJITA Tomonori
2010-08-26  9:51                       ` FUJITA Tomonori
2010-08-26 17:49                       ` [RFC][PATCH] add Russell King - ARM Linux
2010-08-26 17:49                         ` [RFC][PATCH] add dma_reserve_coherent_memory()/dma_free_reserved_memory() API Russell King - ARM Linux
2010-08-26 17:49                         ` Russell King - ARM Linux
2010-08-26 18:32                         ` Marin Mitov
2010-08-26 18:32                           ` Marin Mitov
2010-08-26 18:32                           ` Marin Mitov
2010-08-26  9:53                   ` [RFC][PATCH] add 
2010-08-26  9:53                     ` [RFC][PATCH] add dma_reserve_coherent_memory()/dma_free_reserved_memory() API Uwe Kleine-König
2010-08-26  9:53                     ` Uwe Kleine-König
2010-08-26 10:00                     ` [RFC][PATCH] add FUJITA Tomonori
2010-08-26 10:00                       ` [RFC][PATCH] add dma_reserve_coherent_memory()/dma_free_reserved_memory() API FUJITA Tomonori
2010-08-26 10:00                       ` FUJITA Tomonori
2010-08-26 17:54                       ` [RFC][PATCH] add Russell King - ARM Linux
2010-08-26 17:54                         ` [RFC][PATCH] add dma_reserve_coherent_memory()/dma_free_reserved_memory() API Russell King - ARM Linux
2010-08-26 17:54                         ` Russell King - ARM Linux
2010-08-27  0:26                         ` [RFC][PATCH] add FUJITA Tomonori
2010-08-27  0:26                           ` [RFC][PATCH] add dma_reserve_coherent_memory()/dma_free_reserved_memory() API FUJITA Tomonori
2010-08-27  0:26                           ` FUJITA Tomonori
2010-08-27  4:41                       ` [RFC][PATCH] add 
2010-08-27  4:41                         ` [RFC][PATCH] add dma_reserve_coherent_memory()/dma_free_reserved_memory() API Uwe Kleine-König
2010-08-27  4:41                         ` Uwe Kleine-König
2010-08-27  5:00                         ` [RFC][PATCH] add FUJITA Tomonori
2010-08-27  5:00                           ` [RFC][PATCH] add dma_reserve_coherent_memory()/dma_free_reserved_memory() API FUJITA Tomonori
2010-08-27  5:00                           ` FUJITA Tomonori
2010-08-27  5:19                           ` [RFC][PATCH] add 
2010-08-27  5:19                             ` [RFC][PATCH] add dma_reserve_coherent_memory()/dma_free_reserved_memory() API Uwe Kleine-König
2010-08-27  5:19                             ` Uwe Kleine-König
2010-08-27  5:57                             ` [RFC][PATCH] add FUJITA Tomonori
2010-08-27  5:57                               ` [RFC][PATCH] add dma_reserve_coherent_memory()/dma_free_reserved_memory() API FUJITA Tomonori
2010-08-27  5:57                               ` FUJITA Tomonori
2010-08-27  6:13                               ` [RFC][PATCH] add 
2010-08-27  6:13                                 ` [RFC][PATCH] add dma_reserve_coherent_memory()/dma_free_reserved_memory() API Uwe Kleine-König
2010-08-27  6:13                                 ` Uwe Kleine-König
2010-08-27  6:23                               ` Marin Mitov
2010-08-27  6:23                                 ` Marin Mitov
2010-08-27  6:23                                 ` Marin Mitov
2010-08-27  6:32                                 ` [RFC][PATCH] add FUJITA Tomonori
2010-08-27  6:32                                   ` [RFC][PATCH] add dma_reserve_coherent_memory()/dma_free_reserved_memory() API FUJITA Tomonori
2010-08-27  6:32                                   ` FUJITA Tomonori
2010-08-27  6:38                                   ` [RFC][PATCH] add 
2010-08-27  6:38                                     ` [RFC][PATCH] add dma_reserve_coherent_memory()/dma_free_reserved_memory() API Uwe Kleine-König
2010-08-27  6:38                                     ` Uwe Kleine-König
2010-08-27  7:02                                   ` Marin Mitov
2010-08-27  7:02                                     ` Marin Mitov
2010-08-27  7:02                                     ` Marin Mitov
2010-08-28  6:14                                   ` Marin Mitov
2010-08-28  6:14                                     ` Marin Mitov
2010-08-28  6:14                                     ` Marin Mitov
2010-08-28  7:10                                     ` [RFC][PATCH] add FUJITA Tomonori
2010-08-28  7:10                                       ` [RFC][PATCH] add dma_reserve_coherent_memory()/dma_free_reserved_memory() API FUJITA Tomonori
2010-08-28  7:10                                       ` FUJITA Tomonori
2010-08-28  7:19                                       ` Marin Mitov
2010-08-28  7:19                                         ` Marin Mitov
2010-08-28  7:19                                         ` Marin Mitov
2010-10-10 14:08         ` FUJITA Tomonori
2010-10-10 14:36           ` Marin Mitov
2010-10-10 18:21             ` Guennadi Liakhovetski
2010-10-10 18:48               ` Marin Mitov
2010-10-13  8:04           ` KAMEZAWA Hiroyuki
2010-10-13 16:42             ` Marin Mitov
2010-10-14  7:16               ` FUJITA Tomonori
2010-08-20 20:05 ` [RFC][PATCH] add dma_reserve_coherent_memory()/dma_free_reserved_memory() Guennadi Liakhovetski
2010-08-20 20:05   ` [RFC][PATCH] add dma_reserve_coherent_memory()/dma_free_reserved_memory() API Guennadi Liakhovetski
2010-08-20 20:05   ` Guennadi Liakhovetski

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=201008201113.46036.mitov@issp.bas.bg \
    --to=mitov@issp.bas.bg \
    --cc=fujita.tomonori@lab.ntt.co.jp \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.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.