![]() | ||||||||||
Messages in this thread |
On Wed, 11 Dec 2002 17:59:28 EST, Doug Ledford said: > This sounds like the problem some chipsets had with wrapping counters in > the dma pointer read code. Basically, when the sg segment is advanced to > the next segment, the offset counter would not be simultaneously cleared > but instead would be momentarily delayed before the clear occured and a > read at just the wrong time could result in us thinking that the buffer > was a full sg segment farther than it was. There were changes made to the > oss i810 driver around version 0.18 to solve this problem if I remember > correctly. Similar code may be needed in the alsa driver, I'm not sure > because I have looked at it or tried it (my machine with an i810 doesn't > run 2.5 kernels). Ahh... That would exactly explain what I was seeing, and why it worked under 2.4.18 for me, and gives me a good idea where to look (the relevant code in the alsa and oss drivers is pretty similar, there's only so many ways to code a ring buffer when the other part is cast in silicon. ;) /Valdis [unhandled content-type:application/pgp-signature] | |||||||||
| Last update: 2005-03-22 11:31 [W:0.170 / U:2.160 seconds] ©2003-2008 Jasper Spaans | ||||||||||