aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/drm/qxl/qxl_drv.h3
-rw-r--r--drivers/gpu/drm/qxl/qxl_fb.c10
-rw-r--r--drivers/gpu/drm/qxl/qxl_object.c5
3 files changed, 18 insertions, 0 deletions
diff --git a/drivers/gpu/drm/qxl/qxl_drv.h b/drivers/gpu/drm/qxl/qxl_drv.h
index aec9f1f9c814..70a67862673a 100644
--- a/drivers/gpu/drm/qxl/qxl_drv.h
+++ b/drivers/gpu/drm/qxl/qxl_drv.h
@@ -332,6 +332,7 @@ int qxl_bo_init(struct qxl_device *qdev);
332void qxl_bo_fini(struct qxl_device *qdev); 332void qxl_bo_fini(struct qxl_device *qdev);
333 333
334void qxl_reinit_memslots(struct qxl_device *qdev); 334void qxl_reinit_memslots(struct qxl_device *qdev);
335int qxl_surf_evict(struct qxl_device *qdev);
335 336
336struct qxl_ring *qxl_ring_create(struct qxl_ring_header *header, 337struct qxl_ring *qxl_ring_create(struct qxl_ring_header *header,
337 int element_size, 338 int element_size,
@@ -369,6 +370,7 @@ void qxl_fbdev_fini(struct qxl_device *qdev);
369int qxl_get_handle_for_primary_fb(struct qxl_device *qdev, 370int qxl_get_handle_for_primary_fb(struct qxl_device *qdev,
370 struct drm_file *file_priv, 371 struct drm_file *file_priv,
371 uint32_t *handle); 372 uint32_t *handle);
373void qxl_fbdev_set_suspend(struct qxl_device *qdev, int state);
372 374
373/* qxl_display.c */ 375/* qxl_display.c */
374int 376int
@@ -534,6 +536,7 @@ irqreturn_t qxl_irq_handler(DRM_IRQ_ARGS);
534 536
535/* qxl_fb.c */ 537/* qxl_fb.c */
536int qxl_fb_init(struct qxl_device *qdev); 538int qxl_fb_init(struct qxl_device *qdev);
539bool qxl_fbdev_qobj_is_fb(struct qxl_device *qdev, struct qxl_bo *qobj);
537 540
538int qxl_debugfs_add_files(struct qxl_device *qdev, 541int qxl_debugfs_add_files(struct qxl_device *qdev,
539 struct drm_info_list *files, 542 struct drm_info_list *files,
diff --git a/drivers/gpu/drm/qxl/qxl_fb.c b/drivers/gpu/drm/qxl/qxl_fb.c
index c08e12886d6c..76f39d88d684 100644
--- a/drivers/gpu/drm/qxl/qxl_fb.c
+++ b/drivers/gpu/drm/qxl/qxl_fb.c
@@ -560,4 +560,14 @@ void qxl_fbdev_fini(struct qxl_device *qdev)
560 qdev->mode_info.qfbdev = NULL; 560 qdev->mode_info.qfbdev = NULL;
561} 561}
562 562
563void qxl_fbdev_set_suspend(struct qxl_device *qdev, int state)
564{
565 fb_set_suspend(qdev->mode_info.qfbdev->helper.fbdev, state);
566}
563 567
568bool qxl_fbdev_qobj_is_fb(struct qxl_device *qdev, struct qxl_bo *qobj)
569{
570 if (qobj == gem_to_qxl_bo(qdev->mode_info.qfbdev->qfb.obj))
571 return true;
572 return false;
573}
diff --git a/drivers/gpu/drm/qxl/qxl_object.c b/drivers/gpu/drm/qxl/qxl_object.c
index d9b12e7bc6e1..62a046e4a036 100644
--- a/drivers/gpu/drm/qxl/qxl_object.c
+++ b/drivers/gpu/drm/qxl/qxl_object.c
@@ -363,3 +363,8 @@ int qxl_bo_list_add(struct qxl_reloc_list *reloc_list, struct qxl_bo *bo)
363 return ret; 363 return ret;
364 return 0; 364 return 0;
365} 365}
366
367int qxl_surf_evict(struct qxl_device *qdev)
368{
369 return ttm_bo_evict_mm(&qdev->mman.bdev, TTM_PL_PRIV0);
370}