drm/msm: setup vram after component_bind_all()
authorRob Clark <robdclark@gmail.com>
Thu, 7 May 2015 19:20:13 +0000 (15:20 -0400)
committerRob Clark <robdclark@gmail.com>
Thu, 14 May 2015 15:50:39 +0000 (11:50 -0400)
First of all, we don't want -EPROBE_DEFER when trying to bind children
to cause us to forget to free our vram.  And second we don't want vram
allocation fail to trigger _unbind_all() before _bind_all().

Signed-off-by: Rob Clark <robdclark@gmail.com>
drivers/gpu/drm/msm/msm_drv.c

index 72f2b962efd46178e2409abb7049884bca38ca51..cc6485ef29498a6106c0688f2c407bac3b63065a 100644 (file)
@@ -285,10 +285,6 @@ static int msm_load(struct drm_device *dev, unsigned long flags)
 
        drm_mode_config_init(dev);
 
-       ret = msm_init_vram(dev);
-       if (ret)
-               goto fail;
-
        platform_set_drvdata(pdev, dev);
 
        /* Bind all our sub-components: */
@@ -296,6 +292,10 @@ static int msm_load(struct drm_device *dev, unsigned long flags)
        if (ret)
                return ret;
 
+       ret = msm_init_vram(dev);
+       if (ret)
+               goto fail;
+
        switch (get_mdp_ver(pdev)) {
        case 4:
                kms = mdp4_kms_init(dev);