All of lore.kernel.org
 help / color / mirror / Atom feed
From: Takashi Iwai <tiwai@suse.de>
To: Russell King <rmk+alsa@arm.linux.org.uk>
Cc: Jaroslav Kysela <perex@suse.cz>, Roc Wu <cooloney@yahoo.com.cn>,
	Clemens Ladisch <clemens@ladisch.de>,
	Alsa-devel@lists.sourceforge.net
Subject: Re: An driver error when I using aplay!
Date: Mon, 07 Jun 2004 18:25:15 +0200	[thread overview]
Message-ID: <s5hvfi32v4k.wl@alsa2.suse.de> (raw)
In-Reply-To: <20040607164401.G28526@flint.arm.linux.org.uk>

At Mon, 7 Jun 2004 16:44:01 +0100,
Russell King wrote:
> 
> > Where we're here:  I'd really like to fix the DMA problem of ALSA on
> > ARM.  As I sent you before, the patch is already there but I have no
> > idea whether it's really right or not.  Could you please comment
> > whether the assumptions below are correct?
> > 
> > - the page struct can be retrieved from dma_addr_t of
> >   dma_alloc_coherent() like
> > 
> > 	virt_to_page(bus_to_virt(addr))
> 
> Well, bus_to_virt() is a deprecated interface, and one which is
> meaningless on certain classes of machines.

Yes, ideally such a stuff should be really in the arch-specific kernel
part.  (BTW, the above is assumed to be ARM specific.)

> Really, we shouldn't be adding code which relies on it.

Agreed.

> What we should be doing is something like the following, which is
> a generic set of coherent DMA allocation, freeing, and mmap
> functions which would cover any driver-model based device.

So, do you mean to hide the stuffs like above (and cache disabling) in
this new mmap function dedicated for the coherent DMA?

> snd_pcm_ops_t should have a mmap() method just like everything else
> in the kernel, which allows drivers to select the appropriate mmap()
> implementation.

I thought of this, too.  This may help some cases, but we still need a
generic solution, because a PCI driver can be used in different
architectures.


> > - adding pgprot_noncached() in fop->mmap callback assures that the
> >   mmaped page is accessed without cache side effects.
> 
> Correct, but as it has been already decided elsewhere, interfaces
> which expose pgprot tweaking are broken and new ones should not be
> introduced.

Hmm, is there a standard interface for this purpose?
So far, setting like
	vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot);
looks like the only way to achieve this.

(If this whole mmap method itself is hidden in the generic function,
 this is not exposed, though...)

> They also _may_ only affect the userspace mapping of
> that memory and not kernel space, so this doesn't help the control
> or status mmaped pages.

Oh yes, then how about to use a DMA page for the control/status mmap,
too?


thanks,

Takashi


-------------------------------------------------------
This SF.Net email is sponsored by: GNOME Foundation
Hackers Unite!  GUADEC: The world's #1 Open Source Desktop Event.
GNOME Users and Developers European Conference, 28-30th June in Norway
http://2004/guadec.org

  reply	other threads:[~2004-06-07 16:25 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-06-04  9:13 An driver error when I using aplay! Roc Wu
2004-06-07  3:04 ` Roc Wu
2004-06-07  7:24   ` Clemens Ladisch
2004-06-07  9:25     ` Roc Wu
2004-06-07 10:17       ` Russell King
2004-06-07 10:43         ` Jaroslav Kysela
2004-06-07 12:45           ` Takashi Iwai
2004-06-07 13:08             ` Russell King
2004-06-07 13:40               ` Takashi Iwai
2004-06-07 13:51                 ` Russell King
2004-06-07 14:18                   ` Takashi Iwai
2004-06-07 15:04                     ` Russell King
2004-06-07 15:13                       ` Takashi Iwai
2004-06-07 15:18                         ` Russell King
2004-06-07 15:32                           ` Takashi Iwai
2004-06-07 15:44                             ` Russell King
2004-06-07 16:25                               ` Takashi Iwai [this message]
2004-06-07 18:04                                 ` Russell King
2004-06-08 15:48                                   ` Takashi Iwai
2004-06-08 16:40                                     ` Russell King
2004-06-08 16:48                                       ` Takashi Iwai
2004-06-07 14:24                   ` James Courtier-Dutton
2004-06-07 15:08                     ` Russell King
2004-06-08  4:01               ` Roc Wu
2004-06-07 10:44       ` Developer docs missing from ALSA web server - was:Re: [Alsa-devel] " James Courtier-Dutton

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=s5hvfi32v4k.wl@alsa2.suse.de \
    --to=tiwai@suse.de \
    --cc=Alsa-devel@lists.sourceforge.net \
    --cc=clemens@ladisch.de \
    --cc=cooloney@yahoo.com.cn \
    --cc=perex@suse.cz \
    --cc=rmk+alsa@arm.linux.org.uk \
    /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.