1
0
Fork 0
alistair23-linux/drivers/gpu/drm
Zhi Wang 0ad35fed61 drm/i915: gvt: Introduce the basic architecture of GVT-g
This patch introduces the very basic framework of GVT-g device model,
includes basic prototypes, definitions, initialization.

v12:
- Call intel_gvt_init() in driver early initialization stage. (Chris)

v8:
- Remove the GVT idr and mutex in intel_gvt_host. (Joonas)

v7:
- Refine the URL link in Kconfig. (Joonas)
- Refine the introduction of GVT-g host support in Kconfig. (Joonas)
- Remove the macro GVT_ALIGN(), use round_down() instead. (Joonas)
- Make "struct intel_gvt" a data member in struct drm_i915_private.(Joonas)
	- Remove {alloc, free}_gvt_device()
	- Rename intel_gvt_{create, destroy}_gvt_device()
	- Expost intel_gvt_init_host()
- Remove the dummy "struct intel_gvt" declaration in intel_gvt.h (Joonas)

v6:
- Refine introduction in Kconfig. (Chris)
- The exposed API functions will take struct intel_gvt * instead of
void *. (Chris/Tvrtko)
- Remove most memebers of strct intel_gvt_device_info. Will add them
in the device model patches.(Chris)
- Remove gvt_info() and gvt_err() in debug.h. (Chris)
- Move GVT kernel parameter into i915_params. (Chris)
- Remove include/drm/i915_gvt.h, as GVT-g will be built within i915.
- Remove the redundant struct i915_gvt *, as the functions in i915
will directly take struct intel_gvt *.
- Add more comments for reviewer.

v5:
Take Tvrtko's comments:
- Fix the misspelled words in Kconfig
- Let functions take drm_i915_private * instead of struct drm_device *
- Remove redundant prints/local varible initialization

v3:
Take Joonas' comments:
- Change file name i915_gvt.* to intel_gvt.*
- Move GVT kernel parameter into intel_gvt.c
- Remove redundant debug macros
- Change error handling style
- Add introductions for some stub functions
- Introduce drm/i915_gvt.h.

Take Kevin's comments:
- Move GVT-g host/guest check into intel_vgt_balloon in i915_gem_gtt.c

v2:
- Introduce i915_gvt.c.
It's necessary to introduce the stubs between i915 driver and GVT-g host,
as GVT-g components is configurable in kernel config. When disabled, the
stubs here do nothing.

Take Joonas' comments:
- Replace boolean return value with int.
- Replace customized info/warn/debug macros with DRM macros.
- Document all non-static functions like i915.
- Remove empty and unused functions.
- Replace magic number with marcos.
- Set GVT-g in kernel config to "n" by default.

Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
Cc: Kevin Tian <kevin.tian@intel.com>
Signed-off-by: Zhi Wang <zhi.a.wang@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1466078825-6662-5-git-send-email-zhi.a.wang@intel.com
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-06-17 20:35:06 +01:00
..
amd drm/amdgpu: use crtc directly in drm_crtc_vblank_put() 2016-06-13 18:38:06 +02:00
arc Merge tag 'topic/drm-misc-2016-06-15' of git://anongit.freedesktop.org/drm-intel into drm-next 2016-06-16 05:49:32 +10:00
arm drm/hdlcd: Use helper support for nonblocking commits 2016-06-10 17:11:17 +02:00
armada Merge tag 'topic/drm-misc-2016-06-07' of git://anongit.freedesktop.org/drm-intel into drm-next 2016-06-09 11:19:28 +10:00
ast Merge tag 'topic/drm-misc-2016-06-07' of git://anongit.freedesktop.org/drm-intel into drm-next 2016-06-09 11:19:28 +10:00
atmel-hlcdc drm: atmel-hlcdc: Rely on the default ->best_encoder() behavior 2016-06-10 17:22:11 +02:00
bochs drm/bochs: Use lockless gem BO free callback 2016-06-01 09:40:16 +02:00
bridge drm/bridge: dw-hdmi: Use drm_atomic_helper_best_encoder() 2016-06-10 17:25:30 +02:00
cirrus Merge tag 'topic/drm-misc-2016-06-07' of git://anongit.freedesktop.org/drm-intel into drm-next 2016-06-09 11:19:28 +10:00
etnaviv dma-buf/fence: make fence context 64 bit v2 2016-06-02 08:27:41 +02:00
exynos drm: exynos: Rely on the default ->best_encoder() behavior 2016-06-10 17:22:15 +02:00
fsl-dcu drm: fsl-dcu: Rely on the default ->best_encoder() behavior 2016-06-10 17:22:19 +02:00
gma500 drm/gma500: use drm_crtc_vblank_{on,off}() 2016-06-13 18:38:19 +02:00
hisilicon drm/hisilicon: Implement some semblance of vblank event handling 2016-06-09 10:28:14 +02:00
i2c
i810
i915 drm/i915: gvt: Introduce the basic architecture of GVT-g 2016-06-17 20:35:06 +01:00
imx drm/imx: plane: Don't set plane->crtc in ipu_plane_update() 2016-05-30 09:14:00 +02:00
mediatek drm/atomic-helper: Massage swap_state signature somewhat 2016-06-10 16:52:12 +02:00
mga
mgag200 Merge tag 'topic/drm-misc-2016-06-07' of git://anongit.freedesktop.org/drm-intel into drm-next 2016-06-09 11:19:28 +10:00
msm drm/atomic-helper: Massage swap_state signature somewhat 2016-06-10 16:52:12 +02:00
nouveau drm/nouveau: replace legacy vblank helpers 2016-06-13 18:33:41 +02:00
omapdrm drm: omap: Rely on the default ->best_encoder() behavior 2016-06-10 17:25:11 +02:00
panel drm/panel: simple: Add support for TPK U.S.A. LLC Fusion 7" and 10.1" panels 2016-05-12 11:32:14 +02:00
qxl Merge tag 'topic/drm-misc-2016-06-07' of git://anongit.freedesktop.org/drm-intel into drm-next 2016-06-09 11:19:28 +10:00
r128
radeon drm/radeon: use crtc directly in drm_crtc_vblank_put() 2016-06-13 18:38:12 +02:00
rcar-du drm: rcar-du: Rely on the default ->best_encoder() behavior 2016-06-10 17:24:26 +02:00
rockchip drm: rockchip: Rely on the default ->best_encoder() behavior 2016-06-10 17:24:37 +02:00
savage
shmobile Merge tag 'topic/drm-misc-2016-06-07' of git://anongit.freedesktop.org/drm-intel into drm-next 2016-06-09 11:19:28 +10:00
sis
sti drm/atomic-helper: Massage swap_state signature somewhat 2016-06-10 16:52:12 +02:00
sun4i drm: sun4i: Rely on the default ->best_encoder() behavior 2016-06-10 17:24:44 +02:00
tdfx
tegra drm: tegra: Rely on the default ->best_encoder() behavior 2016-06-10 17:24:48 +02:00
tilcdc drm/tilcdc: Use lockless gem BO free callback 2016-06-01 09:41:02 +02:00
ttm Linux 4.6-rc7 2016-05-09 13:49:56 +10:00
udl drm/udl: use drm_crtc_send_vblank_event() 2016-06-06 18:03:06 +02:00
vc4 drm: vc4: Rely on the default ->best_encoder() behavior 2016-06-10 17:24:58 +02:00
vgem drm/vgem: Use lockless gem BO free callback 2016-05-31 15:28:10 +02:00
via
virtio drm/virtio: Don't reinvent a flipping wheel 2016-06-14 16:32:47 +02:00
vmwgfx drm/vmwgfx: use *_32_bits() macros 2016-06-15 13:10:38 +02:00
Kconfig drm/mediatek: Add DRM Driver for Mediatek SoC MT8173. 2016-05-06 17:47:35 +02:00
Makefile drm: Add helper for simple display pipeline 2016-06-10 17:33:17 +02:00
ati_pcigart.c
drm_agpsupport.c drm: Give drm_agp_clear drm_legacy_ prefix 2016-04-27 08:41:34 +02:00
drm_atomic.c drm/atomic: Add struct drm_crtc_commit to track async updates 2016-06-10 16:57:54 +02:00
drm_atomic_helper.c drm/atomic-helpers: Clear up cleanup_done a bit 2016-06-15 17:25:36 +02:00
drm_auth.c
drm_bridge.c drm/doc: Switch to sphinx/rst fixed-width quoting 2016-06-03 20:58:24 +02:00
drm_bufs.c drm: Hide master MAP cleanup in drm_bufs.c 2016-04-27 10:14:17 +02:00
drm_cache.c
drm_context.c
drm_crtc.c drm/atomic: Add struct drm_crtc_commit to track async updates 2016-06-10 16:57:54 +02:00
drm_crtc_helper.c drm: drm_helper_crtc_enable_color_mgmt() => drm_crtc_enable_color_mgmt() 2016-06-07 17:10:49 +03:00
drm_crtc_internal.h drm/mode: rework drm_mode_object_put to drm_mode_object_unregister. 2016-04-22 10:26:37 +10:00
drm_debugfs.c
drm_dma.c
drm_dp_aux_dev.c drm/dp: Allow signals to interrupt drm_aux-dev reads/writes 2016-04-28 11:48:09 +02:00
drm_dp_dual_mode_helper.c drm: Add helper for DP++ adaptors 2016-05-23 11:10:46 +03:00
drm_dp_helper.c drm/dp_helper: Perform throw-away read before actual read in drm_dp_dpcd_read() 2016-04-22 18:52:24 +02:00
drm_dp_mst_topology.c Linux 4.6-rc7 2016-05-09 13:49:56 +10:00
drm_drv.c drm: Remove dev_pm_ops from drm_class 2016-06-09 08:43:25 +02:00
drm_edid.c drm/edid: add displayid detailed 1 timings to the modelist. (v1.1) 2016-05-23 11:35:31 +10:00
drm_edid_load.c Fix annoyingly awkward typo in drm_edid_load.c 2016-05-30 09:59:28 +02:00
drm_encoder_slave.c
drm_fb_cma_helper.c drm: fb: cma: fix memory leak 2016-06-13 09:53:09 +02:00
drm_fb_helper.c drm: Replace fb_helper->atomic with mode_config->atomic_commit 2016-06-09 08:43:28 +02:00
drm_flip_work.c
drm_fops.c drm/atomic: Add struct drm_crtc_commit to track async updates 2016-06-10 16:57:54 +02:00
drm_fourcc.c drm: Move format-related helpers to drm_fourcc.c 2016-06-09 11:58:50 +02:00
drm_gem.c drm/doc: Appease sphinx 2016-06-02 16:25:20 +02:00
drm_gem_cma_helper.c drm: Wrap direct calls to driver->gem_free_object from CMA 2016-06-01 15:00:28 +10:00
drm_global.c
drm_hashtab.c
drm_info.c drm: Protect dev->filelist with its own mutex 2016-04-27 10:16:17 +02:00
drm_internal.h drm: Make drm_vm_open/close_locked private to drm_vm.c 2016-04-27 10:15:56 +02:00
drm_ioc32.c
drm_ioctl.c drm: Move drm_getmap into drm_bufs.c and give it a legacy prefix 2016-04-27 08:42:48 +02:00
drm_irq.c drm: make drm_vblank_{get,put}() static 2016-06-13 18:37:33 +02:00
drm_kms_helper_common.c
drm_legacy.h drm: Move drm_getmap into drm_bufs.c and give it a legacy prefix 2016-04-27 08:42:48 +02:00
drm_lock.c
drm_memory.c
drm_mipi_dsi.c drm/dsi: Add uevent callback 2016-06-13 10:45:57 +02:00
drm_mm.c drm/mm: avoid possible null pointer dereference 2016-05-23 14:56:11 +02:00
drm_modes.c Merge tag 'topic/drm-misc-2016-06-07' of git://anongit.freedesktop.org/drm-intel into drm-next 2016-06-09 11:19:28 +10:00
drm_modeset_lock.c drm/doc: Switch to sphinx/rst fixed-width quoting 2016-06-03 20:58:24 +02:00
drm_of.c
drm_panel.c drm/panel: Flesh out kerneldoc 2016-05-06 16:04:48 +02:00
drm_pci.c drm: Give drm_agp_clear drm_legacy_ prefix 2016-04-27 08:41:34 +02:00
drm_plane_helper.c drm/doc: Appease sphinx 2016-06-02 16:25:20 +02:00
drm_platform.c
drm_prime.c drm/prime: fix error path deadlock fail 2016-06-13 17:32:18 +02:00
drm_probe_helper.c drm: Only create a cmdline mode if no probed modes match 2016-06-02 15:10:22 +02:00
drm_rect.c
drm_scatter.c
drm_simple_kms_helper.c drm: Add helper for simple display pipeline 2016-06-10 17:33:17 +02:00
drm_sysfs.c drm: Remove dev_pm_ops from drm_class 2016-06-09 08:43:25 +02:00
drm_trace.h
drm_trace_points.c
drm_vm.c drm: Make drm_vm_open/close_locked private to drm_vm.c 2016-04-27 10:15:56 +02:00
drm_vma_manager.c drm/doc: Switch to sphinx/rst fixed-width quoting 2016-06-03 20:58:24 +02:00