diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_display.c')
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_display.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c index 38d47559f098..8ede2645a06c 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c | |||
@@ -29,6 +29,7 @@ | |||
29 | #include "amdgpu_i2c.h" | 29 | #include "amdgpu_i2c.h" |
30 | #include "atom.h" | 30 | #include "atom.h" |
31 | #include "amdgpu_connectors.h" | 31 | #include "amdgpu_connectors.h" |
32 | #include "amdgpu_display.h" | ||
32 | #include <asm/div64.h> | 33 | #include <asm/div64.h> |
33 | 34 | ||
34 | #include <linux/pm_runtime.h> | 35 | #include <linux/pm_runtime.h> |
@@ -189,7 +190,7 @@ int amdgpu_crtc_page_flip_target(struct drm_crtc *crtc, | |||
189 | goto cleanup; | 190 | goto cleanup; |
190 | } | 191 | } |
191 | 192 | ||
192 | r = amdgpu_bo_pin(new_abo, AMDGPU_GEM_DOMAIN_VRAM, &base); | 193 | r = amdgpu_bo_pin(new_abo, amdgpu_display_framebuffer_domains(adev), &base); |
193 | if (unlikely(r != 0)) { | 194 | if (unlikely(r != 0)) { |
194 | DRM_ERROR("failed to pin new abo buffer before flip\n"); | 195 | DRM_ERROR("failed to pin new abo buffer before flip\n"); |
195 | goto unreserve; | 196 | goto unreserve; |
@@ -502,6 +503,17 @@ static const struct drm_framebuffer_funcs amdgpu_fb_funcs = { | |||
502 | .create_handle = amdgpu_user_framebuffer_create_handle, | 503 | .create_handle = amdgpu_user_framebuffer_create_handle, |
503 | }; | 504 | }; |
504 | 505 | ||
506 | uint32_t amdgpu_display_framebuffer_domains(struct amdgpu_device *adev) | ||
507 | { | ||
508 | uint32_t domain = AMDGPU_GEM_DOMAIN_VRAM; | ||
509 | |||
510 | if (adev->asic_type >= CHIP_CARRIZO && adev->asic_type < CHIP_RAVEN && | ||
511 | adev->flags & AMD_IS_APU) | ||
512 | domain |= AMDGPU_GEM_DOMAIN_GTT; | ||
513 | |||
514 | return domain; | ||
515 | } | ||
516 | |||
505 | int | 517 | int |
506 | amdgpu_framebuffer_init(struct drm_device *dev, | 518 | amdgpu_framebuffer_init(struct drm_device *dev, |
507 | struct amdgpu_framebuffer *rfb, | 519 | struct amdgpu_framebuffer *rfb, |