Lines Matching +full:32 +full:- +full:bits
21 * Aligned pattern fill using 32/64-bit memory accesses
26 unsigned long pat, unsigned n, int bits) in bitfill_aligned() argument
34 last = ~(FB_SHIFT_HIGH(p, ~0UL, (dst_idx+n) % bits)); in bitfill_aligned()
36 if (dst_idx+n <= bits) { in bitfill_aligned()
44 /* Leading bits */ in bitfill_aligned()
48 n -= bits - dst_idx; in bitfill_aligned()
52 n /= bits; in bitfill_aligned()
62 n -= 8; in bitfill_aligned()
64 while (n--) in bitfill_aligned()
66 /* Trailing bits */ in bitfill_aligned()
74 * Unaligned generic pattern fill using 32/64-bit memory accesses
75 * The pattern must have been expanded to a full 32/64-bit value
77 * used for the next 32/64-bit word
82 unsigned long pat, int left, int right, unsigned n, int bits) in bitfill_unaligned() argument
90 last = ~(FB_SHIFT_HIGH(p, ~0UL, (dst_idx+n) % bits)); in bitfill_unaligned()
92 if (dst_idx+n <= bits) { in bitfill_unaligned()
99 /* Leading bits */ in bitfill_unaligned()
104 n -= bits - dst_idx; in bitfill_unaligned()
108 n /= bits; in bitfill_unaligned()
118 n -= 4; in bitfill_unaligned()
120 while (n--) { in bitfill_unaligned()
125 /* Trailing bits */ in bitfill_unaligned()
132 * Aligned pattern invert using 32/64-bit memory accesses
136 unsigned long pat, unsigned n, int bits) in bitfill_aligned_rev() argument
145 last = ~(FB_SHIFT_HIGH(p, ~0UL, (dst_idx+n) % bits)); in bitfill_aligned_rev()
147 if (dst_idx+n <= bits) { in bitfill_aligned_rev()
154 /* Leading bits */ in bitfill_aligned_rev()
158 n -= bits - dst_idx; in bitfill_aligned_rev()
162 n /= bits; in bitfill_aligned_rev()
172 n -= 8; in bitfill_aligned_rev()
174 while (n--) in bitfill_aligned_rev()
176 /* Trailing bits */ in bitfill_aligned_rev()
184 * Unaligned generic pattern invert using 32/64-bit memory accesses
185 * The pattern must have been expanded to a full 32/64-bit value
187 * used for the next 32/64-bit word
193 int bits) in bitfill_unaligned_rev() argument
201 last = ~(FB_SHIFT_HIGH(p, ~0UL, (dst_idx+n) % bits)); in bitfill_unaligned_rev()
203 if (dst_idx+n <= bits) { in bitfill_unaligned_rev()
211 /* Leading bits */ in bitfill_unaligned_rev()
216 n -= bits - dst_idx; in bitfill_unaligned_rev()
220 n /= bits; in bitfill_unaligned_rev()
230 n -= 4; in bitfill_unaligned_rev()
232 while (n--) { in bitfill_unaligned_rev()
237 /* Trailing bits */ in bitfill_unaligned_rev()
246 unsigned long width = rect->width, height = rect->height; in sys_fillrect()
247 int bits = BITS_PER_LONG, bytes = bits >> 3; in sys_fillrect() local
248 u32 bpp = p->var.bits_per_pixel; in sys_fillrect()
252 if (p->state != FBINFO_STATE_RUNNING) in sys_fillrect()
255 if (p->fix.visual == FB_VISUAL_TRUECOLOR || in sys_fillrect()
256 p->fix.visual == FB_VISUAL_DIRECTCOLOR ) in sys_fillrect()
257 fg = ((u32 *) (p->pseudo_palette))[rect->color]; in sys_fillrect()
259 fg = rect->color; in sys_fillrect()
263 dst = (unsigned long *)((unsigned long)p->screen_base & ~(bytes-1)); in sys_fillrect()
264 dst_idx = ((unsigned long)p->screen_base & (bytes - 1))*8; in sys_fillrect()
265 dst_idx += rect->dy*p->fix.line_length*8+rect->dx*bpp; in sys_fillrect()
266 /* FIXME For now we support 1-32 bpp only */ in sys_fillrect()
267 left = bits % bpp; in sys_fillrect()
268 if (p->fbops->fb_sync) in sys_fillrect()
269 p->fbops->fb_sync(p); in sys_fillrect()
273 int bits) = NULL; in sys_fillrect()
275 switch (rect->rop) { in sys_fillrect()
288 while (height--) { in sys_fillrect()
289 dst += dst_idx >> (ffs(bits) - 1); in sys_fillrect()
290 dst_idx &= (bits - 1); in sys_fillrect()
291 fill_op32(p, dst, dst_idx, pat, width*bpp, bits); in sys_fillrect()
292 dst_idx += p->fix.line_length*8; in sys_fillrect()
298 int right, unsigned n, int bits) = NULL; in sys_fillrect()
301 left = bpp - right; in sys_fillrect()
303 right = bpp - left; in sys_fillrect()
305 switch (rect->rop) { in sys_fillrect()
318 while (height--) { in sys_fillrect()
319 dst += dst_idx / bits; in sys_fillrect()
320 dst_idx &= (bits - 1); in sys_fillrect()
325 width*bpp, bits); in sys_fillrect()
326 dst_idx += p->fix.line_length*8; in sys_fillrect()
334 MODULE_DESCRIPTION("Generic fill rectangle (sys-to-sys)");