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