]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
drm/radeon/atom: Send out the full AUX address
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Thu, 27 Aug 2015 14:23:31 +0000 (17:23 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 21 Sep 2015 17:10:40 +0000 (10:10 -0700)
commit 3f8340cc72c9a1a4b49bce7802afd7f248400ef5 upstream.

AUX addresses are 20 bits long. Send out the entire address instead of
just the low 16 bits.

Cc: Alex Deucher <alexander.deucher@amd.com>
Cc: "Christian König" <christian.koenig@amd.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/gpu/drm/radeon/atombios_dp.c

index f81e0d7d023290813ed9cdc981155ee8d1a12c4c..9cd49c584263c895ad368586a1df58120d9c9a71 100644 (file)
@@ -171,8 +171,9 @@ radeon_dp_aux_transfer_atom(struct drm_dp_aux *aux, struct drm_dp_aux_msg *msg)
                return -E2BIG;
 
        tx_buf[0] = msg->address & 0xff;
-       tx_buf[1] = msg->address >> 8;
-       tx_buf[2] = msg->request << 4;
+       tx_buf[1] = (msg->address >> 8) & 0xff;
+       tx_buf[2] = (msg->request << 4) |
+               ((msg->address >> 16) & 0xf);
        tx_buf[3] = msg->size ? (msg->size - 1) : 0;
 
        switch (msg->request & ~DP_AUX_I2C_MOT) {