On Thu, Feb 19, 2015 at 11:20 AM, Ben Skeggs <skeggsb@xxxxxxxxx> wrote: > On 18 Feb 2015 17:08, "Alexandre Courbot" <gnurou@xxxxxxxxx> wrote: >> >> On Wed, Feb 18, 2015 at 8:01 AM, Ben Skeggs <skeggsb@xxxxxxxxx> wrote: >> > On Tue, Feb 17, 2015 at 5:47 PM, Alexandre Courbot <acourbot@xxxxxxxxxx> >> > wrote: >> >> Having a RAM device does not make sense for chips like GK20A which have >> >> no dedicated video memory. The dummy RAM device that we used so far >> >> works as a temporary band-aid, but in the long-term it is desirable for >> >> the driver to be able to work without any kind of VRAM. >> >> >> >> This patch adds a few conditionals in places where a RAM device was >> >> assumed to be present and allows some more objects to be allocated from >> >> the TT domain, allowing Nouveau to handle GPUs for which >> >> pfb->ram == NULL. >> >> >> >> Signed-off-by: Alexandre Courbot <acourbot@xxxxxxxxxx> >> >> --- >> >> drm/nouveau/nouveau_display.c | 8 +++++++- >> >> drm/nouveau/nouveau_ttm.c | 3 +++ >> >> drm/nouveau/nv84_fence.c | 14 +++++++++++--- >> >> drm/nouveau/nvkm/engine/device/base.c | 9 ++++++--- >> >> drm/nouveau/nvkm/subdev/clk/base.c | 2 +- >> >> drm/nouveau/nvkm/subdev/fb/base.c | 26 ++++++++++++++++++-------- >> >> drm/nouveau/nvkm/subdev/ltc/gf100.c | 10 +++++++++- >> >> 7 files changed, 55 insertions(+), 17 deletions(-) >> >> >> >> diff --git a/drm/nouveau/nouveau_display.c >> >> b/drm/nouveau/nouveau_display.c >> >> index 860b0e2d4181..68ee0af22eea 100644 >> >> --- a/drm/nouveau/nouveau_display.c >> >> +++ b/drm/nouveau/nouveau_display.c >> >> @@ -869,13 +869,19 @@ nouveau_display_dumb_create(struct drm_file >> >> *file_priv, struct drm_device *dev, >> >> struct drm_mode_create_dumb *args) >> >> { >> >> struct nouveau_bo *bo; >> >> + uint32_t domain; >> >> int ret; >> >> >> >> args->pitch = roundup(args->width * (args->bpp / 8), 256); >> >> args->size = args->pitch * args->height; >> >> args->size = roundup(args->size, PAGE_SIZE); >> >> >> >> - ret = nouveau_gem_new(dev, args->size, 0, >> >> NOUVEAU_GEM_DOMAIN_VRAM, 0, 0, &bo); >> >> + if (nvxx_fb(&nouveau_drm(dev)->device)->ram) >> > For these checks in the drm, it's probably better to use >> > nouveau_drm(dev)->device.info.ram_size. >> >> I wonder - in other places (e.g. clock, ltc) we don't have access to >> nouveau_drm, so IIUC we need to rely on pfb->ram there. > Correct. > >>Wouldn't it be >> more confusing to use two different ways to check the presence of VRAM >> when we could stick to a single one? > It's best to think of nvkm/ as a separate entity, and it will be at some > point (drm load on its own, inside a vm), and drm might not be able to > access it's internal structures. > > That's not the case now, so the code is fine as-is for the moment. But it's > worth keeping in mind. Thanks for clarifying! I will update according to your suggestion. -- To unsubscribe from this list: send the line "unsubscribe linux-tegra" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html