|
@@ -183,9 +183,11 @@ none:
|
|
if (pass++ == 0) {
|
|
if (pass++ == 0) {
|
|
struct drm_i915_private *dev_priv = to_i915(dev);
|
|
struct drm_i915_private *dev_priv = to_i915(dev);
|
|
|
|
|
|
- ret = switch_to_pinned_context(dev_priv);
|
|
|
|
- if (ret)
|
|
|
|
- return ret;
|
|
|
|
|
|
+ if (i915_is_ggtt(vm)) {
|
|
|
|
+ ret = switch_to_pinned_context(dev_priv);
|
|
|
|
+ if (ret)
|
|
|
|
+ return ret;
|
|
|
|
+ }
|
|
|
|
|
|
ret = i915_gem_wait_for_idle(dev_priv);
|
|
ret = i915_gem_wait_for_idle(dev_priv);
|
|
if (ret)
|
|
if (ret)
|
|
@@ -300,9 +302,11 @@ int i915_gem_evict_vm(struct i915_address_space *vm, bool do_idle)
|
|
if (do_idle) {
|
|
if (do_idle) {
|
|
struct drm_i915_private *dev_priv = to_i915(vm->dev);
|
|
struct drm_i915_private *dev_priv = to_i915(vm->dev);
|
|
|
|
|
|
- ret = switch_to_pinned_context(dev_priv);
|
|
|
|
- if (ret)
|
|
|
|
- return ret;
|
|
|
|
|
|
+ if (i915_is_ggtt(vm)) {
|
|
|
|
+ ret = switch_to_pinned_context(dev_priv);
|
|
|
|
+ if (ret)
|
|
|
|
+ return ret;
|
|
|
|
+ }
|
|
|
|
|
|
ret = i915_gem_wait_for_idle(dev_priv);
|
|
ret = i915_gem_wait_for_idle(dev_priv);
|
|
if (ret)
|
|
if (ret)
|