[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Patch for Kernel 2.2.25 (atari-sound)



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




Reply to: