summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorXu Han <xu.han@intel.com>2017-03-21 03:00:59 +0100
committerZhenyu Wang <zhenyuw@linux.intel.com>2017-03-21 03:50:02 +0100
commit14f5ba26aa7060b4cad9c4c288b9a785bd0cd1a8 (patch)
tree2859ce204875e6a087e43cfcaa7b745522f4b609 /drivers
parentdrm/i915/gvt: fix wrong offset when loading RCS mocs (diff)
downloadlinux-14f5ba26aa7060b4cad9c4c288b9a785bd0cd1a8.tar.xz
linux-14f5ba26aa7060b4cad9c4c288b9a785bd0cd1a8.zip
drm/i915/gvt: Fix guest fail to read EDID leading to black guest console issue.
It appears missing slaves on the i2c should cause 0xff to be returned rather than 0. So, when the Windows driver tried to address a slave at 0x40 and got 0’s back rather than 0xff’s it must have confused it. Signed-off-by: Paul Durrant <Paul.Durrant@citrix.com> Signed-off-by: Xu Han <xu.han@intel.com> Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/gpu/drm/i915/gvt/edid.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/gpu/drm/i915/gvt/edid.c b/drivers/gpu/drm/i915/gvt/edid.c
index f1648fe5e5ea..42cd09ec63fa 100644
--- a/drivers/gpu/drm/i915/gvt/edid.c
+++ b/drivers/gpu/drm/i915/gvt/edid.c
@@ -495,7 +495,8 @@ void intel_gvt_i2c_handle_aux_ch_write(struct intel_vgpu *vgpu,
unsigned char val = edid_get_byte(vgpu);
aux_data_for_write = (val << 16);
- }
+ } else
+ aux_data_for_write = (0xff << 16);
}
/* write the return value in AUX_CH_DATA reg which includes:
* ACK of I2C_WRITE