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()
56 /* Trailing bits */ in bitfill_aligned()
64 * Unaligned generic pattern fill using 32/64-bit memory accesses
65 * The pattern must have been expanded to a full 32/64-bit value
67 * used for the next 32/64-bit word
72 unsigned long pat, int left, int right, unsigned n, int bits) in bitfill_unaligned() argument
80 last = ~(FB_SHIFT_HIGH(p, ~0UL, (dst_idx+n) % bits)); in bitfill_unaligned()
82 if (dst_idx+n <= bits) { in bitfill_unaligned()
89 /* Leading bits */ in bitfill_unaligned()
94 n -= bits - dst_idx; in bitfill_unaligned()
98 n /= bits; in bitfill_unaligned()
108 n -= 4; in bitfill_unaligned()
110 while (n--) { in bitfill_unaligned()
115 /* Trailing bits */ in bitfill_unaligned()
122 * Aligned pattern invert using 32/64-bit memory accesses
126 unsigned long pat, unsigned n, int bits) in bitfill_aligned_rev() argument
135 last = ~(FB_SHIFT_HIGH(p, ~0UL, (dst_idx+n) % bits)); in bitfill_aligned_rev()
137 if (dst_idx+n <= bits) { in bitfill_aligned_rev()
144 /* Leading bits */ in bitfill_aligned_rev()
148 n -= bits - dst_idx; in bitfill_aligned_rev()
152 n /= bits; in bitfill_aligned_rev()
162 n -= 8; in bitfill_aligned_rev()
164 while (n--) in bitfill_aligned_rev()
166 /* Trailing bits */ in bitfill_aligned_rev()
174 * Unaligned generic pattern invert using 32/64-bit memory accesses
175 * The pattern must have been expanded to a full 32/64-bit value
177 * used for the next 32/64-bit word
183 int bits) in bitfill_unaligned_rev() argument
191 last = ~(FB_SHIFT_HIGH(p, ~0UL, (dst_idx+n) % bits)); in bitfill_unaligned_rev()
193 if (dst_idx+n <= bits) { in bitfill_unaligned_rev()
201 /* Leading bits */ in bitfill_unaligned_rev()
206 n -= bits - dst_idx; in bitfill_unaligned_rev()
210 n /= bits; in bitfill_unaligned_rev()
220 n -= 4; in bitfill_unaligned_rev()
222 while (n--) { in bitfill_unaligned_rev()
227 /* Trailing bits */ in bitfill_unaligned_rev()
236 unsigned long width = rect->width, height = rect->height; in sys_fillrect()
237 int bits = BITS_PER_LONG, bytes = bits >> 3; in sys_fillrect() local
238 u32 bpp = p->var.bits_per_pixel; in sys_fillrect()
242 if (p->state != FBINFO_STATE_RUNNING) in sys_fillrect()
245 if (!(p->flags & FBINFO_VIRTFB)) in sys_fillrect()
248 if (p->fix.visual == FB_VISUAL_TRUECOLOR || in sys_fillrect()
249 p->fix.visual == FB_VISUAL_DIRECTCOLOR ) in sys_fillrect()
250 fg = ((u32 *) (p->pseudo_palette))[rect->color]; in sys_fillrect()
252 fg = rect->color; in sys_fillrect()
256 dst = (unsigned long *)((unsigned long)p->screen_base & ~(bytes-1)); in sys_fillrect()
257 dst_idx = ((unsigned long)p->screen_base & (bytes - 1))*8; in sys_fillrect()
258 dst_idx += rect->dy*p->fix.line_length*8+rect->dx*bpp; in sys_fillrect()
259 /* FIXME For now we support 1-32 bpp only */ in sys_fillrect()
260 left = bits % bpp; in sys_fillrect()
261 if (p->fbops->fb_sync) in sys_fillrect()
262 p->fbops->fb_sync(p); in sys_fillrect()
266 int bits) = NULL; in sys_fillrect()
268 switch (rect->rop) { in sys_fillrect()
281 while (height--) { in sys_fillrect()
282 dst += dst_idx >> (ffs(bits) - 1); in sys_fillrect()
283 dst_idx &= (bits - 1); in sys_fillrect()
284 fill_op32(p, dst, dst_idx, pat, width*bpp, bits); in sys_fillrect()
285 dst_idx += p->fix.line_length*8; in sys_fillrect()
291 int right, unsigned n, int bits) = NULL; in sys_fillrect()
294 left = bpp - right; in sys_fillrect()
296 right = bpp - left; in sys_fillrect()
298 switch (rect->rop) { in sys_fillrect()
311 while (height--) { in sys_fillrect()
312 dst += dst_idx / bits; in sys_fillrect()
313 dst_idx &= (bits - 1); in sys_fillrect()
318 width*bpp, bits); in sys_fillrect()
319 dst_idx += p->fix.line_length*8; in sys_fillrect()
327 MODULE_DESCRIPTION("Generic fill rectangle (sys-to-sys)");