drm/i915/gvt: Allow zero out HWSP addr on hws_pga_write
authorColin Xu <colin.xu@intel.com>
Fri, 11 Sep 2020 06:52:39 +0000 (14:52 +0800)
committerZhenyu Wang <zhenyuw@linux.intel.com>
Mon, 19 Oct 2020 08:49:34 +0000 (16:49 +0800)
commit97f9ca383dca6f4b425fb3c4709405fb8272a15f
treec5ea732825dff20ce8f949998880b096032cc947
parent16cce04cdb200ba905d1241b425ac48da5a9ace5
drm/i915/gvt: Allow zero out HWSP addr on hws_pga_write

Guest driver may reset HWSP to 0 as init value during D3->D0:
The full sequence is:
 - Boot ->D0
 - Update HWSP
 - D0->D3
 - ...In D3 state...
 - D3->D0
 - DMLR reset.
 - Set engine HWSP to 0.
 - Set engine ring mode to 0.
 - Set engine HWSP to correct value.
 - Set engine ring mode to correct value.
Ring mode is masked register so set 0 won't take effect.
However HWPS addr 0 is considered as invalid GGTT address which will
report error like:
       gvt: vgpu 1: write invalid HWSP address, reg:0x2080, value:0x0
       gvt: vgpu 1: fail to emulate MMIO write 00002080 len 4
       Detected your guest driver doesn't support GVT-g.
       Now vgpu 2 will enter failsafe mode.

Zero out HWSP addr is considered as a valid setting from device driver
so don't treat it as invalid HWSP addr.

V2:
Treat HWSP addr 0 as valid. (zhenyu)

V3:
Change patch title.

Reviewed-by: Zhenyu Wang <zhenyuw@linux.intel.com>
Signed-off-by: Colin Xu <colin.xu@intel.com>
Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/20200911065239.147789-1-colin.xu@intel.com
drivers/gpu/drm/i915/gvt/handlers.c