Thread (24 messages) 24 messages, 2 authors, 2021-01-13

Re: [PATCH 5/6 v2] sound: Add n64 driver

From: Lauri Kasanen <hidden>
Date: 2021-01-10 17:41:43

On Sun, 10 Jan 2021 18:22:50 +0100
Takashi Iwai [off-list ref] wrote:
On Sun, 10 Jan 2021 18:03:32 +0100,
Lauri Kasanen wrote:
quoted
On Sun, 10 Jan 2021 11:24:22 +0100
Takashi Iwai [off-list ref] wrote:
quoted
quoted
At first there was no nextpos, and _pointer() always reported pos. This
didn't work, the core played through the audio at chipmunk speed. So
there must be more that I don't understand here.
Try to set the periods_min=2 and the integer periods hw constraint at
first, and change the pointer callback to return nextpos.  Also, at
the push function, set runtime->delay = period_size as well.
When I do all this, it still causes the chipmunk speed. Several seconds
of audio gets played in 0.3s or so. Sorry if this is taking too much of
your time, I'm a bit lost here at what the alsa core is expecting.

Printks show the following repeats:
start, period size 1024
push, bool irq=0
irq fired
push, bool irq=1
pointer at 8192
stop
Hm, is the above about the result with the pointer callback returning
pos, not nextpos?  If so,
It was returning nextpos, but the pointer printk was in bytes. 8192
bytes = 2048 frames.
quoted
start, period size 1024
push, bool irq=0
At this moment, nextpos is 1024, and it should take some time until
quoted
irq fired
... this IRQ is triggered; it must be the period time.
Was the reported timing as expected?
It's roughly correct, but timing is not very precise, as printk itself
has heavy overhead for the 93 MHz cpu.

- Lauri
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help