Re: [patch 6/6] fbdev: c2p - Rename c2p to c2p_planar and correct indentation

Geert Uytterhoeven
2008-12-23T08:02:30Z

On Mon, 22 Dec 2008, Andrew Morton wrote:
> On Sun, 21 Dec 2008 16:01:05 +0100
> Geert Uytterhoeven <geert@linux-m68k.org> wrote:
>
> > + /*
> > + * Store a full block of planar data after c2p conversion
> > + */
> > +
> > +static inline void store_planar(void *dst, u32 dst_inc, u32 bpp, u32 d[8])
> > +{
> > + int i;
> > +
> > + for (i = 0; i < bpp; i++, dst += dst_inc)
> > + *(u32 *)dst = d[perm_c2p_32x8[i]];
> > +}
> > +
> > +
> > + /*
> > + * Store a partial block of planar data after c2p conversion
> > + */
> > +
> > +static inline void store_planar_masked(void *dst, u32 dst_inc, u32 bpp,
> > + u32 d[8], u32 mask)
> > +{
> > + int i;
> > +
> > + for (i = 0; i < bpp; i++, dst += dst_inc)
> > + *(u32 *)dst = comp(d[perm_c2p_32x8[i]], *(u32 *)dst, mask);
> > +}
>
> Why not just make the first arg of these (too large to be inlined)
> functions have type u32*, then do away with the casts?

If I make dst u32 *, then "dst += dst_inc" needs even more ugly casting
(dst_inc is not always a multiple of 4).

Anyway, as it may be an unaligned access, I'll switch to {get,put}_unaligned(),
which has the side effect of hiding the casts.