diff options
Diffstat (limited to 'drivers/gpu/drm/msm/mdp/mdp4/mdp4_kms.c')
| -rw-r--r-- | drivers/gpu/drm/msm/mdp/mdp4/mdp4_kms.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/drivers/gpu/drm/msm/mdp/mdp4/mdp4_kms.c b/drivers/gpu/drm/msm/mdp/mdp4/mdp4_kms.c index 272e707c9487..0bb4faa17523 100644 --- a/drivers/gpu/drm/msm/mdp/mdp4/mdp4_kms.c +++ b/drivers/gpu/drm/msm/mdp/mdp4/mdp4_kms.c | |||
| @@ -144,6 +144,10 @@ static void mdp4_preclose(struct msm_kms *kms, struct drm_file *file) | |||
| 144 | static void mdp4_destroy(struct msm_kms *kms) | 144 | static void mdp4_destroy(struct msm_kms *kms) |
| 145 | { | 145 | { |
| 146 | struct mdp4_kms *mdp4_kms = to_mdp4_kms(to_mdp_kms(kms)); | 146 | struct mdp4_kms *mdp4_kms = to_mdp4_kms(to_mdp_kms(kms)); |
| 147 | if (mdp4_kms->blank_cursor_iova) | ||
| 148 | msm_gem_put_iova(mdp4_kms->blank_cursor_bo, mdp4_kms->id); | ||
| 149 | if (mdp4_kms->blank_cursor_bo) | ||
| 150 | drm_gem_object_unreference(mdp4_kms->blank_cursor_bo); | ||
| 147 | kfree(mdp4_kms); | 151 | kfree(mdp4_kms); |
| 148 | } | 152 | } |
| 149 | 153 | ||
| @@ -372,6 +376,23 @@ struct msm_kms *mdp4_kms_init(struct drm_device *dev) | |||
| 372 | goto fail; | 376 | goto fail; |
| 373 | } | 377 | } |
| 374 | 378 | ||
| 379 | mutex_lock(&dev->struct_mutex); | ||
| 380 | mdp4_kms->blank_cursor_bo = msm_gem_new(dev, SZ_16K, MSM_BO_WC); | ||
| 381 | mutex_unlock(&dev->struct_mutex); | ||
| 382 | if (IS_ERR(mdp4_kms->blank_cursor_bo)) { | ||
| 383 | ret = PTR_ERR(mdp4_kms->blank_cursor_bo); | ||
| 384 | dev_err(dev->dev, "could not allocate blank-cursor bo: %d\n", ret); | ||
| 385 | mdp4_kms->blank_cursor_bo = NULL; | ||
| 386 | goto fail; | ||
| 387 | } | ||
| 388 | |||
| 389 | ret = msm_gem_get_iova(mdp4_kms->blank_cursor_bo, mdp4_kms->id, | ||
| 390 | &mdp4_kms->blank_cursor_iova); | ||
| 391 | if (ret) { | ||
| 392 | dev_err(dev->dev, "could not pin blank-cursor bo: %d\n", ret); | ||
| 393 | goto fail; | ||
| 394 | } | ||
| 395 | |||
| 375 | return kms; | 396 | return kms; |
| 376 | 397 | ||
| 377 | fail: | 398 | fail: |
