diff options
author | dumbbell <dumbbell@FreeBSD.org> | 2013-04-08 08:37:57 +0000 |
---|---|---|
committer | dumbbell <dumbbell@FreeBSD.org> | 2013-04-08 08:37:57 +0000 |
commit | c430659646000b47cbf7136b62c561219abc371a (patch) | |
tree | 39e8efebb73b9b9263085d98ebb0c3d93fda78b8 /sys/dev/drm2 | |
parent | e2882f43063137c60b8a5eb26c5146b4a352cb1c (diff) | |
download | FreeBSD-src-c430659646000b47cbf7136b62c561219abc371a.zip FreeBSD-src-c430659646000b47cbf7136b62c561219abc371a.tar.gz |
drm: Right-shift I2C slave address before passing it to aux channel
In r249041, I2C slave addresses were left-shifted at creation time to
have the same behavior between i915 and radeon (not committed yet). This
change broke the aux channel. The user-visible change was that display
port on i915 didn't work anymore.
To fix this, we right-shift the address back to restore the original value.
Reported by: Olivier Cochard-Labbé <olivier@cochard.me>
Tested by: Olivier Cochard-Labbé <olivier@cochard.me>
Reviewed by: kib@
Diffstat (limited to 'sys/dev/drm2')
-rw-r--r-- | sys/dev/drm2/drm_dp_iic_helper.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/dev/drm2/drm_dp_iic_helper.c b/sys/dev/drm2/drm_dp_iic_helper.c index 6d54170..71319e3 100644 --- a/sys/dev/drm2/drm_dp_iic_helper.c +++ b/sys/dev/drm2/drm_dp_iic_helper.c @@ -146,7 +146,7 @@ iic_dp_aux_xfer(device_t idev, struct iic_msg *msgs, uint32_t num) len = msgs[m].len; buf = msgs[m].buf; reading = (msgs[m].flags & IIC_M_RD) != 0; - ret = iic_dp_aux_address(idev, msgs[m].slave, reading); + ret = iic_dp_aux_address(idev, msgs[m].slave >> 1, reading); if (ret != 0) break; if (reading) { |