[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20100507102408.GM30801@buzzloop.caiaq.de>
Date: Fri, 7 May 2010 12:24:08 +0200
From: Daniel Mack <daniel@...aq.de>
To: Clemens Ladisch <clemens@...isch.de>
Cc: Takashi Iwai <tiwai@...e.de>, alsa-devel@...a-project.org,
Greg KH <gregkh@...e.de>,
Konrad Rzeszutek Wilk <konrad.wilk@...cle.com>,
USB list <linux-usb@...r.kernel.org>,
Kernel development list <linux-kernel@...r.kernel.org>,
Chris Wright <chrisw@...s-sol.org>,
iommu@...ts.linux-foundation.org, Andi Kleen <andi@...stfloor.org>,
Alan Stern <stern@...land.harvard.edu>,
Pedro Ribeiro <pedrib@...il.com>,
Andrew Morton <akpm@...ux-foundation.org>,
David Woodhouse <dwmw2@...radead.org>
Subject: Re: [alsa-devel] USB transfer_buffer allocations on 64bit systems
On Fri, May 07, 2010 at 11:47:37AM +0200, Clemens Ladisch wrote:
> Daniel Mack wrote:
> > The problem is again (summarized):
> >
> > On 64bit machines, with 4GB or more, the allocated buffers for USB
> > transfers might be beyond the 32bit boundary. In this case, the IOMMU
> > should take care and install DMA bounce buffer to copy over the buffer
> > before the transfer actually happens. The problem is, however, that this
> > copy mechanism takes place when the URB with its associated buffer is
> > submitted, not when the EHCI will actually do the transfer.
> >
> > In the particular case of audio drivers, though, the contents of the
> > buffers are likely to change after the submission. What we do here
> > is that we map the audio stream buffers which are used by ALSA to
> > the output URBs, so they're filled asychronously. Once the buffer is
> > actually sent out on the bus, it is believed to contain proper audio
> > date. If it doesn't, that's due to too tight audio timing or other
> > problems. This breaks once buffers are magically bounced in the
> > background.
>
> At least the audio class and ua101 drivers don't do this and fill the
> buffers before they are submitted.
Gnaa, you're right. I _thought_ my code does it the way I described, but
what I wrote is how I _wanted_ to do it, not how it's currently done. I
have a plan to change this in the future.
So unfortunately, that doesn't explain it either. Sorry for the noise.
Daniel
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists