aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/mgag200/mgag200_drv.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/mgag200/mgag200_drv.h')
-rw-r--r--drivers/gpu/drm/mgag200/mgag200_drv.h21
1 files changed, 21 insertions, 0 deletions
diff --git a/drivers/gpu/drm/mgag200/mgag200_drv.h b/drivers/gpu/drm/mgag200/mgag200_drv.h
index bf29b2f4d68d..364a05a15eb1 100644
--- a/drivers/gpu/drm/mgag200/mgag200_drv.h
+++ b/drivers/gpu/drm/mgag200/mgag200_drv.h
@@ -149,6 +149,21 @@ struct mga_connector {
149 struct mga_i2c_chan *i2c; 149 struct mga_i2c_chan *i2c;
150}; 150};
151 151
152struct mga_cursor {
153 /*
154 We have to have 2 buffers for the cursor to avoid occasional
155 corruption while switching cursor icons.
156 If either of these is NULL, then don't do hardware cursors, and
157 fall back to software.
158 */
159 struct mgag200_bo *pixels_1;
160 struct mgag200_bo *pixels_2;
161 u64 pixels_1_gpu_addr, pixels_2_gpu_addr;
162 /* The currently displayed icon, this points to one of pixels_1, or pixels_2 */
163 struct mgag200_bo *pixels_current;
164 /* The previously displayed icon */
165 struct mgag200_bo *pixels_prev;
166};
152 167
153struct mga_mc { 168struct mga_mc {
154 resource_size_t vram_size; 169 resource_size_t vram_size;
@@ -181,6 +196,7 @@ struct mga_device {
181 struct mga_mode_info mode_info; 196 struct mga_mode_info mode_info;
182 197
183 struct mga_fbdev *mfbdev; 198 struct mga_fbdev *mfbdev;
199 struct mga_cursor cursor;
184 200
185 bool suspended; 201 bool suspended;
186 int num_crtc; 202 int num_crtc;
@@ -273,4 +289,9 @@ int mgag200_mmap(struct file *filp, struct vm_area_struct *vma);
273int mgag200_bo_pin(struct mgag200_bo *bo, u32 pl_flag, u64 *gpu_addr); 289int mgag200_bo_pin(struct mgag200_bo *bo, u32 pl_flag, u64 *gpu_addr);
274int mgag200_bo_unpin(struct mgag200_bo *bo); 290int mgag200_bo_unpin(struct mgag200_bo *bo);
275int mgag200_bo_push_sysram(struct mgag200_bo *bo); 291int mgag200_bo_push_sysram(struct mgag200_bo *bo);
292 /* mgag200_cursor.c */
293int mga_crtc_cursor_set(struct drm_crtc *crtc, struct drm_file *file_priv,
294 uint32_t handle, uint32_t width, uint32_t height);
295int mga_crtc_cursor_move(struct drm_crtc *crtc, int x, int y);
296
276#endif /* __MGAG200_DRV_H__ */ 297#endif /* __MGAG200_DRV_H__ */