On Thu, 2003-03-27 at 08:14, Björn Buske wrote: > I've found a small error in the atari sounddriver, that's present in all > 2.2.x-versions of the kernel-source. > > In drivers/sound/dmasound.c, in the following function > > static void ata_sq_play_next_frame(int index) > { > char *start, *end; > > /* used by AtaPlay() if all doubts whether there really is something > * to be played are already wiped out. > */ > start = sq_block_address(sq.front); > end = start+((sq.count == index) ? sq.rear_size : sq.block_size); > /* end might not be a legal virtual address. */ > DMASNDSetEnd(VTOP(end - 1) + 1); > DMASNDSetBase(VTOP(start)); > /* Since only an even number of samples per frame can > be played, we might lose one byte here. (TO DO) */ > sq.front = (sq.front+1) % sq.max_count; > sq.playing++; > tt_dmasnd.ctrl = DMASND_CTRL_ON | DMASND_CTRL_REPEAT; > } > > VTOP() needs to be replaced with virt_to_phys(), creating > > DMASNDSetEnd(virt_to_phys(end - 1) + 1); > DMASNDSetBase(virt_to_phys(start)); > > Otherwise, there'll be an unresolved sybol (obviously). I guess someone didn't > grep all the sources for "VTOP" when the function was renamed... > > Anyway, if someone with write access to the repository could check this in, > other atari-folks will be spared one error-message. > > Live long and prosper, > > Björn Buske > _______________________________________________
I just committed this change to the CVS repository at cvs.linux-mac68k.sourceforge.net:/cvsroot/linux-mac68k It has not been tested as I don't have an atari. Ray