Am 27.04.2017 um 12:57 schrieb Julien Isorce: > Like done in radeon_cs_ioctl. > > In particular it avoids mesa to call map/unmap: > radeon_create_bo > ioctl(DRM_RADEON_GEM_CREATE) -> ok > ioctl(DRM_RADEON_GEM_VA-MAP) > radeon_destroy_bo > ioctl(DRM_RADEON_GEM_VA-UNMAP) > > Encountered also cases where the vm_manager succeeded to be enabled after > a gpu reset while the GFX ring was not responding so accel was disabled. > > https://bugs.freedesktop.org/show_bug.cgi?id=96271 NAK, even if accel isn't working we want to display something and for that we need to be able to create BOs. Christian. > > Signed-off-by: Julien Isorce <jisorce at oblong.com> > --- > drivers/gpu/drm/radeon/radeon_gem.c | 7 +++++++ > 1 file changed, 7 insertions(+) > > diff --git a/drivers/gpu/drm/radeon/radeon_gem.c b/drivers/gpu/drm/radeon/radeon_gem.c > index b97c92b..1030001 100644 > --- a/drivers/gpu/drm/radeon/radeon_gem.c > +++ b/drivers/gpu/drm/radeon/radeon_gem.c > @@ -259,6 +259,13 @@ int radeon_gem_create_ioctl(struct drm_device *dev, void *data, > int r; > > down_read(&rdev->exclusive_lock); > + > + if (!rdev->accel_working && > + args->initial_domain != RADEON_GEM_DOMAIN_CPU) { > + up_read(&rdev->exclusive_lock); > + return -EBUSY; > + } > + > /* create a gem object to contain this object in */ > args->size = roundup(args->size, PAGE_SIZE); > r = radeon_gem_object_create(rdev, args->size, args->alignment,