drm/bochs: use drm_gem_vram_offset to get bo offset v2
authorNirmoy Das <nirmoy.aiemd@gmail.com>
Wed, 24 Jun 2020 18:26:47 +0000 (20:26 +0200)
committerChristian König <christian.koenig@amd.com>
Thu, 25 Jun 2020 09:59:43 +0000 (11:59 +0200)
Switch over to GEM VRAM's implementation to retrieve bo->offset.

Signed-off-by: Nirmoy Das <nirmoy.das@amd.com>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Christian König <christian.koenig@amd.com>
Link: https://patchwork.freedesktop.org/patch/372931/
drivers/gpu/drm/bochs/bochs_kms.c

index 05d8373..853081d 100644 (file)
@@ -29,16 +29,21 @@ static void bochs_plane_update(struct bochs_device *bochs,
                               struct drm_plane_state *state)
 {
        struct drm_gem_vram_object *gbo;
+       s64 gpu_addr;
 
        if (!state->fb || !bochs->stride)
                return;
 
        gbo = drm_gem_vram_of_gem(state->fb->obj[0]);
+       gpu_addr = drm_gem_vram_offset(gbo);
+       if (WARN_ON_ONCE(gpu_addr < 0))
+               return; /* Bug: we didn't pin the BO to VRAM in prepare_fb. */
+
        bochs_hw_setbase(bochs,
                         state->crtc_x,
                         state->crtc_y,
                         state->fb->pitches[0],
-                        state->fb->offsets[0] + gbo->bo.offset);
+                        state->fb->offsets[0] + gpu_addr);
        bochs_hw_setformat(bochs, state->fb->format);
 }