Lines Matching full:src
37 const struct fb_address *src) in fb_copy_offset_masked() argument
39 fb_modify_offset(fb_read_offset(offset, src), mask, offset, dst); in fb_copy_offset_masked()
44 const struct fb_address *src) in fb_copy_offset() argument
46 fb_write_offset(fb_read_offset(offset, src), offset, dst); in fb_copy_offset()
51 const struct fb_address *src, in fb_copy_aligned_fwd() argument
66 fb_copy_offset(0, dst, src); in fb_copy_aligned_fwd()
68 fb_copy_offset_masked(last, 0, dst, src); in fb_copy_aligned_fwd()
75 fb_copy_offset_masked(first, 0, dst, src); in fb_copy_aligned_fwd()
80 fb_copy_offset(offset + 0, dst, src); in fb_copy_aligned_fwd()
81 fb_copy_offset(offset + 1, dst, src); in fb_copy_aligned_fwd()
82 fb_copy_offset(offset + 2, dst, src); in fb_copy_aligned_fwd()
83 fb_copy_offset(offset + 3, dst, src); in fb_copy_aligned_fwd()
87 fb_copy_offset(offset++, dst, src); in fb_copy_aligned_fwd()
91 fb_copy_offset_masked(last, offset, dst, src); in fb_copy_aligned_fwd()
97 const struct fb_address *src, in fb_copy_aligned_rev() argument
110 fb_copy_offset(0, dst, src); in fb_copy_aligned_rev()
112 fb_copy_offset_masked(first, 0, dst, src); in fb_copy_aligned_rev()
121 fb_copy_offset_masked(last, end, dst, src); in fb_copy_aligned_rev()
125 fb_copy_offset(end - 1, dst, src); in fb_copy_aligned_rev()
126 fb_copy_offset(end - 2, dst, src); in fb_copy_aligned_rev()
127 fb_copy_offset(end - 3, dst, src); in fb_copy_aligned_rev()
128 fb_copy_offset(end - 4, dst, src); in fb_copy_aligned_rev()
132 fb_copy_offset(--end, dst, src); in fb_copy_aligned_rev()
136 fb_copy_offset_masked(first, 0, dst, src); in fb_copy_aligned_rev()
140 static inline void fb_copy_aligned(struct fb_address *dst, struct fb_address *src, in fb_copy_aligned() argument
146 fb_copy_aligned_rev(dst, src, width + dst->bits, reverse); in fb_copy_aligned()
148 fb_address_backward(src, bits_per_line); in fb_copy_aligned()
152 fb_copy_aligned_fwd(dst, src, width + dst->bits, reverse); in fb_copy_aligned()
154 fb_address_forward(src, bits_per_line); in fb_copy_aligned()
159 const struct fb_address *src, int width, in fb_copy_fwd() argument
172 shift = dst->bits - src->bits; in fb_copy_fwd()
180 d0 = fb_left(reorder(fb_read_offset(-1, src), reverse), left); in fb_copy_fwd()
181 if (src->bits + width > BITS_PER_LONG) in fb_copy_fwd()
182 d0 |= fb_right(reorder(fb_read_offset(0, src), reverse), right); in fb_copy_fwd()
189 d0 = fb_right(reorder(fb_read_offset(0, src), reverse), right); in fb_copy_fwd()
198 d0 = reorder(fb_read_offset(-1, src), reverse); in fb_copy_fwd()
204 d1 = reorder(fb_read_offset(0, src), reverse); in fb_copy_fwd()
214 d1 = fb_read_offset(offset + 0, src); in fb_copy_fwd()
218 d1 = fb_read_offset(offset + 1, src); in fb_copy_fwd()
222 d1 = fb_read_offset(offset + 2, src); in fb_copy_fwd()
226 d1 = fb_read_offset(offset + 3, src); in fb_copy_fwd()
234 d1 = reorder(fb_read_offset(offset, src), reverse); in fb_copy_fwd()
244 if (src->bits + width in fb_copy_fwd()
246 d0 |= fb_right(reorder(fb_read_offset(offset, src), reverse), in fb_copy_fwd()
254 const struct fb_address *src, int end, in fb_copy_rev() argument
266 shift = dst->bits - src->bits; in fb_copy_rev()
276 d0 = fb_right(reorder(fb_read_offset(1, src), reverse), right); in fb_copy_rev()
277 if (src->bits > left) in fb_copy_rev()
278 d0 |= fb_left(reorder(fb_read_offset(0, src), reverse), left); in fb_copy_rev()
281 d0 = fb_left(reorder(fb_read_offset(0, src), reverse), left); in fb_copy_rev()
282 if (src->bits + end - dst->bits > BITS_PER_LONG) in fb_copy_rev()
283 d0 |= fb_right(reorder(fb_read_offset(1, src), reverse), right); in fb_copy_rev()
297 d0 = fb_right(reorder(fb_read_offset(end + 1, src), reverse), right); in fb_copy_rev()
302 d1 = reorder(fb_read_offset(end, src), reverse); in fb_copy_rev()
311 d1 = fb_read_offset(end - 1, src); in fb_copy_rev()
315 d1 = fb_read_offset(end - 2, src); in fb_copy_rev()
319 d1 = fb_read_offset(end - 3, src); in fb_copy_rev()
323 d1 = fb_read_offset(end - 4, src); in fb_copy_rev()
332 d1 = reorder(fb_read_offset(end, src), reverse); in fb_copy_rev()
341 if (src->bits > left) in fb_copy_rev()
342 d0 |= fb_left(reorder(fb_read_offset(0, src), reverse), left); in fb_copy_rev()
348 static __always_inline void fb_copy(struct fb_address *dst, struct fb_address *src, in fb_copy() argument
356 int move = src->bits < dst->bits ? -1 : 0; in fb_copy()
358 fb_address_move_long(src, move); in fb_copy()
359 fb_copy_rev(dst, src, width + dst->bits, reorder, reverse); in fb_copy()
361 fb_address_backward(src, bits_per_line); in fb_copy()
362 fb_address_move_long(src, -move); in fb_copy()
366 int move = src->bits > dst->bits ? 1 : 0; in fb_copy()
368 fb_address_move_long(src, move); in fb_copy()
369 fb_copy_fwd(dst, src, width, reorder, reverse); in fb_copy()
371 fb_address_forward(src, bits_per_line); in fb_copy()
372 fb_address_move_long(src, -move); in fb_copy()
386 struct fb_address src = dst; in fb_copyarea() local
394 fb_address_forward(&src, sy*bits_per_line + area->sx*bpp); in fb_copyarea()
396 if (src.bits == dst.bits) in fb_copyarea()
397 fb_copy_aligned(&dst, &src, width, height, bits_per_line, reverse, rev_copy); in fb_copyarea()
399 !((src.bits ^ dst.bits) & (BITS_PER_BYTE-1)))) { in fb_copyarea()
400 fb_copy(&dst, &src, width, height, bits_per_line, in fb_copyarea()
403 fb_copy(&dst, &src, width, height, bits_per_line, in fb_copyarea()