diff options
Diffstat (limited to 'drivers/gpu/drm/mgag200/mgag200_drv.h')
-rw-r--r-- | drivers/gpu/drm/mgag200/mgag200_drv.h | 21 |
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 | ||
152 | struct 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 | ||
153 | struct mga_mc { | 168 | struct 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); | |||
273 | int mgag200_bo_pin(struct mgag200_bo *bo, u32 pl_flag, u64 *gpu_addr); | 289 | int mgag200_bo_pin(struct mgag200_bo *bo, u32 pl_flag, u64 *gpu_addr); |
274 | int mgag200_bo_unpin(struct mgag200_bo *bo); | 290 | int mgag200_bo_unpin(struct mgag200_bo *bo); |
275 | int mgag200_bo_push_sysram(struct mgag200_bo *bo); | 291 | int mgag200_bo_push_sysram(struct mgag200_bo *bo); |
292 | /* mgag200_cursor.c */ | ||
293 | int mga_crtc_cursor_set(struct drm_crtc *crtc, struct drm_file *file_priv, | ||
294 | uint32_t handle, uint32_t width, uint32_t height); | ||
295 | int mga_crtc_cursor_move(struct drm_crtc *crtc, int x, int y); | ||
296 | |||
276 | #endif /* __MGAG200_DRV_H__ */ | 297 | #endif /* __MGAG200_DRV_H__ */ |