Lines Matching +full:left +full:- +full:aligned
4 * Copyright (C) 1999-2005 James Simmons <jsimmons@www.infradead.org>
21 * the ones for filling, i.e. in aligned and unaligned versions. This would
51 int const shift = dst_idx-src_idx; in bitcpy()
58 memmove((char *)dst + ((dst_idx & (bits - 1))) / 8, in bitcpy()
59 (char *)src + ((src_idx & (bits - 1))) / 8, n / 8); in bitcpy()
82 n -= bits - dst_idx; in bitcpy()
96 n -= 8; in bitcpy()
98 while (n--) in bitcpy()
110 int const left = shift & (bits - 1); in bitcpy() local
111 int const right = -shift & (bits - 1); in bitcpy()
121 d0 <<= left; in bitcpy()
129 d0 = d0 >> right | d1 << left; in bitcpy()
146 d0 <<= left; in bitcpy()
147 n -= bits - dst_idx; in bitcpy()
153 d0 = d0 >> right | d1 << left; in bitcpy()
154 n -= bits - dst_idx; in bitcpy()
166 FB_WRITEL(d0 >> right | d1 << left, dst++); in bitcpy()
169 FB_WRITEL(d0 >> right | d1 << left, dst++); in bitcpy()
172 FB_WRITEL(d0 >> right | d1 << left, dst++); in bitcpy()
175 FB_WRITEL(d0 >> right | d1 << left, dst++); in bitcpy()
177 n -= 4; in bitcpy()
179 while (n--) { in bitcpy()
182 d0 = d0 >> right | d1 << left; in bitcpy()
190 if (m <= bits - right) { in bitcpy()
198 d0 = d0 >> right | d1 << left; in bitcpy()
224 memmove((char *)dst + ((dst_idx & (bits - 1))) / 8, in bitcpy_rev()
225 (char *)src + ((src_idx & (bits - 1))) / 8, n / 8); in bitcpy_rev()
229 dst += (dst_idx + n - 1) / bits; in bitcpy_rev()
230 src += (src_idx + n - 1) / bits; in bitcpy_rev()
231 dst_idx = (dst_idx + n - 1) % bits; in bitcpy_rev()
232 src_idx = (src_idx + n - 1) % bits; in bitcpy_rev()
234 shift = dst_idx-src_idx; in bitcpy_rev()
237 last = fb_shifted_pixels_mask_long(p, (bits + dst_idx + 1 - n) % bits, bswapmask); in bitcpy_rev()
253 dst--; in bitcpy_rev()
254 src--; in bitcpy_rev()
255 n -= dst_idx+1; in bitcpy_rev()
261 FB_WRITEL(FB_READL(src--), dst--); in bitcpy_rev()
262 FB_WRITEL(FB_READL(src--), dst--); in bitcpy_rev()
263 FB_WRITEL(FB_READL(src--), dst--); in bitcpy_rev()
264 FB_WRITEL(FB_READL(src--), dst--); in bitcpy_rev()
265 FB_WRITEL(FB_READL(src--), dst--); in bitcpy_rev()
266 FB_WRITEL(FB_READL(src--), dst--); in bitcpy_rev()
267 FB_WRITEL(FB_READL(src--), dst--); in bitcpy_rev()
268 FB_WRITEL(FB_READL(src--), dst--); in bitcpy_rev()
269 n -= 8; in bitcpy_rev()
271 while (n--) in bitcpy_rev()
272 FB_WRITEL(FB_READL(src--), dst--); in bitcpy_rev()
275 if (last != -1UL) in bitcpy_rev()
283 int const left = shift & (bits-1); in bitcpy_rev() local
284 int const right = -shift & (bits-1); in bitcpy_rev()
296 d0 <<= left; in bitcpy_rev()
299 d1 = FB_READL(src - 1); in bitcpy_rev()
301 d0 = d0 << left | d1 >> right; in bitcpy_rev()
313 d0 = FB_READL(src--); in bitcpy_rev()
322 d1 = FB_READL(src--); in bitcpy_rev()
324 d0 = d0 << left | d1 >> right; in bitcpy_rev()
332 dst--; in bitcpy_rev()
333 n -= dst_idx+1; in bitcpy_rev()
339 d1 = FB_READL(src--); in bitcpy_rev()
340 FB_WRITEL(d0 << left | d1 >> right, dst--); in bitcpy_rev()
342 d1 = FB_READL(src--); in bitcpy_rev()
343 FB_WRITEL(d0 << left | d1 >> right, dst--); in bitcpy_rev()
345 d1 = FB_READL(src--); in bitcpy_rev()
346 FB_WRITEL(d0 << left | d1 >> right, dst--); in bitcpy_rev()
348 d1 = FB_READL(src--); in bitcpy_rev()
349 FB_WRITEL(d0 << left | d1 >> right, dst--); in bitcpy_rev()
351 n -= 4; in bitcpy_rev()
353 while (n--) { in bitcpy_rev()
354 d1 = FB_READL(src--); in bitcpy_rev()
356 d0 = d0 << left | d1 >> right; in bitcpy_rev()
358 FB_WRITEL(d0, dst--); in bitcpy_rev()
364 if (m <= bits - left) { in bitcpy_rev()
366 d0 <<= left; in bitcpy_rev()
372 d0 = d0 << left | d1 >> right; in bitcpy_rev()
383 u32 dx = area->dx, dy = area->dy, sx = area->sx, sy = area->sy; in cfb_copyarea()
384 u32 height = area->height, width = area->width; in cfb_copyarea()
385 unsigned int const bits_per_line = p->fix.line_length * 8u; in cfb_copyarea()
391 if (p->state != FBINFO_STATE_RUNNING) in cfb_copyarea()
394 if (p->flags & FBINFO_VIRTFB) in cfb_copyarea()
405 // split the base of the framebuffer into a long-aligned address and the in cfb_copyarea()
407 base = (unsigned long __iomem *)((unsigned long)p->screen_base & ~(bytes-1)); in cfb_copyarea()
408 dst_idx = src_idx = 8*((unsigned long)p->screen_base & (bytes-1)); in cfb_copyarea()
410 dst_idx += dy*bits_per_line + dx*p->var.bits_per_pixel; in cfb_copyarea()
411 src_idx += sy*bits_per_line + sx*p->var.bits_per_pixel; in cfb_copyarea()
413 if (p->fbops->fb_sync) in cfb_copyarea()
414 p->fbops->fb_sync(p); in cfb_copyarea()
417 while (height--) { in cfb_copyarea()
418 dst_idx -= bits_per_line; in cfb_copyarea()
419 src_idx -= bits_per_line; in cfb_copyarea()
422 width*p->var.bits_per_pixel, bswapmask); in cfb_copyarea()
425 while (height--) { in cfb_copyarea()
428 width*p->var.bits_per_pixel, bswapmask); in cfb_copyarea()