OpenCloudOS-Kernel/drivers/gpu/drm/i915
Keith Packard 8497825753 drm/i915: cleanup_plane_fb: also drop reference to current state wait_req
There are two paths into intel_cleanup_plane_fb, the normal completion
path and the failure path.

In the failure case, intel_cleanup_plane_fb is called before
drm_atomic_helper_swap_state, so any wait_req reference made in
intel_prepare_plane_fb will be in old_intel_state->wait_req.

In the normal completion path, drm_atomic_helper_swap_state has
already been called, so the plane state holding the just-used wait_req
will not be in old_intel_state->wait_req, rather it will be in the
state associated with the plane itself.

Clearing this reference ensures that the wait_req will be freed as
soon as it the related mode setting operation is complete, rather than
waiting for some future mode setting operation to eventually
dereference it.

The existing dereference of old_intel_state->wait_req is still
required as that will hold the wait_req when the mode setting
operation fails.

cc: Daniel Vetter <daniel.vetter@intel.com>
cc: David Airlie <airlied@linux.ie>
cc: intel-gfx@lists.freedesktop.org
cc: dri-devel@lists.freedesktop.org
Signed-off-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2016-08-02 15:44:32 +02:00
..
gvt drm/i915: gvt: Introduce the basic architecture of GVT-g 2016-06-17 20:35:06 +01:00
Kconfig drm/i915: gvt: Introduce the basic architecture of GVT-g 2016-06-17 20:35:06 +01:00
Kconfig.debug drm/i915: Select DRM_VGEM for igt 2016-07-10 13:22:39 +01:00
Makefile drm/i915: Move GEM request routines to i915_gem_request.c 2016-07-20 09:29:53 +01:00
dvo.h drm/i915: constify intel_dvo_dev_ops structures 2015-12-09 08:21:10 +01:00
dvo_ch7xxx.c drm/i915: constify intel_dvo_dev_ops structures 2015-12-09 08:21:10 +01:00
dvo_ch7017.c drm/i915: constify intel_dvo_dev_ops structures 2015-12-09 08:21:10 +01:00
dvo_ivch.c drm/i915: constify intel_dvo_dev_ops structures 2015-12-09 08:21:10 +01:00
dvo_ns2501.c drm/i915: constify intel_dvo_dev_ops structures 2015-12-09 08:21:10 +01:00
dvo_sil164.c drm/i915: constify intel_dvo_dev_ops structures 2015-12-09 08:21:10 +01:00
dvo_tfp410.c drm/i915: constify intel_dvo_dev_ops structures 2015-12-09 08:21:10 +01:00
i915_cmd_parser.c drm/i915/cmdparser: Remove stray intel_engine_cs *ring 2016-07-27 16:23:05 +01:00
i915_debugfs.c drm/i915/debugfs: Take runtime_pm ref for sseu 2016-08-01 15:52:54 +01:00
i915_drv.c Revert "drm/i915: Enable RC6 immediately" 2016-07-21 21:43:19 +01:00
i915_drv.h drm/i915: Avoid using intel_engine_cs *ring for GPU error capture 2016-07-27 16:23:05 +01:00
i915_gem.c drm/i915: Remove stray intel_engine_cs ring identifiers from i915_gem.c 2016-07-27 16:23:05 +01:00
i915_gem.h drm/i915: Add GEM debugging Kconfig option 2016-04-14 10:45:40 +01:00
i915_gem_batch_pool.c drm/i915: Only drop the batch-pool's object reference 2016-07-26 13:01:00 +01:00
i915_gem_batch_pool.h
i915_gem_context.c drm/i915: Convert i915_semaphores_is_enabled over to early sanitize 2016-07-20 13:40:43 +01:00
i915_gem_debug.c drm/i915: replace for_each_engine() 2016-03-24 14:34:11 +00:00
i915_gem_dmabuf.c drm/i915: Wrap drm_gem_object_reference in i915_gem_object_get 2016-07-20 13:40:11 +01:00
i915_gem_dmabuf.h drm/i915: Serialise presentation with imported dmabufs 2016-06-17 10:32:26 +01:00
i915_gem_evict.c drm/i915: Rename drm_gem_object_unreference in preparation for lockless free 2016-07-20 13:40:12 +01:00
i915_gem_execbuffer.c drm/i915: Use engine to refer to the user's BSD intel_engine_cs 2016-07-27 16:23:05 +01:00
i915_gem_fence.c drm/i915: Mass convert dev->dev_private to to_i915(dev) 2016-07-04 12:54:07 +01:00
i915_gem_gtt.c drm/i915: Prefer list_first_entry_or_null 2016-07-26 13:00:58 +01:00
i915_gem_gtt.h drm/i915: Treat ringbuffer writes as write to normal memory 2016-07-20 13:40:14 +01:00
i915_gem_render_state.c drm/i915: Rename drm_gem_object_unreference in preparation for lockless free 2016-07-20 13:40:12 +01:00
i915_gem_render_state.h drm/i915: Rename intel_engine_cs function parameters 2016-03-16 15:33:10 +00:00
i915_gem_request.c drm/i915: Prefer list_first_entry_or_null 2016-07-26 13:00:58 +01:00
i915_gem_request.h drm/i915: Rename request reference/unreference to get/put 2016-07-20 13:40:09 +01:00
i915_gem_shrinker.c drm/i915: Prefer list_first_entry_or_null 2016-07-26 13:00:58 +01:00
i915_gem_stolen.c drm/i915: Rename drm_gem_object_unreference in preparation for lockless free 2016-07-20 13:40:12 +01:00
i915_gem_tiling.c drm/i915: Rename drm_gem_object_unreference_unlocked in preparation for lockless free 2016-07-20 13:40:13 +01:00
i915_gem_userptr.c drm/i915: Rename drm_gem_object_unreference_unlocked in preparation for lockless free 2016-07-20 13:40:13 +01:00
i915_gpu_error.c drm/i915: Avoid using intel_engine_cs *ring for GPU error capture 2016-07-27 16:23:05 +01:00
i915_guc_reg.h drm/i915/bxt: reserve space for RC6 in the the GuC WOPCM 2016-05-18 12:49:19 +01:00
i915_guc_submission.c drm/i915: Rename drm_gem_object_unreference in preparation for lockless free 2016-07-20 13:40:12 +01:00
i915_ioc32.c
i915_irq.c drm/i915: Update a couple of hangcheck comments to talk about engines 2016-07-27 16:23:05 +01:00
i915_params.c drm/i915/guc: Revert "drm/i915/guc: enable GuC loading & submission by default" 2016-07-19 15:45:21 -07:00
i915_params.h drm/i915: gvt: Introduce the basic architecture of GVT-g 2016-06-17 20:35:06 +01:00
i915_pci.c drm/i915: Add missing ring_mask to Pineview 2016-07-29 16:22:42 +01:00
i915_pvinfo.h drm/i915: Use offsetof() to calculate the offset of members in PVINFO page 2016-06-17 19:44:25 +01:00
i915_reg.h drm/i915: Name the "iboost bit" 2016-08-02 15:09:20 +03:00
i915_suspend.c drm/i915: Mass convert dev->dev_private to to_i915(dev) 2016-07-04 12:54:07 +01:00
i915_sysfs.c drm/i915: Fix up some stray to_i915(dev) after a recent merge 2016-07-28 07:28:17 +01:00
i915_trace.h drm/i915: Derive GEM requests from dma-fence 2016-07-20 09:29:53 +01:00
i915_trace_points.c
i915_vgpu.c drm/i915: Update missing kerneldoc 2016-07-19 10:34:24 +02:00
i915_vgpu.h drm/i915: Fold vGPU active check into inner functions 2016-06-17 19:44:29 +01:00
intel_acpi.c
intel_atomic.c drm: Consolidate plane arrays in drm_atomic_state 2016-06-02 17:20:25 +02:00
intel_atomic_plane.c drm/i915: Revert async unpin and nonblocking atomic commit 2016-06-01 09:46:46 +02:00
intel_audio.c drm/i915: Replace some open coded intel_crtc_has_dp_encoder()s 2016-07-07 13:10:12 +03:00
intel_bios.c drm/i915: Convert dev_priv->dev backpointers to dev_priv->drm 2016-07-05 11:58:45 +01:00
intel_bios.h drm/i915: Parse LFP brightness control field in VBT 2016-05-02 16:17:38 +03:00
intel_breadcrumbs.c drm/i915: Reduce breadcrumb lock coverage for intel_engine_enable_signaling() 2016-07-26 13:00:58 +01:00
intel_color.c drm/i915: Kill has_dsi_encoder 2016-07-07 13:10:20 +03:00
intel_crt.c drm/i915/vlv: Disable HPD in valleyview_crt_detect_hotplug() 2016-07-14 22:06:11 +02:00
intel_csr.c drm/i915: Remove misleading CSR firmware loading docs 2016-07-21 22:23:04 +02:00
intel_ddi.c drm/i915: Extract bdw_get_buf_trans_edp() 2016-08-02 15:09:20 +03:00
intel_device_info.c drm/i915: Split out runtime configuration of device info to its own file 2016-07-05 11:53:27 +01:00
intel_display.c drm/i915: cleanup_plane_fb: also drop reference to current state wait_req 2016-08-02 15:44:32 +02:00
intel_dp.c drm/i915: Warn about aux msg buffer vs. size mismatch 2016-08-02 16:25:10 +03:00
intel_dp_aux_backlight.c drm/i915: Add Backlight Control using DPCD for eDP connectors (v9) 2016-04-26 15:17:54 +03:00
intel_dp_link_training.c drm/i915: Revert DisplayPort fast link training feature 2016-06-20 12:37:07 +03:00
intel_dp_mst.c drm/i915: Split DP/eDP/FDI and HDMI/DVI DDI buffer programming apart 2016-08-02 15:09:20 +03:00
intel_dpio_phy.c drm/i915: Mass convert dev->dev_private to to_i915(dev) 2016-07-04 12:54:07 +01:00
intel_dpll_mgr.c drm/i915: s/INTEL_OUTPUT_DISPLAYPORT/INTEL_OUTPUT_DP/ 2016-07-07 13:10:16 +03:00
intel_dpll_mgr.h drm/i915: Use a crtc mask instead of a refcount for dpll functions, v2. 2016-03-17 09:27:28 +01:00
intel_drv.h drm/i915: Split DP/eDP/FDI and HDMI/DVI DDI buffer programming apart 2016-08-02 15:09:20 +03:00
intel_dsi.c drm/i915: Kill has_dsi_encoder 2016-07-07 13:10:20 +03:00
intel_dsi.h drm/i915/dsi: CABC support for Panel PWM backlight control 2016-05-17 16:12:39 +03:00
intel_dsi_dcs_backlight.c drm/i915: Mass convert dev->dev_private to to_i915(dev) 2016-07-04 12:54:07 +01:00
intel_dsi_panel_vbt.c drm/i915: Mass convert dev->dev_private to to_i915(dev) 2016-07-04 12:54:07 +01:00
intel_dsi_pll.c drm/i915: Mass convert dev->dev_private to to_i915(dev) 2016-07-04 12:54:07 +01:00
intel_dvo.c drm/i915: Mass convert dev->dev_private to to_i915(dev) 2016-07-04 12:54:07 +01:00
intel_engine_cs.c drm/i915: Add missing ring_mask to Pineview 2016-07-29 16:22:42 +01:00
intel_fbc.c drm/i915: remove redundant fbc warnings 2016-08-02 14:25:46 +03:00
intel_fbdev.c drm/i915: Treat ringbuffer writes as write to normal memory 2016-07-20 13:40:14 +01:00
intel_fifo_underrun.c drm/i915: Convert dev_priv->dev backpointers to dev_priv->drm 2016-07-05 11:58:45 +01:00
intel_frontbuffer.c
intel_guc.h drm/i915/guc: index host arrays by i915 engine ID, not guc_id 2016-06-21 11:24:25 +01:00
intel_guc_fwif.h drm/i915/guc: rework guc_add_workqueue_item() 2016-05-23 14:21:53 +01:00
intel_guc_loader.c drm/i915:gen9: restrict WaC6DisallowByGfxPause 2016-07-21 14:48:00 +01:00
intel_gvt.c drm/i915/gvt: Mark i915.enable_gvt as false if loading fails 2016-06-21 12:40:13 +01:00
intel_gvt.h drm/i915: gvt: Introduce the basic architecture of GVT-g 2016-06-17 20:35:06 +01:00
intel_hdmi.c drm/i915: Simplify hdmi_12bpc_possible() 2016-07-07 13:10:24 +03:00
intel_hotplug.c drm/i915: Update missing kerneldoc 2016-07-19 10:34:24 +02:00
intel_i2c.c drm/i915: Convert dev_priv->dev backpointers to dev_priv->drm 2016-07-05 11:58:45 +01:00
intel_lrc.c drm/i915/cmdparser: Remove stray intel_engine_cs *ring 2016-07-27 16:23:05 +01:00
intel_lrc.h drm/i915: rename macro parameter(ring) to (engine) 2016-07-21 09:59:25 +01:00
intel_lvds.c drm/i915: Mass convert dev->dev_private to to_i915(dev) 2016-07-04 12:54:07 +01:00
intel_mocs.c drm/i915: rename 'ring' where it refers to an engine or engine_id 2016-07-21 09:59:41 +01:00
intel_mocs.h drm/i915: rename 'ring' where it refers to an engine or engine_id 2016-07-21 09:59:41 +01:00
intel_modes.c drm/i915: Mass convert dev->dev_private to to_i915(dev) 2016-07-04 12:54:07 +01:00
intel_opregion.c drm/i915: Ignore panel type from OpRegion on SKL 2016-07-14 16:05:40 +03:00
intel_overlay.c drm/i915: use i915_gem_object_put_unlocked() after releasing mutex 2016-07-21 19:08:59 +01:00
intel_panel.c drm/i915: Introduce Kabypoint PCH for Kabylake H/DT. 2016-07-07 10:01:37 -07:00
intel_pm.c drm/i915: Program FW_BLC_SELF on 915G as well 2016-08-02 16:22:05 +03:00
intel_psr.c drm/i915: Mass convert dev->dev_private to to_i915(dev) 2016-07-04 12:54:07 +01:00
intel_renderstate.h
intel_renderstate_gen6.c
intel_renderstate_gen7.c
intel_renderstate_gen8.c
intel_renderstate_gen9.c
intel_ringbuffer.c drm/i915/cmdparser: Remove stray intel_engine_cs *ring 2016-07-27 16:23:05 +01:00
intel_ringbuffer.h drm/i915/cmdparser: Remove stray intel_engine_cs *ring 2016-07-27 16:23:05 +01:00
intel_runtime_pm.c drm/i915: Enable polling when we don't have hpd 2016-07-14 22:06:11 +02:00
intel_sdvo.c drm/i915: Convert dev_priv->dev backpointers to dev_priv->drm 2016-07-05 11:58:45 +01:00
intel_sdvo_regs.h drm/i915/sdvo: revert bogus kernel-doc comments to normal comments 2016-01-20 10:21:34 +02:00
intel_sideband.c drm/i915: Convert wait_for(I915_READ(reg)) to intel_wait_for_register() 2016-06-30 15:42:33 +01:00
intel_sprite.c drm/i915: Mass convert dev->dev_private to to_i915(dev) 2016-07-04 12:54:07 +01:00
intel_tv.c drm/i915: Mass convert dev->dev_private to to_i915(dev) 2016-07-04 12:54:07 +01:00
intel_uncore.c Revert "drm/i915: Enable RC6 immediately" 2016-07-21 21:43:19 +01:00
intel_vbt_defs.h drm/i915: Extract physical display dimensions from VBT 2016-06-02 14:33:09 +03:00