• Zhi Wang's avatar
    drm/i915: gvt: Introduce the basic architecture of GVT-g · 0ad35fed
    Zhi Wang authored
    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: default avatarJoonas 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: default avatarZhi Wang <zhi.a.wang@intel.com>
    Link: http://patchwork.freedesktop.org/patch/msgid/1466078825-6662-5-git-send-email-zhi.a.wang@intel.comSigned-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
    0ad35fed
gvt.c 4.09 KB