drm/i915: Send out the full AUX address
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Thu, 19 Mar 2015 09:44:06 +0000 (11:44 +0200)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Fri, 20 Mar 2015 10:48:16 +0000 (11:48 +0100)
AUX addresses are 20 bits long. Send out the entire address instead of
just the low 16 bits.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/intel_dp.c

index 3967af10f53cdec6da64f20d1f705321aeae8d4f..637dd5376c82a56a13dda8c94b65eace055b4e59 100644 (file)
@@ -942,8 +942,9 @@ intel_dp_aux_transfer(struct drm_dp_aux *aux, struct drm_dp_aux_msg *msg)
        size_t txsize, rxsize;
        int ret;
 
-       txbuf[0] = msg->request << 4;
-       txbuf[1] = msg->address >> 8;
+       txbuf[0] = (msg->request << 4) |
+               ((msg->address >> 16) & 0xf);
+       txbuf[1] = (msg->address >> 8) & 0xff;
        txbuf[2] = msg->address & 0xff;
        txbuf[3] = msg->size - 1;