At Sun, 26 Apr 2009 11:42:14 -0400, Jon Smirl wrote:
On Sun, Apr 26, 2009 at 7:14 AM, Takashi Iwai tiwai@suse.de wrote:
At Sat, 25 Apr 2009 17:28:55 -0400, Jon Smirl wrote:
These new patches have broken audio support on the mpc5200....
Then the lowlevel callbacks are likely wrong :)
They assume that the hardware is capable of telling where the DMA engine is in the middle of an operation.
Well, nothing new by these patches. The original PCM core implementation has been designed in that way. These changes may check some bogus value more strictly.
If the hardware doesn't support it, it needs report at least some "sane" value; i.e. it must not be over the real position, but not below the previous pointer.
In the worst case, the driver just needs to report the same position at the previous period boundary until the next snd_pcm_period_elapsed().
That's doesn't work anymore. The PCM code is using jiffies to estimate where the pointer needs to be. I used the same jiffies to fake up a hardware position.
Hrm, then it's a breakage. The quantum position must be still supported. Jaroslav, could you check that? It's your new code...
As an easy workaround, we can give a pcm info flag to indicate that the driver doesn't provide the continuous DMA position.
thanks,
Takashi