]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - drivers/gpu/drm/vmwgfx/vmwgfx_drv.h
vmwgfx: Add present and readback ioctls
[mv-sheeva.git] / drivers / gpu / drm / vmwgfx / vmwgfx_drv.h
index 2124fbc919aa9d40504b452fa3fc9631795b83e4..fc0e3bc63ec0df577bb08236123e19c928016696 100644 (file)
@@ -97,6 +97,8 @@ struct vmw_cursor_snooper {
        uint32_t *image;
 };
 
+struct vmw_framebuffer;
+
 struct vmw_surface {
        struct vmw_resource res;
        uint32_t flags;
@@ -430,6 +432,10 @@ extern int vmw_getparam_ioctl(struct drm_device *dev, void *data,
                              struct drm_file *file_priv);
 extern int vmw_get_cap_3d_ioctl(struct drm_device *dev, void *data,
                                struct drm_file *file_priv);
+extern int vmw_present_ioctl(struct drm_device *dev, void *data,
+                            struct drm_file *file_priv);
+extern int vmw_present_readback_ioctl(struct drm_device *dev, void *data,
+                                     struct drm_file *file_priv);
 
 /**
  * Fifo utilities - vmwgfx_fifo.c
@@ -554,6 +560,19 @@ bool vmw_kms_validate_mode_vram(struct vmw_private *dev_priv,
                                uint32_t pitch,
                                uint32_t height);
 u32 vmw_get_vblank_counter(struct drm_device *dev, int crtc);
+int vmw_kms_present(struct vmw_private *dev_priv,
+                   struct drm_file *file_priv,
+                   struct vmw_framebuffer *vfb,
+                   struct vmw_surface *surface,
+                   uint32_t sid, int32_t destX, int32_t destY,
+                   struct drm_vmw_rect *clips,
+                   uint32_t num_clips);
+int vmw_kms_readback(struct vmw_private *dev_priv,
+                    struct drm_file *file_priv,
+                    struct vmw_framebuffer *vfb,
+                    struct drm_vmw_fence_rep __user *user_fence_rep,
+                    struct drm_vmw_rect *clips,
+                    uint32_t num_clips);
 
 /**
  * Overlay control - vmwgfx_overlay.c