At Thu, 20 Mar 2003 15:24:20 +0100 (CET), Jaroslav wrote: > > On Thu, 20 Mar 2003, Giuliano Pochini wrote: > > > > > >> Ok, but how do I build the sg list when bufsize!=sz*periods ? Take > > >> the example above: have I to build 4 periods and let the last one > > >> smaller than 22052 ? > > > > > > it depends on the hardware. > > > > There are no hw constraints IFAIK, but the hw does not provide the > > current dma address. It tells me how many bytes it transferred from > > the trigger-start command, so I need a way to translate that number > > into a frame pointer inside the buffer. To do that I must know > > exactly how long is the buffer to build the sg list and to stranslate > > the byte count in the pointer callback. (it's not enough see below) > > What does alsa expect from .pointer() ? [0-bufsz] or [0-pe*sz] ? > > 0 ... buffer_size more accurately, 0 to (buffer_size - 1) :)
> > > if you need to set up a buffer-descriptor list like via82xx, the above > > > h/w constraint (integer periods) will be most likely necessary. > > > then the buffer size will be aligned to the period size > > > automatically. > > > > It's a quick and simple way to make things work, but it should't > > be necessary. > > The driver currently behaves correctly in two cases: > > > > a - period size is a multiple of PAGE_SIZE > > b - PAGE_SIZE is a multiple of period size > > > > In both cases periods*periodsize matches buffer_size. But if > > periods*periodsize==buffer_size and !a and !b (eg. pe=4, psz=6K, > > bufsz=24K), it doesn't work: > > > > page0 per0[0-4095] > > page1 per0[4096-6143] per1[0-2048] > > page2 per1[2048-6143] > > ... > > Note that you'll have to call snd_pcm_period_elapsed() only after the > whole period is elapsed and not fragment of it. and just make sure: if the buffer is linear, does this period size work? Takashi ------------------------------------------------------- This SF.net email is sponsored by: Tablet PC. Does your code think in ink? You could win a Tablet PC. Get a free Tablet PC hat just for playing. What are you waiting for? http://ads.sourceforge.net/cgi-bin/redirect.pl?micr5043en _______________________________________________ Alsa-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-devel