diff options
| author | Thomas Gleixner <tglx@linutronix.de> | 2016-09-26 15:47:03 -0400 |
|---|---|---|
| committer | Thomas Gleixner <tglx@linutronix.de> | 2016-09-26 15:47:03 -0400 |
| commit | 1e1b37273cf719545da50b76f214f983a710aaf4 (patch) | |
| tree | 033f6062325ef7aaeefe8559bb409ab7d2be3c76 /drivers/gpu/drm/i915/i915_gem.c | |
| parent | c183a603e8d8a5a189729b77d0c623a3d5950e5f (diff) | |
| parent | c291b015158577be533dd5a959dfc09bab119eed (diff) | |
Merge branch 'x86/urgent' into x86/apic
Bring in the upstream modifications so we can fixup the silent merge
conflict which is introduced by this merge.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'drivers/gpu/drm/i915/i915_gem.c')
| -rw-r--r-- | drivers/gpu/drm/i915/i915_gem.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c index 11681501d7b1..a77ce9983f69 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c | |||
| @@ -879,9 +879,12 @@ i915_gem_pread_ioctl(struct drm_device *dev, void *data, | |||
| 879 | ret = i915_gem_shmem_pread(dev, obj, args, file); | 879 | ret = i915_gem_shmem_pread(dev, obj, args, file); |
| 880 | 880 | ||
| 881 | /* pread for non shmem backed objects */ | 881 | /* pread for non shmem backed objects */ |
| 882 | if (ret == -EFAULT || ret == -ENODEV) | 882 | if (ret == -EFAULT || ret == -ENODEV) { |
| 883 | intel_runtime_pm_get(to_i915(dev)); | ||
| 883 | ret = i915_gem_gtt_pread(dev, obj, args->size, | 884 | ret = i915_gem_gtt_pread(dev, obj, args->size, |
| 884 | args->offset, args->data_ptr); | 885 | args->offset, args->data_ptr); |
| 886 | intel_runtime_pm_put(to_i915(dev)); | ||
| 887 | } | ||
| 885 | 888 | ||
| 886 | out: | 889 | out: |
| 887 | drm_gem_object_unreference(&obj->base); | 890 | drm_gem_object_unreference(&obj->base); |
| @@ -1306,7 +1309,7 @@ i915_gem_pwrite_ioctl(struct drm_device *dev, void *data, | |||
| 1306 | * textures). Fallback to the shmem path in that case. */ | 1309 | * textures). Fallback to the shmem path in that case. */ |
| 1307 | } | 1310 | } |
| 1308 | 1311 | ||
| 1309 | if (ret == -EFAULT) { | 1312 | if (ret == -EFAULT || ret == -ENOSPC) { |
| 1310 | if (obj->phys_handle) | 1313 | if (obj->phys_handle) |
| 1311 | ret = i915_gem_phys_pwrite(obj, args, file); | 1314 | ret = i915_gem_phys_pwrite(obj, args, file); |
| 1312 | else if (i915_gem_object_has_struct_page(obj)) | 1315 | else if (i915_gem_object_has_struct_page(obj)) |
| @@ -3169,6 +3172,8 @@ static void i915_gem_reset_engine_cleanup(struct intel_engine_cs *engine) | |||
| 3169 | } | 3172 | } |
| 3170 | 3173 | ||
| 3171 | intel_ring_init_seqno(engine, engine->last_submitted_seqno); | 3174 | intel_ring_init_seqno(engine, engine->last_submitted_seqno); |
| 3175 | |||
| 3176 | engine->i915->gt.active_engines &= ~intel_engine_flag(engine); | ||
| 3172 | } | 3177 | } |
| 3173 | 3178 | ||
| 3174 | void i915_gem_reset(struct drm_device *dev) | 3179 | void i915_gem_reset(struct drm_device *dev) |
| @@ -3186,6 +3191,7 @@ void i915_gem_reset(struct drm_device *dev) | |||
| 3186 | 3191 | ||
| 3187 | for_each_engine(engine, dev_priv) | 3192 | for_each_engine(engine, dev_priv) |
| 3188 | i915_gem_reset_engine_cleanup(engine); | 3193 | i915_gem_reset_engine_cleanup(engine); |
| 3194 | mod_delayed_work(dev_priv->wq, &dev_priv->gt.idle_work, 0); | ||
| 3189 | 3195 | ||
| 3190 | i915_gem_context_reset(dev); | 3196 | i915_gem_context_reset(dev); |
| 3191 | 3197 | ||
