At Mon, 19 May 2008 19:23:10 +0200, Giuseppe Coviello wrote: > > On mer, 14/05/2008 14.26 +0200, Takashi Iwai wrote: > [cut] > > OK, here is another patch for testing. Since I lost my old patch > > somewhere (and it's not worth to dig the archive), I wrote it up > > quickly from scratch. This version should cover both SG and non-SG > > buffers. It's against the latest git tree. > > > > The patch adds a hackish verison of dma_mmap_coherent() for some > > architectures in sound/core/pcm_native.c. I'm not sure whether this > > works. I just tested it on X86. It'd be appreciated if someone can > > test this. > > > > Also, this disables HDSPM driver for non-X86/IA64 since the driver has > > own copy and silence methods that are incompatible with the new > > SG-buffer data. > > > > > > And, yes, I know we need to clean up huge messes in ALSA memory > > handling routines. But, let's fix obvious bugs before starting a big > > rewrite... > > > > I've just tested this patch on the sam440ep and it works great (and > sounds great, of course). I had also to make the following changes: Hmm, weird. cs4281 has no SG buffer at all, so basically it cannot work like that... FYI, the latest patches can be found on git://git.kernel.org/pub/scm/linux/kernel/tiwai/sound-unstable-2.6.git thanks, Takashi > > Signed-off-by: Giuseppe Coviello <gicoviello@xxxxxxxxx> > > diff --git a/sound/pci/cs4281.c b/sound/pci/cs4281.c > index 7556fd9..f5f208e 100644 > --- a/sound/pci/cs4281.c > +++ b/sound/pci/cs4281.c > @@ -952,6 +952,9 @@ static struct snd_pcm_ops snd_cs4281_playback_ops = { > .prepare = snd_cs4281_playback_prepare, > .trigger = snd_cs4281_trigger, > .pointer = snd_cs4281_pointer, > + .copy = snd_pcm_sgbuf_ops_copy, > + .silence = snd_pcm_sgbuf_ops_silence, > + .page = snd_pcm_sgbuf_ops_page, > }; > > static struct snd_pcm_ops snd_cs4281_capture_ops = { > @@ -963,6 +966,8 @@ static struct snd_pcm_ops snd_cs4281_capture_ops = { > .prepare = snd_cs4281_capture_prepare, > .trigger = snd_cs4281_trigger, > .pointer = snd_cs4281_pointer, > + .copy = snd_pcm_sgbuf_ops_copy, > + .page = snd_pcm_sgbuf_ops_page, > }; > > static int __devinit snd_cs4281_pcm(struct cs4281 * chip, int device, > > _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel