Message ID | 20170329040054.18587-1-raof@ubuntu.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Am 29.03.2017 um 06:00 schrieb raof@ubuntu.com: > From: Christopher James Halse Rogers <christopher.halse.rogers@canonical.com> > > Any use of the framebuffer will migrate it to VRAM, which is not sensible for > an imported dma-buf. > > v2: Use DRM_DEBUG_KMS to prevent userspace accidentally spamming dmesg. > > Signed-off-by: Christopher James Halse Rogers <christopher.halse.rogers@canonical.com> > CC: amd-gfx@lists.freedesktop.org For this one and the amdgpu variant: Reviewed-by: Christian König <christian.koenig@amd.com>. > --- > drivers/gpu/drm/radeon/radeon_display.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/drivers/gpu/drm/radeon/radeon_display.c b/drivers/gpu/drm/radeon/radeon_display.c > index aea8b62835a4..f85e9c1eaa47 100644 > --- a/drivers/gpu/drm/radeon/radeon_display.c > +++ b/drivers/gpu/drm/radeon/radeon_display.c > @@ -1352,6 +1352,12 @@ radeon_user_framebuffer_create(struct drm_device *dev, > return ERR_PTR(-ENOENT); > } > > + /* Handle is imported dma-buf, so cannot be migrated to VRAM for scanout */ > + if (obj->import_attach) { > + DRM_DEBUG_KMS("Cannot create framebuffer from imported dma_buf\n"); > + return ERR_PTR(-EINVAL); > + } > + > radeon_fb = kzalloc(sizeof(*radeon_fb), GFP_KERNEL); > if (radeon_fb == NULL) { > drm_gem_object_unreference_unlocked(obj);
diff --git a/drivers/gpu/drm/radeon/radeon_display.c b/drivers/gpu/drm/radeon/radeon_display.c index aea8b62835a4..f85e9c1eaa47 100644 --- a/drivers/gpu/drm/radeon/radeon_display.c +++ b/drivers/gpu/drm/radeon/radeon_display.c @@ -1352,6 +1352,12 @@ radeon_user_framebuffer_create(struct drm_device *dev, return ERR_PTR(-ENOENT); } + /* Handle is imported dma-buf, so cannot be migrated to VRAM for scanout */ + if (obj->import_attach) { + DRM_DEBUG_KMS("Cannot create framebuffer from imported dma_buf\n"); + return ERR_PTR(-EINVAL); + } + radeon_fb = kzalloc(sizeof(*radeon_fb), GFP_KERNEL); if (radeon_fb == NULL) { drm_gem_object_unreference_unlocked(obj);