Am 27.02.2014 22:38, schrieb Lauri Kasanen: > Without this, a bo may get created in the cpu-inaccessible vram. > Before the CP engines get setup, all copies are done via cpu memcpy. > > This means that the cpu tries to read from inaccessible memory, fails, > and the radeon module proceeds to disable acceleration. > > Doing this has no downsides, as the real VRAM size gets set as soon as the > CP engines get init. > > This is a candidate for 3.14 fixes.
This should be unnecessary, since TTM gets initialized only seeing the visible VRAM and later on radeon_ttm_set_active_vram_size gets called to increase the limit. If this isn't the case any more we should figure out why instead of working around it like this. Christian. > > Signed-off-by: Lauri Kasanen <cand at gmx.com> > --- > drivers/gpu/drm/radeon/radeon_ttm.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/gpu/drm/radeon/radeon_ttm.c > b/drivers/gpu/drm/radeon/radeon_ttm.c > index 3aa853c..35eae91 100644 > --- a/drivers/gpu/drm/radeon/radeon_ttm.c > +++ b/drivers/gpu/drm/radeon/radeon_ttm.c > @@ -715,6 +715,8 @@ int radeon_ttm_init(struct radeon_device *rdev) > DRM_ERROR("Failed initializing VRAM heap.\n"); > return r; > } > + radeon_ttm_set_active_vram_size(rdev, rdev->mc.visible_vram_size); > + > r = radeon_bo_create(rdev, 256 * 1024, PAGE_SIZE, true, > RADEON_GEM_DOMAIN_VRAM, > NULL, &rdev->stollen_vga_memory);