linux/drivers/gpu/drm/i915
Tvrtko Ursulin a19d6ff29a drm/i915: Small compaction of the engine init code
Effectively removes one layer of indirection between the mask of
possible engines and the engine constructors. Instead of spelling
out in code the mapping of HAS_<engine> to constructors, makes
more use of the recently added data driven approach by putting
engine constructor vfuncs into the table as well.

Effect is fewer lines of source and smaller binary.

At the same time simplify the error handling since engine
destructors can run on unitialized engines anyway.

Similar approach could be done for legacy submission is wanted.

v2: Removed ugly BUILD_BUG_ONs in favour of newly introduced
    ENGINE_MASK and HAS_ENGINE macros.
    Also removed the forward declarations by shuffling functions
    around.

v3: Warn when logical_rings table does not contain enough data
    and disable the engines which could not be initialized.
    (Chris Wilson)

v4: Chris Wilson suggested a nicer engine init loop.

Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Link: http://patchwork.freedesktop.org/patch/msgid/1466689961-23232-1-git-send-email-tvrtko.ursulin@linux.intel.com
2016-06-24 12:09:00 +01:00
..
gvt drm/i915: gvt: Introduce the basic architecture of GVT-g 2016-06-17 20:35:06 +01:00
dvo.h
dvo_ch7xxx.c
dvo_ch7017.c
dvo_ivch.c
dvo_ns2501.c
dvo_sil164.c
dvo_tfp410.c
i915_cmd_parser.c drm/i915: Fix a buch of kerneldoc warnings 2016-06-06 13:04:26 +01:00
i915_debugfs.c drm/i915: Use connector_type for printing in intel_connector_info, v2. 2016-06-21 13:54:18 +02:00
i915_dma.c drm/i915/fbdev: Perform async fbdev initialisation much later 2016-06-21 09:36:11 +01:00
i915_drv.c drm/i915/bxt: Add WaEnablePooledEuFor2x6 2016-06-14 10:42:35 +01:00
i915_drv.h drm/i915: Small compaction of the engine init code 2016-06-24 12:09:00 +01:00
i915_gem.c drm/i915: use ORIGIN_CPU for frontbuffer invalidation on WC mmaps 2016-06-20 17:47:36 -03:00
i915_gem.h
i915_gem_batch_pool.c
i915_gem_batch_pool.h
i915_gem_context.c drm/i915: Introduce GVT context creation API 2016-06-17 20:36:43 +01:00
i915_gem_debug.c
i915_gem_dmabuf.c
i915_gem_dmabuf.h drm/i915: Serialise presentation with imported dmabufs 2016-06-17 10:32:26 +01:00
i915_gem_evict.c
i915_gem_execbuffer.c drm: Extract drm_is_current_master 2016-06-21 21:58:12 +02:00
i915_gem_fence.c drm/i915: Introduce & use new lightweight SGL iterators 2016-05-20 13:43:00 +01:00
i915_gem_gtt.c drm/i915: Fold vGPU active check into inner functions 2016-06-17 19:44:29 +01:00
i915_gem_gtt.h drm/i915: Add support for mapping an object page by page 2016-06-13 10:03:54 +01:00
i915_gem_render_state.c drm/i915:bxt: Enable Pooled EU support 2016-06-14 10:42:35 +01:00
i915_gem_render_state.h
i915_gem_shrinker.c
i915_gem_stolen.c drm/i915/kbl: Add WaSkipStolenMemoryFirstPage for A0 2016-06-08 16:20:23 +03:00
i915_gem_tiling.c Merge branch 'drm-intel-next' of git://anongit.freedesktop.org/drm-intel into drm-next 2016-06-02 07:58:36 +10:00
i915_gem_userptr.c drm/i915: Introduce & use new lightweight SGL iterators 2016-05-20 13:43:00 +01:00
i915_gpu_error.c
i915_guc_reg.h
i915_guc_submission.c drm/i915/guc: Remove one unnecessary variable 2016-06-21 15:43:32 +01:00
i915_ioc32.c
i915_irq.c drm/i915: Fix a buch of kerneldoc warnings 2016-06-06 13:04:26 +01:00
i915_params.c drm/i915: Set the access right of kernel param "i915.enable_gvt" to read-only. 2016-06-21 11:45:27 +01:00
i915_params.h drm/i915: gvt: Introduce the basic architecture of GVT-g 2016-06-17 20:35:06 +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: Make addressing mode bits in context descriptor configurable 2016-06-17 20:35:26 +01:00
i915_suspend.c
i915_sysfs.c drm/i915: Rename struct intel_context 2016-05-24 15:27:14 +01:00
i915_trace.h drm/i915: Rename struct intel_context 2016-05-24 15:27:14 +01:00
i915_trace_points.c
i915_vgpu.c drm/i915: Fold vGPU active check into inner functions 2016-06-17 19:44:29 +01: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 Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux 2016-05-23 11:48:48 -07:00
intel_bios.c drm/i915: Check VBT for port presence in addition to the strap on VLV/CHV 2016-06-07 18:45:43 +03:00
intel_bios.h
intel_color.c drm: drm_helper_crtc_enable_color_mgmt() => drm_crtc_enable_color_mgmt() 2016-06-07 17:10:49 +03:00
intel_crt.c drm/i915: Move intel_connector->unregister to connector->early_unregister 2016-06-19 10:39:06 +02:00
intel_csr.c
intel_ddi.c drm/i915/bxt: Sanitiy check the PHY lane power down status 2016-06-13 18:46:10 +03:00
intel_display.c Merge remote-tracking branch 'airlied/drm-next' into drm-intel-next-queued 2016-06-24 08:29:45 +02:00
intel_dp.c Merge remote-tracking branch 'airlied/drm-next' into drm-intel-next-queued 2016-06-24 08:29:45 +02:00
intel_dp_aux_backlight.c
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: Move intel_connector->unregister to connector->early_unregister 2016-06-19 10:39:06 +02:00
intel_dpio_phy.c
intel_dpll_mgr.c drm/i915: Use crtc->name in debug messages 2016-05-30 17:01:16 +03:00
intel_dpll_mgr.h
intel_drv.h Merge remote-tracking branch 'airlied/drm-next' into drm-intel-next-queued 2016-06-24 08:29:45 +02:00
intel_dsi.c Merge tag 'drm-intel-next-2016-06-20' of git://anongit.freedesktop.org/drm-intel into drm-next 2016-06-24 13:13:41 +10:00
intel_dsi.h
intel_dsi_dcs_backlight.c
intel_dsi_panel_vbt.c
intel_dsi_pll.c
intel_dvo.c drm/i915: Move intel_connector->unregister to connector->early_unregister 2016-06-19 10:39:06 +02:00
intel_fbc.c drm/i915/fbc: sanitize i915.enable_fbc during FBC init 2016-06-20 17:47:30 -03:00
intel_fbdev.c drm/i915/fbdev: Flush mode configuration before lastclose 2016-06-21 09:36:56 +01:00
intel_fifo_underrun.c
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/guc: prefer 'dev_priv' to 'dev' for intra-module functions 2016-06-13 16:47:39 +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 Merge tag 'drm-intel-next-2016-06-20' of git://anongit.freedesktop.org/drm-intel into drm-next 2016-06-24 13:13:41 +10:00
intel_hotplug.c
intel_i2c.c
intel_lrc.c drm/i915: Small compaction of the engine init code 2016-06-24 12:09:00 +01:00
intel_lrc.h drm/i915: Introduce execlist context status change notification 2016-06-17 20:36:19 +01:00
intel_lvds.c Merge remote-tracking branch 'airlied/drm-next' into drm-intel-next-queued 2016-06-24 08:29:45 +02:00
intel_mocs.c drm/i915/mocs: || vs | typo in get_mocs_settings() 2016-06-13 17:38:01 +03:00
intel_mocs.h
intel_modes.c
intel_opregion.c drm/i915/opregion: Rename init/fini functions to register/unregister 2016-05-23 16:35:50 +01:00
intel_overlay.c Merge branch 'drm-intel-next' of git://anongit.freedesktop.org/drm-intel into drm-next 2016-06-02 07:58:36 +10:00
intel_panel.c drm/i915: Move backlight unregistration to connector unregistration 2016-06-19 10:39:13 +02:00
intel_pm.c drm/i915: Set softmin frequency on idle->busy transition 2016-06-21 11:39:42 +01:00
intel_psr.c drm/i915/psr: Try to program link training times correctly 2016-05-23 15:10:25 +03: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/bxt: Add WaDisablePooledEuLoadBalancingFix 2016-06-14 10:44:07 +01:00
intel_ringbuffer.h drm/i915: Rename struct intel_context 2016-05-24 15:27:14 +01:00
intel_runtime_pm.c drm/i915/bxt: Fix PPS lost state after suspend breaking eDP link training 2016-06-22 19:15:41 +03:00
intel_sdvo.c drm/i915: Move intel_connector->unregister to connector->early_unregister 2016-06-19 10:39:06 +02:00
intel_sdvo_regs.h
intel_sideband.c
intel_sprite.c drm/i915: Signal drm events for atomic 2016-06-16 14:28:34 +02:00
intel_tv.c drm/i915: Move intel_connector->unregister to connector->early_unregister 2016-06-19 10:39:06 +02:00
intel_uncore.c drm/i915/guc: distinguish HAS_GUC() from HAS_GUC_UCODE/HAS_GUC_SCHED 2016-05-23 14:21:52 +01:00
intel_vbt_defs.h drm/i915: Extract physical display dimensions from VBT 2016-06-02 14:33:09 +03:00
Kconfig drm/i915: gvt: Introduce the basic architecture of GVT-g 2016-06-17 20:35:06 +01:00
Kconfig.debug
Makefile drm/i915: gvt: Introduce the basic architecture of GVT-g 2016-06-17 20:35:06 +01:00