linux-hardened/drivers/gpu/drm/i915
Dave Gordon dd6034c67a drm/i915: refactor i915_gem_object_pin_map()
The recently-added i915_gem_object_pin_map() can be further optimised
for "small" objects. To facilitate this, and simplify the error paths
before adding the new code, this patch pulls out the "mapping" part of
the operation (involving local allocations which must be undone before
return) into its own subfunction.

The next patch will then insert the new optimisation into the middle of
the now-separated subfunction.

This reorganisation will probably not affect the generated code, as the
compiler will most likely inline it anyway, but it makes the logical
structure a bit clearer and easier to modify.

v2:
    Restructure loop-over-pages & error check [Chris Wilson]

v3:
    Add page count to debug messages [Chris Wilson]
    Convert WARN_ON() to GEM_BUG_ON()

v4:
    Drop the DEBUG messages [Tvrtko Ursulin]

Signed-off-by: Dave Gordon <david.s.gordon@intel.com>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Link: http://patchwork.freedesktop.org/patch/msgid/1463741647-15666-2-git-send-email-chris@chris-wilson.co.uk
2016-05-20 13:42:36 +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: Store a i915 backpointer from engine, and use it 2016-05-09 13:41:24 +01:00
i915_debugfs.c drm/i915: Remove cs based page flip support. 2016-05-19 14:38:15 +02:00
i915_dma.c drm/i915: don't mix bitwise and logical operations for has_snoop 2016-05-16 10:44:22 +03:00
i915_drv.c Merge remote-tracking branch 'airlied/drm-next' into drm-intel-next-queued 2016-05-17 12:15:49 +02:00
i915_drv.h drm/i915/userptr: Convert to drm_i915_private 2016-05-19 17:57:08 +01:00
i915_gem.c drm/i915: refactor i915_gem_object_pin_map() 2016-05-20 13:42:36 +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: Propagate error from drm_gem_object_init() 2016-04-28 12:28:58 +03:00
i915_gem_batch_pool.h
i915_gem_context.c drm/i915: Complete pending resets before get-reset-stats ioctl 2016-05-13 12:38:52 +01:00
i915_gem_debug.c drm/i915: replace for_each_engine() 2016-03-24 14:34:11 +00:00
i915_gem_dmabuf.c Linux 4.6-rc3 2016-04-11 19:25:13 +02:00
i915_gem_evict.c drm/i915: Store a i915 backpointer from engine, and use it 2016-05-09 13:41:24 +01:00
i915_gem_execbuffer.c drm/i915: Store a i915 backpointer from engine, and use it 2016-05-09 13:41:24 +01:00
i915_gem_fence.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2016-03-17 21:38:27 -07:00
i915_gem_gtt.c drm/i915: Skip clearing the GGTT on full-ppgtt systems 2016-05-14 08:51:39 +01:00
i915_gem_gtt.h drm/i915: Use drm_i915_private as the native pointer for intel_uncore.c 2016-05-10 17:20:20 +01:00
i915_gem_render_state.c drm/i915: Store a i915 backpointer from engine, and use it 2016-05-09 13:41:24 +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_shrinker.c drm/i915: Store a i915 backpointer from engine, and use it 2016-05-09 13:41:24 +01:00
i915_gem_stolen.c drm/i915: Replace "INTEL_INFO->gen == x" checks with IS_GENx 2016-05-11 12:27:27 +01:00
i915_gem_tiling.c drm/i915: Replace "INTEL_INFO->gen == x" checks with IS_GENx 2016-05-11 12:27:27 +01:00
i915_gem_userptr.c drm/i915/userptr: Convert to drm_i915_private 2016-05-19 17:57:08 +01:00
i915_gpu_error.c drm/i915: Replace "INTEL_INFO->gen == x" checks with IS_GENx 2016-05-11 12:27:27 +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: Use drm_i915_private as the native pointer for intel_uncore.c 2016-05-10 17:20:20 +01:00
i915_ioc32.c
i915_irq.c drm/i915: Remove cs based page flip support. 2016-05-19 14:38:15 +02:00
i915_params.c drm/i915: Remove use_mmio_flip kernel parameter. 2016-05-19 14:38:23 +02:00
i915_params.h drm/i915: Remove use_mmio_flip kernel parameter. 2016-05-19 14:38:23 +02:00
i915_reg.h drm/i915/psr: Implement PSR2 w/a for gen9 2016-05-20 09:53:52 +02:00
i915_suspend.c drm/i915/bxt: Don't save/restore eDP panel power during suspend (v3) 2016-02-08 11:32:32 +02:00
i915_sysfs.c drm/i915: Use drm_i915_private as the native pointer for intel_uncore.c 2016-05-10 17:20:20 +01:00
i915_trace.h drm/i915: Store a i915 backpointer from engine, and use it 2016-05-09 13:41:24 +01:00
i915_trace_points.c
i915_vgpu.c drm/i915: Use drm_i915_private as the native pointer for intel_uncore.c 2016-05-10 17:20:20 +01:00
i915_vgpu.h drm/i915: Use drm_i915_private as the native pointer for intel_uncore.c 2016-05-10 17:20:20 +01:00
intel_acpi.c
intel_atomic.c drm/i915: Make unpin async. 2016-05-19 14:39:07 +02:00
intel_atomic_plane.c drm/i915: Add the exclusive fence to plane_state. 2016-05-19 14:37:56 +02:00
intel_audio.c Revert "drm/i915: start adding dp mst audio" 2016-05-03 22:28:26 +02:00
intel_bios.c drm/i915: Determine DP++ type 1 DVI adaptor presence based on VBT 2016-05-09 14:09:38 +03:00
intel_bios.h drm/i915: Parse LFP brightness control field in VBT 2016-05-02 16:17:38 +03:00
intel_color.c drm/i915: Do not check crtc_state->active in intel_color_load_luts. 2016-03-31 12:46:07 +02:00
intel_crt.c drm/i915: Bail out of pipe config compute loop on LPT 2016-05-04 17:15:43 +02:00
intel_csr.c drm/i915/kbl: Introduce the first official DMC for Kabylake. 2016-05-05 16:49:01 -07:00
intel_ddi.c drm/i915: Remove intel_clock_t typedef 2016-05-13 11:34:50 +03:00
intel_display.c drm/i915: Allow nonblocking update of pageflips. 2016-05-19 14:39:40 +02:00
intel_dp.c drm/i915/psr: Use ->get_aux_send_ctl functions 2016-05-20 09:53:52 +02: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/dp: reduce missing TPS3 support errors to debug logging 2016-02-08 11:37:17 +02:00
intel_dp_mst.c Merge remote-tracking branch 'airlied/drm-next' into drm-intel-next-queued 2016-05-17 12:15:49 +02:00
intel_dpio_phy.c drm/i915: Move VLV HDMI lane reset work around logic to intel_dpio_phy.c 2016-04-29 09:59:00 +03:00
intel_dpll_mgr.c drm/i915: Remove intel_clock_t typedef 2016-05-13 11:34:50 +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: Make unpin async. 2016-05-19 14:39:07 +02:00
intel_dsi.c drm/i915/dsi: CABC support for Panel PWM backlight control 2016-05-17 16:12:39 +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/dsi: CABC support for Panel PWM backlight control 2016-05-17 16:12:39 +03:00
intel_dsi_panel_vbt.c drm/i915/dsi: add support for gpio elements on CHV 2016-04-27 09:48:17 +03:00
intel_dsi_pll.c drm/i915: Eliminate {vlv,bxt}_configure_dsi_pll() 2016-04-15 16:25:27 +03:00
intel_dvo.c drm: Pass 'name' to drm_encoder_init() 2015-12-11 09:13:20 +01:00
intel_fbc.c drm/i915: Pass atomic states to fbc update functions. 2016-05-19 14:38:52 +02:00
intel_fbdev.c drm/i915: Move ioremap_wc tracking onto VMA 2016-04-28 12:17:32 +01:00
intel_fifo_underrun.c drm/i915: Do not use {HAS_*, IS_*, INTEL_INFO}(dev_priv->dev) 2016-04-07 14:50:26 +03:00
intel_frontbuffer.c
intel_guc.h drm/i915/guc: local optimisations and updating comments 2016-04-20 14:46:14 +01:00
intel_guc_fwif.h drm/i915/guc: Decouple GuC engine id from ring id 2016-01-25 10:56:30 +00:00
intel_guc_loader.c drm/i915/bxt: reserve space for RC6 in the the GuC WOPCM 2016-05-18 12:49:19 +01:00
intel_hdmi.c drm/i915: Determine DP++ type 1 DVI adaptor presence based on VBT 2016-05-09 14:09:38 +03:00
intel_hotplug.c drm/i915: Small display interrupt handlers tidy 2016-05-09 13:38:16 +01:00
intel_i2c.c drm/i915: Make GMBUS timeout message DRM_DEBUG_KMS 2016-04-12 13:23:17 +03:00
intel_lrc.c drm/i915: Remove use_mmio_flip kernel parameter. 2016-05-19 14:38:23 +02:00
intel_lrc.h drm/i915: Store a i915 backpointer from engine, and use it 2016-05-09 13:41:24 +01:00
intel_lvds.c drm/i915: Replace "INTEL_INFO->gen == x" checks with IS_GENx 2016-05-11 12:27:27 +01:00
intel_mocs.c drm/i915: Store a i915 backpointer from engine, and use it 2016-05-09 13:41:24 +01:00
intel_mocs.h drm/i915/mocs: Program MOCS for all engines on init 2016-04-14 10:45:40 +01:00
intel_modes.c
intel_opregion.c drm/i915: Small display interrupt handlers tidy 2016-05-09 13:38:16 +01:00
intel_overlay.c drm/i915: Convert intel_overlay.c to use native drm_i915_private pointers 2016-05-12 15:20:42 +01:00
intel_panel.c drm/i915/dsi: Add DCS control for Panel PWM 2016-05-17 16:12:38 +03:00
intel_pm.c drm/i915/psr: Implement PSR2 w/a for gen9 2016-05-20 09:53:52 +02:00
intel_psr.c drm/i915/psr: Use ->get_aux_send_ctl functions 2016-05-20 09:53:52 +02: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: Stop automatically retiring requests after a GPU hang 2016-05-13 12:39:20 +01:00
intel_ringbuffer.h drm/i915: Store a i915 backpointer from engine, and use it 2016-05-09 13:41:24 +01:00
intel_runtime_pm.c drm/i915: Update RAWCLK_FREQ register on VLV/CHV 2016-04-27 20:38:57 +03:00
intel_sdvo.c drm/i915: move sdvo mappings to vbt data 2016-03-29 15:12:30 +03: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: Extend gpio read/write to other cores 2016-02-04 19:11:17 +02:00
intel_sprite.c drm/i915: Unify unpin_work and mmio_work into flip_work, v2. 2016-05-19 14:37:17 +02:00
intel_tv.c drm/i915: move VBT based TV presence check to intel_bios.c 2016-03-16 18:28:07 +02:00
intel_uncore.c drm/i915: Move get-reset-stats ioctl from intel_uncore.c to i915_gem_context.c 2016-05-13 12:38:42 +01:00
intel_vbt_defs.h drm/i915: Determine DP++ type 1 DVI adaptor presence based on VBT 2016-05-09 14:09:38 +03:00
Kconfig drm/i915: Kconfig for extra driver debugging 2016-03-03 17:26:57 +00:00
Kconfig.debug drm/i915: Add GEM debugging Kconfig option 2016-04-14 10:45:40 +01:00
Makefile drm/i915/dsi: Add DCS control for Panel PWM 2016-05-17 16:12:38 +03:00