linux_dsm_epyc7002/drivers/gpu/drm/i915
Chris Wilson 16e4dd0342 drm/i915: Markup paired operations on wakerefs
The majority of runtime-pm operations are bounded and scoped within a
function; these are easy to verify that the wakeref are handled
correctly. We can employ the compiler to help us, and reduce the number
of wakerefs tracked when debugging, by passing around cookies provided
by the various rpm_get functions to their rpm_put counterpart. This
makes the pairing explicit, and given the required wakeref cookie the
compiler can verify that we pass an initialised value to the rpm_put
(quite handy for double checking error paths).

For regular builds, the compiler should be able to eliminate the unused
local variables and the program growth should be minimal. Fwiw, it came
out as a net improvement as gcc was able to refactor rpm_get and
rpm_get_if_in_use together,

v2: Just s/rpm_put/rpm_put_unchecked/ everywhere, leaving the manual
mark up for smaller more targeted patches.
v3: Mention the cookie in Returns

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Jani Nikula <jani.nikula@intel.com>
Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190114142129.24398-2-chris@chris-wilson.co.uk
2019-01-14 16:17:53 +00:00
..
gvt drm/i915: Markup paired operations on wakerefs 2019-01-14 16:17:53 +00:00
selftests drm/i915: Markup paired operations on wakerefs 2019-01-14 16:17:53 +00:00
dvo_ch7xxx.c drm/i915/dvo: switch to kernel unsigned int types 2018-06-18 14:45:58 +03:00
dvo_ch7017.c drm/i915/dvo: switch to kernel unsigned int types 2018-06-18 14:45:58 +03:00
dvo_ivch.c drm/i915/dvo: switch to kernel unsigned int types 2018-06-18 14:45:58 +03:00
dvo_ns2501.c drm/i915/dvo: switch to kernel unsigned int types 2018-06-18 14:45:58 +03:00
dvo_sil164.c drm/i915/dvo: switch to kernel unsigned int types 2018-06-18 14:45:58 +03:00
dvo_tfp410.c drm/i915/dvo: switch to kernel unsigned int types 2018-06-18 14:45:58 +03:00
dvo.h drm/i915: drop all drmP.h includes 2019-01-09 10:26:36 +02:00
i915_cmd_parser.c drm/i915: replace IS_GEN<N> with IS_GEN(..., N) 2018-12-12 16:52:10 -08:00
i915_debugfs.c drm/i915: Markup paired operations on wakerefs 2019-01-14 16:17:53 +00:00
i915_drv.c drm/i915: Track all held rpm wakerefs 2019-01-14 16:17:50 +00:00
i915_drv.h drm/i915: Markup paired operations on wakerefs 2019-01-14 16:17:53 +00:00
i915_fixed.h drm/i915/fixed: cosmetic cleanup 2018-11-20 12:49:24 +02:00
i915_gem_batch_pool.c drm/i915: Change parameters order in i915_gem_batch_pool_init 2018-03-09 22:21:41 +00:00
i915_gem_batch_pool.h drm/i915: Change parameters order in i915_gem_batch_pool_init 2018-03-09 22:21:41 +00:00
i915_gem_clflush.c drm/i915: Remove unecessary dma_fence_ops 2018-08-17 11:22:15 +02:00
i915_gem_clflush.h
i915_gem_context.c drm/i915: drop all drmP.h includes 2019-01-09 10:26:36 +02:00
i915_gem_context.h drm/i915/execlists: Flush the CS events before unpinning 2018-10-03 14:27:16 +01:00
i915_gem_dmabuf.c drm/i915: drop all drmP.h includes 2019-01-09 10:26:36 +02:00
i915_gem_evict.c drm/i915: drop all drmP.h includes 2019-01-09 10:26:36 +02:00
i915_gem_execbuffer.c drm/i915: Markup paired operations on wakerefs 2019-01-14 16:17:53 +00:00
i915_gem_fence_reg.c drm/i915: Markup paired operations on wakerefs 2019-01-14 16:17:53 +00:00
i915_gem_fence_reg.h
i915_gem_gtt.c drm/i915: Markup paired operations on wakerefs 2019-01-14 16:17:53 +00:00
i915_gem_gtt.h drm/i915: Remove debugfs/i915_ppgtt_info 2018-12-27 12:54:31 +00:00
i915_gem_internal.c drm/i915: drop all drmP.h includes 2019-01-09 10:26:36 +02:00
i915_gem_object.c
i915_gem_object.h drm/i915: drop all drmP.h includes 2019-01-09 10:26:36 +02:00
i915_gem_render_state.c drm/i915: Start returning an error from i915_vma_move_to_active() 2018-07-06 18:22:37 +01:00
i915_gem_render_state.h
i915_gem_shrinker.c drm/i915: Markup paired operations on wakerefs 2019-01-14 16:17:53 +00:00
i915_gem_stolen.c drm/i915: drop all drmP.h includes 2019-01-09 10:26:36 +02:00
i915_gem_tiling.c drm/i915: drop all drmP.h includes 2019-01-09 10:26:36 +02:00
i915_gem_userptr.c drm/i915: drop all drmP.h includes 2019-01-09 10:26:36 +02:00
i915_gem.c drm/i915: Markup paired operations on wakerefs 2019-01-14 16:17:53 +00:00
i915_gem.h drm/i915: GEM_WARN_ON considered harmful 2018-10-18 10:10:12 +01:00
i915_gemfs.c
i915_gemfs.h
i915_gpu_error.c drm/i915: Guard error capture against unpinned vma 2019-01-10 13:28:45 +00:00
i915_gpu_error.h drm/i915: start moving runtime device info to a separate struct 2019-01-02 12:46:29 +02:00
i915_ioc32.c drm/i915: drop all drmP.h includes 2019-01-09 10:26:36 +02:00
i915_irq.c drm/i915: Markup paired operations on wakerefs 2019-01-14 16:17:53 +00:00
i915_memcpy.c
i915_mm.c
i915_oa_bdw.c drm/i915/perf: update generated files headers 2018-10-23 15:09:16 +01:00
i915_oa_bdw.h drm/i915/perf: update generated files headers 2018-10-23 15:09:16 +01:00
i915_oa_bxt.c drm/i915/perf: update generated files headers 2018-10-23 15:09:16 +01:00
i915_oa_bxt.h drm/i915/perf: update generated files headers 2018-10-23 15:09:16 +01:00
i915_oa_cflgt2.c drm/i915/perf: update generated files headers 2018-10-23 15:09:16 +01:00
i915_oa_cflgt2.h drm/i915/perf: update generated files headers 2018-10-23 15:09:16 +01:00
i915_oa_cflgt3.c drm/i915/perf: update generated files headers 2018-10-23 15:09:16 +01:00
i915_oa_cflgt3.h drm/i915/perf: update generated files headers 2018-10-23 15:09:16 +01:00
i915_oa_chv.c drm/i915/perf: update generated files headers 2018-10-23 15:09:16 +01:00
i915_oa_chv.h drm/i915/perf: update generated files headers 2018-10-23 15:09:16 +01:00
i915_oa_cnl.c drm/i915/perf: update generated files headers 2018-10-23 15:09:16 +01:00
i915_oa_cnl.h drm/i915/perf: update generated files headers 2018-10-23 15:09:16 +01:00
i915_oa_glk.c drm/i915/perf: update generated files headers 2018-10-23 15:09:16 +01:00
i915_oa_glk.h drm/i915/perf: update generated files headers 2018-10-23 15:09:16 +01:00
i915_oa_hsw.c drm/i915/perf: update generated files headers 2018-10-23 15:09:16 +01:00
i915_oa_hsw.h drm/i915/perf: update generated files headers 2018-10-23 15:09:16 +01:00
i915_oa_icl.c drm/i915/perf: update generated files headers 2018-10-23 15:09:16 +01:00
i915_oa_icl.h drm/i915/perf: update generated files headers 2018-10-23 15:09:16 +01:00
i915_oa_kblgt2.c drm/i915/perf: update generated files headers 2018-10-23 15:09:16 +01:00
i915_oa_kblgt2.h drm/i915/perf: update generated files headers 2018-10-23 15:09:16 +01:00
i915_oa_kblgt3.c drm/i915/perf: update generated files headers 2018-10-23 15:09:16 +01:00
i915_oa_kblgt3.h drm/i915/perf: update generated files headers 2018-10-23 15:09:16 +01:00
i915_oa_sklgt2.c drm/i915/perf: update generated files headers 2018-10-23 15:09:16 +01:00
i915_oa_sklgt2.h drm/i915/perf: update generated files headers 2018-10-23 15:09:16 +01:00
i915_oa_sklgt3.c drm/i915/perf: update generated files headers 2018-10-23 15:09:16 +01:00
i915_oa_sklgt3.h drm/i915/perf: update generated files headers 2018-10-23 15:09:16 +01:00
i915_oa_sklgt4.c drm/i915/perf: update generated files headers 2018-10-23 15:09:16 +01:00
i915_oa_sklgt4.h drm/i915/perf: update generated files headers 2018-10-23 15:09:16 +01:00
i915_params.c drm/i915/params: set i915.enable_hangcheck permissions to 0600 2018-12-31 15:27:41 +02:00
i915_params.h drm/i915/params: document I915_PARAMS_FOR_EACH() 2018-12-31 17:13:35 +02:00
i915_pci.c drm/i915: Always try to reset the GPU on takeover 2019-01-03 12:40:42 +00:00
i915_perf.c drm/i915: Markup paired operations on wakerefs 2019-01-14 16:17:53 +00:00
i915_pmu.c drm/i915: Markup paired operations on wakerefs 2019-01-14 16:17:53 +00:00
i915_pmu.h drm/i915/pmu: Do not assume fixed hrtimer period 2018-06-05 16:45:01 +01:00
i915_pvinfo.h - Ice Lake's display enabling patches (Jose, Mahesh, Dhinakaran, Paulo, Manasi, Anusha, Arkadiusz) 2018-06-07 10:24:50 +08:00
i915_query.c Merge drm/drm-next into drm-intel-next-queued 2019-01-08 10:50:22 +02:00
i915_query.h
i915_reg.h drm/i915: always use INTEL_INFO() to access device info 2019-01-02 12:48:16 +02:00
i915_request.c drm/i915: Reduce i915_request_alloc retirement to local context 2019-01-09 22:23:31 +00:00
i915_request.h drm/i915: Remove duplicate header from i915_request.h 2018-12-27 12:54:31 +00:00
i915_scheduler.c drm/i915: Priority boost for waiting clients 2018-10-01 20:34:24 +01:00
i915_scheduler.h drm/i915: Priority boost for waiting clients 2018-10-01 20:34:24 +01:00
i915_selftest.h drm/i915/selftests: Downgrade igt_timeout message 2018-07-16 11:23:45 +01:00
i915_suspend.c drm/i915: drop all drmP.h includes 2019-01-09 10:26:36 +02:00
i915_sw_fence.c drm/i915: change i915_sw_fence license to MIT 2018-12-04 12:13:48 +00:00
i915_sw_fence.h drm/i915: change i915_sw_fence license to MIT 2018-12-04 12:13:48 +00:00
i915_syncmap.c drm/i915: Convert to BITS_PER_TYPE 2018-09-26 13:32:03 +01:00
i915_syncmap.h
i915_sysfs.c drm/i915: Markup paired operations on wakerefs 2019-01-14 16:17:53 +00:00
i915_timeline.c drm/i915: Split i915_gem_timeline into individual timelines 2018-05-02 23:57:18 +01:00
i915_timeline.h drm/i915: Remove HW semaphores for gen7 inter-engine synchronisation 2018-12-28 14:43:27 +00:00
i915_trace_points.c
i915_trace.h drm/i915: drop all drmP.h includes 2019-01-09 10:26:36 +02:00
i915_utils.h drm/i915: Make sure fb gtt offsets stay within 32bits 2018-11-29 22:00:49 +02:00
i915_vgpu.c drm/i915/gtt: Rename i915_hw_ppgtt base member 2018-06-05 21:11:20 +01:00
i915_vgpu.h drm/i915: Add new vGPU cap info bit VGT_CAPS_HUGE_GTT 2018-06-05 16:57:01 +03:00
i915_vma.c Merge drm/drm-next into drm-intel-next-queued 2018-11-20 13:14:08 +02:00
i915_vma.h drm/i915: Fix gtt_view asserts 2018-08-28 18:49:33 +03:00
icl_dsi.c drm/i915/icl: add pll mapping for DSI 2018-12-03 15:55:27 +02:00
intel_acpi.c drm/i915: drop all drmP.h includes 2019-01-09 10:26:36 +02:00
intel_atomic_plane.c drm/i915: drop all drmP.h includes 2019-01-09 10:26:36 +02:00
intel_atomic.c drm/i915: drop all drmP.h includes 2019-01-09 10:26:36 +02:00
intel_audio.c drm/i915: drop all drmP.h includes 2019-01-09 10:26:36 +02:00
intel_bios.c drm/i915: drop all drmP.h includes 2019-01-09 10:26:36 +02:00
intel_bios.h
intel_breadcrumbs.c drm/i915: Drop unused engine->irq_seqno_barrier w/a 2018-12-31 15:35:45 +00:00
intel_cdclk.c drm/i915: replace IS_GEN<N> with IS_GEN(..., N) 2018-12-12 16:52:10 -08:00
intel_color.c drm/i915: Fix Cherryview oops on boot 2018-12-13 08:17:57 -08:00
intel_combo_phy.c drm/i915/icl: reverse uninit order 2018-11-15 16:36:58 -08:00
intel_connector.c drm/i915: drop all drmP.h includes 2019-01-09 10:26:36 +02:00
intel_crt.c drm/i915: drop all drmP.h includes 2019-01-09 10:26:36 +02:00
intel_csr.c drm/i915: Downgrade unknown CSR firmware warnings 2018-11-20 14:14:18 -08:00
intel_ddi.c drm/i915: avoid division by zero on skl_calc_wrpll_link 2018-12-28 11:35:52 +02:00
intel_device_info.c drm/i915: Fixup kerneldoc for intel_device_info_runtime_init 2019-01-07 09:56:17 +00:00
intel_device_info.h drm/i915: Always try to reset the GPU on takeover 2019-01-03 12:40:42 +00:00
intel_display.c drm/i915: Markup paired operations on wakerefs 2019-01-14 16:17:53 +00:00
intel_display.h drm/i915: start moving runtime device info to a separate struct 2019-01-02 12:46:29 +02:00
intel_dp_aux_backlight.c drm/i915/backlight: switch to kernel unsigned int types 2018-06-18 14:46:04 +03:00
intel_dp_link_training.c drm/i915/dp: Link train Fallback on eDP only if fallback link BW can fit panel's native mode 2018-10-17 18:23:59 -07:00
intel_dp_mst.c drm/i915: drop all drmP.h includes 2019-01-09 10:26:36 +02:00
intel_dp.c drm/i915: drop all drmP.h includes 2019-01-09 10:26:36 +02:00
intel_dpio_phy.c drm/i915: Get rid of crtc->config in chv_data_lane_soft_reset 2018-10-05 15:19:08 +02:00
intel_dpll_mgr.c drm/i915/icl: Calculate DPLL params for DSI 2018-12-03 15:53:42 +02:00
intel_dpll_mgr.h drm/i915/icl: Refactor icl pll functions 2018-10-16 09:00:58 -07:00
intel_drv.h drm/i915: Markup paired operations on wakerefs 2019-01-14 16:17:53 +00:00
intel_dsi_dcs_backlight.c
intel_dsi_vbt.c drm/i915/intel_dsi_vbt: Add support for PMIC MIPI sequences 2019-01-09 10:35:05 +01:00
intel_dsi.c drm/i915: Determine DSI panel orientation from VBT 2018-11-13 17:20:32 +02:00
intel_dsi.h drm/i915: drop all drmP.h includes 2019-01-09 10:26:36 +02:00
intel_dvo.c drm/i915: drop all drmP.h includes 2019-01-09 10:26:36 +02:00
intel_engine_cs.c drm/i915: Markup paired operations on wakerefs 2019-01-14 16:17:53 +00:00
intel_fbc.c drm/i915: Disable FBC on fastset if necessary, v2. 2018-12-21 12:51:21 +01:00
intel_fbdev.c drm/i915: Markup paired operations on wakerefs 2019-01-14 16:17:53 +00:00
intel_fifo_underrun.c drm/i915: merge gen checks to use range 2018-12-12 16:54:09 -08:00
intel_frontbuffer.c drm/i915: drop all drmP.h includes 2019-01-09 10:26:36 +02:00
intel_frontbuffer.h
intel_gpu_commands.h drm/i915: Split GPU commands definitions into separate header 2018-03-15 10:00:03 +00:00
intel_guc_ads.c drm/i915: Pull unpin map into vma release 2018-07-24 09:55:12 +01:00
intel_guc_ads.h
intel_guc_ct.c drm/i915: Pull unpin map into vma release 2018-07-24 09:55:12 +01:00
intel_guc_ct.h drm/i915/guc: Prepare to process incoming requests from CT 2018-03-28 20:35:17 +01:00
intel_guc_fw.c drm/i915: Downgrade scare message for unknown HuC firmware 2019-01-08 22:41:09 +00:00
intel_guc_fw.h
intel_guc_fwif.h drm/i915/guc: doorbell checking cleanup 2018-10-23 09:42:25 +01:00
intel_guc_log.c drm/i915: Markup paired operations on wakerefs 2019-01-14 16:17:53 +00:00
intel_guc_log.h drm/i915/guc: Add support for define guc_log_size in megabytes. 2018-06-12 15:44:47 +01:00
intel_guc_reg.h drm/i915/guc: doorbell checking cleanup 2018-10-23 09:42:25 +01:00
intel_guc_submission.c drm/i915/execlists: Pull the render flush into breadcrumb emission 2018-12-28 16:36:55 +00:00
intel_guc_submission.h drm/i915/selftests: ring all doorbells in igt_guc_doorbells 2018-08-28 13:41:27 +01:00
intel_guc.c drm/i915/guc: Limit number of scratch registers used for H2G 2018-10-22 12:36:49 +01:00
intel_guc.h drm/i915/guc: init GuC descriptors after GuC load 2018-10-04 07:29:47 +01:00
intel_gvt.c drm/i915: Unwind HW init after GVT setup failure 2018-07-10 16:46:09 +01:00
intel_gvt.h
intel_hangcheck.c drm/i915: Drop unused engine->irq_seqno_barrier w/a 2018-12-31 15:35:45 +00:00
intel_hdcp.c drm/i915: drop all drmP.h includes 2019-01-09 10:26:36 +02:00
intel_hdmi.c drm/i915: drop all drmP.h includes 2019-01-09 10:26:36 +02:00
intel_hotplug.c drm/i915: Markup paired operations on wakerefs 2019-01-14 16:17:53 +00:00
intel_huc_fw.c drm/i915: Downgrade scare message for unknown HuC firmware 2019-01-08 22:41:09 +00:00
intel_huc_fw.h
intel_huc.c drm/i915: Markup paired operations on wakerefs 2019-01-14 16:17:53 +00:00
intel_huc.h drm/i915/uc: Fetch GuC/HuC firmwares from guc/huc specific init 2018-06-28 22:51:33 +01:00
intel_i2c.c drm/i915: drop all drmP.h includes 2019-01-09 10:26:36 +02:00
intel_lpe_audio.c drm/i915: Don't oops during modeset shutdown after lpe audio deinit 2018-11-06 17:18:01 +02:00
intel_lrc_reg.h drm/i915/execlists: Terminate the context image with BB_END 2018-08-01 17:03:31 +01:00
intel_lrc.c drm/i915: drop DPF code for gen8+ 2019-01-10 09:43:33 +00:00
intel_lrc.h drm/i915: Remove superfluous GEN8_LR_CONTEXT_ALIGN 2018-07-27 11:30:42 +01:00
intel_lspcon.c drm/i915: Switch LSPCON to PCON mode if it's in LS mode 2018-11-13 15:22:27 +02:00
intel_lvds.c drm/i915: drop all drmP.h includes 2019-01-09 10:26:36 +02:00
intel_mocs.c drm/i915: replace IS_GEN<N> with IS_GEN(..., N) 2018-12-12 16:52:10 -08:00
intel_mocs.h drm/i915: drop all drmP.h includes 2019-01-09 10:26:36 +02:00
intel_opregion.c drm/i915: drop all drmP.h includes 2019-01-09 10:26:36 +02:00
intel_opregion.h drm/i915: Fixup stub definitions for intel_opregion_suspend|resume 2018-11-30 09:46:31 +00:00
intel_overlay.c drm/i915: drop all drmP.h includes 2019-01-09 10:26:36 +02:00
intel_panel.c drm/i915: Markup paired operations on wakerefs 2019-01-14 16:17:53 +00:00
intel_pipe_crc.c drm/i915: merge gen checks to use range 2018-12-12 16:54:09 -08:00
intel_pm.c drm/i915: start moving runtime device info to a separate struct 2019-01-02 12:46:29 +02:00
intel_psr.c drm/i915: drop all drmP.h includes 2019-01-09 10:26:36 +02:00
intel_quirks.c drm/i915/quirks: pass dev_priv instead of drm dev to quirk code 2018-10-18 13:40:13 +03:00
intel_renderstate_gen6.c
intel_renderstate_gen7.c
intel_renderstate_gen8.c
intel_renderstate_gen9.c
intel_renderstate.h
intel_ringbuffer.c drm/i915: drop all drmP.h includes 2019-01-09 10:26:36 +02:00
intel_ringbuffer.h drm/i915: Always try to reset the GPU on takeover 2019-01-03 12:40:42 +00:00
intel_runtime_pm.c drm/i915: Markup paired operations on wakerefs 2019-01-14 16:17:53 +00:00
intel_sdvo_regs.h
intel_sdvo.c drm/i915: drop all drmP.h includes 2019-01-09 10:26:36 +02:00
intel_sideband.c
intel_sprite.c drm/i915: drop all drmP.h includes 2019-01-09 10:26:36 +02:00
intel_tv.c drm/i915: drop all drmP.h includes 2019-01-09 10:26:36 +02:00
intel_uc_fw.c drm/i915: Downgrade scare message for unknown HuC firmware 2019-01-08 22:41:09 +00:00
intel_uc_fw.h drm/i915/guc: init GuC descriptors after GuC load 2018-10-04 07:29:47 +01:00
intel_uc.c drm/i915/uc: add dev_priv parameter to intel_uc_is_using_* functions 2018-12-31 15:27:23 +02:00
intel_uc.h drm/i915/uc: add dev_priv parameter to intel_uc_is_using_* functions 2018-12-31 15:27:23 +02:00
intel_uncore.c drm/i915: Markup paired operations on wakerefs 2019-01-14 16:17:53 +00:00
intel_uncore.h drm/i915: Restore user forcewake domains across suspend 2018-08-15 13:41:05 -07:00
intel_vbt_defs.h drm/i915/bios: make the aux channel macros private to the vbt parser 2018-11-15 16:22:17 +02:00
intel_vdsc.c drm/i915: drop all drmP.h includes 2019-01-09 10:26:36 +02:00
intel_wopcm.c drm/i915/uc: add dev_priv parameter to intel_uc_is_using_* functions 2018-12-31 15:27:23 +02:00
intel_wopcm.h drm/i915/guc: Check the locking status of GuC WOPCM registers 2018-03-14 15:35:37 +02:00
intel_workarounds.c drm/i915/selftests: recreate WA lists inside the selftest 2019-01-10 09:15:18 +00:00
intel_workarounds.h drm/i915: Introduce per-engine workarounds 2018-12-05 13:50:24 +02:00
Kconfig treewide: surround Kconfig file paths with double quotes 2018-12-22 00:25:54 +09:00
Kconfig.debug drm/i915: Track all held rpm wakerefs 2019-01-14 16:17:50 +00:00
Makefile Makefile: fix mixed tab and spaces 2018-12-05 15:02:59 +00:00
vlv_dsi_pll.c drm/i915/dsi: use vlv and bxt prefixes for the global DSI functions 2018-07-06 10:54:05 +03:00
vlv_dsi.c drm/i915: drop all drmP.h includes 2019-01-09 10:26:36 +02:00