23 #include <linux/module.h>
24 #include <linux/kernel.h>
25 #include <linux/errno.h>
26 #include <linux/string.h>
28 #include <linux/tty.h>
29 #include <linux/slab.h>
89 while (avail < size) {
113 unsigned submit_size;
118 submit_size = (size < 0x60) ? size : 0x60;
120 ret = psb_2d_wait_available(dev_priv, submit_size);
126 for (i = 0; i < submit_size; i += 4)
131 spin_unlock_irqrestore(&dev_priv->
lock_2d, flags);
144 static u32 psb_accel_2d_copy_direction(
int xdir,
int ydir)
188 psb_accel_2d_copy_direction(src_x - dst_x, src_y - dst_y);
229 return psbfb_2d_submit(dev_priv, buffer, buf - buffer);
239 static void psbfb_copyarea_accel(
struct fb_info *
info,
255 offset = psbfb->
gtt->offset;
287 psb_accel_2d_copy(dev_priv,
288 offset, stride, src_format,
289 offset, stride, dst_format,
313 psbfb_copyarea_accel(info, region);
362 spin_unlock_irqrestore(&dev_priv->
lock_2d, flags);
363 return (busy) ? -
EBUSY : 0;