struct intel_digital_port *dig_port = dp_to_dig_port(intel_dp);
        struct drm_device *dev = dig_port->base.base.dev;
        struct drm_i915_private *dev_priv = dev->dev_private;
-       struct drm_crtc *crtc = dig_port->base.base.crtc;
-       struct intel_crtc *intel_crtc = to_intel_crtc(crtc);
-       struct drm_i915_gem_object *obj = intel_fb_obj(crtc->primary->fb);
+       struct drm_crtc *crtc;
+       struct intel_crtc *intel_crtc;
+       struct drm_i915_gem_object *obj;
        struct intel_encoder *intel_encoder = &dp_to_dig_port(intel_dp)->base;
 
        dev_priv->psr.source_ok = false;
                return false;
        }
 
+       obj = intel_fb_obj(crtc->primary->fb);
        if (obj->tiling_mode != I915_TILING_X ||
            obj->fence_reg == I915_FENCE_REG_NONE) {
                DRM_DEBUG_KMS("PSR condition failed: fb not tiled or fenced\n");