drm/i915/gvt: Fix guest fail to read EDID leading to black guest console issue.
authorXu Han <xu.han@intel.com>
Tue, 21 Mar 2017 02:00:59 +0000 (10:00 +0800)
committerZhenyu Wang <zhenyuw@linux.intel.com>
Tue, 21 Mar 2017 02:50:02 +0000 (10:50 +0800)
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>
drivers/gpu/drm/i915/gvt/edid.c

index f1648fe5e5eaac09105b50c388cb63101b74bd2d..42cd09ec63fa7c41b69d684f8cf382a04f15b2ab 100644 (file)
@@ -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