[alsa-devel] clarification on mmap

Harsha, Priya priya.harsha at intel.com
Tue Feb 24 06:13:54 CET 2009


I have another question on the same. 

What are the runtime->transfer_ack_begin and transfer_ack_end used for? Will this help me understand when the runtime->dma_area are updated be it MMAPed buffer or not.

Thanks,
Harsha


-----Original Message-----
From: alsa-devel-bounces at alsa-project.org [mailto:alsa-devel-bounces at alsa-project.org] On Behalf Of Harsha, Priya
Sent: Tuesday, February 24, 2009 10:24 AM
To: Takashi Iwai
Cc: alsa-devel at alsa-project.org
Subject: Re: [alsa-devel] clarification on mmap

Thanks Takashi. Then what would be the best way to know when the mmaped buffer has been filled. So that I can take action to send it to the hardware? 

Should I use the runtime->control->appl_ptr or runtime->status->appl_ptr to get the position the app has filled?

-----Original Message-----
From: Takashi Iwai [mailto:tiwai at suse.de] 
Sent: Tuesday, February 24, 2009 12:55 AM
To: Harsha, Priya
Cc: alsa-devel at alsa-project.org
Subject: Re: clarification on mmap

At Mon, 23 Feb 2009 22:21:24 +0530,
Harsha, Priya wrote:
> 
> Thank you. Can I use .ack callback to know that the mmaped buffer
> has been filled by the user?

Not really.  It's just for explicit read/write modes.

> How would I know how much the user has
> written into the buffer that time?

You can check appl_ptr at any time.  This corresponds to the position
the app has filled.


Takashi

> Would I need to have the pointers
> calculated and tracked myself or is there a field in the structures
> that I can read and find out? 
> 
> -----Original Message-----
> From: Takashi Iwai [mailto:tiwai at suse.de] 
> Sent: Monday, February 23, 2009 8:57 PM
> To: Harsha, Priya
> Cc: alsa-devel at alsa-project.org
> Subject: Re: clarification on mmap
> 
> At Mon, 23 Feb 2009 18:59:11 +0530,
> Harsha, Priya wrote:
> > 
> > Hi,
> > 
> > I have a question on mmap. If I give my .info to be _MMAP and
> > _MMAP_VALID. Will ALSA framework internally take care of mmap-ing
> > the kernel buffer that has been pre-allocated in the .probe call? Do
> > I need to do anything special to mmap a kernel buffer into user
> > space? Just accessing the runtime->dma_area would allow me to access
> > user data right? 
> 
> Yes.  The buffers allocated via preallocator are supposed to be
> mmappable, so you can simply pass _MMAP* flag there.
> 
> 
> Takashi
> 
_______________________________________________
Alsa-devel mailing list
Alsa-devel at alsa-project.org
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel


More information about the Alsa-devel mailing list