11 #include <linux/module.h>
12 #include <linux/string.h>
14 #include <asm/unaligned.h>
27 static void c2p_32x8(
u32 d[8])
41 static const int perm_c2p_32x8[8] = { 7, 5, 3, 1, 6, 4, 2, 0 };
52 for (i = 0; i <
bpp; i++, dst += dst_inc)
61 static inline void store_planar_masked(
void *dst,
u32 dst_inc,
u32 bpp,
66 for (i = 0; i <
bpp; i++, dst += dst_inc)
98 dst += dy*dst_nextline+(dx & ~31);
100 first = 0xffffffff
U >> dst_idx;
101 last = ~(0xffffffff
U >> ((dst_idx+
width) % 32));
106 if (dst_idx+width <= 32) {
109 memset(d.pixels, 0,
sizeof(d));
110 memcpy(d.pixels+dst_idx, c, width);
113 store_planar_masked(p, dst_nextplane, bpp, d.words,
122 memset(d.pixels, 0, dst_idx);
123 memcpy(d.pixels+dst_idx, c, w);
126 store_planar_masked(p, dst_nextplane, bpp,
136 store_planar(p, dst_nextplane, bpp, d.words);
144 memset(d.pixels+w, 0, 32-w);
146 store_planar_masked(p, dst_nextplane, bpp,