[alsa-devel] [PATCH] ALSA sound driver for SEGA Dreamcast AICA (pcm)

Adrian McMenamin adrianmcmenamin at gmail.com
Tue May 15 23:30:02 CEST 2007


On 15/05/07, Heikki Orsila <shdl at zakalwe.fi> wrote:
> I still noticed some type cleanups, and possibly a good debug message..
>
> On Mon, May 14, 2007 at 11:14:55PM +0100, Adrian McMenamin wrote:
> > +/* spu_memload - write to SPU address space */
> > +static void spu_memload(u32 toi, void __iomem * from, int length)
> > +{
> > +     u32 __iomem *froml = from;
> > +     u32 __iomem *to = (u32 __iomem *) (SPU_MEMORY_BASE + toi);
> > +     int i, val;
>
> You should use "void *from" because it's not IO memory. Also, use "u32 val"
> since that is the native type of "u32 *from".
>
> > +     length = DIV_ROUND_UP(length, 4);
> > +     spu_write_wait();
> > +     for (i = 0; i < length; i++) {
> > +             val = *froml;
> > +             writel(val, to);
> > +             froml++;
> > +             to++;
> > +             if (i && !(i % 8))
> > +                     spu_write_wait();
> > +     }
> > +}
>
> It seems a small simplification is possible:
>
>         /* remove first spu_write_wait(); */
>         for (i = 0; i < length; i++) {
>                 if (!(i % 8))
>                         spu_write_wait();
>                 val = *froml;
>                 ...
>         }
>

No, that would be dangerous because we don't know what state the FIFO
is in when this is called.


More information about the Alsa-devel mailing list