From mboxrd@z Thu Jan 1 00:00:00 1970
From: bugzilla-daemon@freedesktop.org
Subject: [Bug 80684] New: I2C-over-AUX drops single bytes
Date: Sun, 29 Jun 2014 18:09:20 +0000
Message-ID:
Priority
medium
Bug ID
80684
Assignee
dri-devel@lists.freedesktop.org
Summary
I2C-over-AUX drops single bytes
Severity
normal
Classification
Unclassified
OS
All
Reporter
stefan.bruens@rwth-aachen.de
Hardware
Other
Status
NEW
Version
DRI CVS
Component
DRM/Radeon
Product
DRI
I get frequent errors for the EDID checksum, obviously single =
bytes are dropped
from the EDID.
Good EDID:
Raw EDID:
02 03 1d f1 50 90 05 04 03 02 07 16 01 06 11 12
15 13 14 1f 20 23 09 7f 07 83 01 00 00 02 3a 80
18 71 38 2d 40 58 2c 25 00 55 50 21 00 00 1e 01
1d 80 18 71 1c 16 20 58 2c 25 00 55 50 21 00 00 <--=20
9e 01 1d 00 72 51 d0 1e 20 6e 28 55 00 55 50 21
00 00 1e 8c 0a d0 8a 20 e0 2d 10 10 3e 96 00 55
50 21 00 00 18 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 5d
Bad EDID example:
Raw EDID:
02 03 1d f1 50 90 05 04 03 02 07 16 01 06 11 12
15 13 14 1f 20 23 09 7f 07 83 01 00 00 02 3a 80
18 71 38 2d 40 58 2c 25 00 55 50 21 00 00 1e 01
1d 80 18 1c 16 20 58 2c 25 00 55 50 21 00 00 9e <-- 0x71 is missing
01 1d 00 72 51 d0 1e 20 6e 28 55 00 55 50 21 00
00 1e 8c 0a d0 8a 20 e0 2d 10 10 3e 96 00 55 50
21 00 00 18 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 5d 00
The position of the dropped byte changes, sometimes the EDID is complete,
sometimes several bytes are dropped.
The bad EDIDs are *often* accompanied with [drm:radeon_process_aux_ch]
dp_aux_ch flags not zero messages.
Most probably the common i2c-over-aux code drops the byte, as it starts the
transfer again in case of -EBUSY. If I change radeon_process_aux_ch to retu=
rn
-EIO in case of (ReplyStatus =3D=3D 2), I no longer have any bad checksums.
Hardware is Radeon 7750 + Dell U2713HM, connected via DP.
Same monitor with Intel Haswell and different cable works without any error=
s.
Kernel is 3.15.1, i.e. without the i2c bus mutex, dont know if this fixes t=
he
problems as well.=1B