Fixes: driver/gpu/drm/bridge adv7511_drv.c determines EDID read success when the DDC communication error #22
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Issue:
We found two issues happened following when the HPD event asserts.
・ADV7511/ADV7535 fails to read EDID(All 0x00) (Btw, it's okay until use)
・DRM tries to update new supported resolution list by using the wrong EDID(All 0x00)
→This sometimes causes unnecessary dynamic resolution changes to HDMI output from ADV7511/ADV7535.
How to fix:
HDCP_ERROR_INT means HDCP/DDC controller error occurred, it does not mean EDID read success. However, the current implementation determines both ADV7511_INT0_EDID_READY and ADV7511_INT1_DDC_ERROR are EDID read successfully. ADV7511_INT1_DDC_ERROR should be handled as EDID read failed or EDID read timeout. The EDID read timeout sequence is already implemented in the adv7511_wait_for_edid(), so it is safe to ignore DDC_ERROR.
※screen captured register map is allowed to use by ADI
Root cause:
adv7511_drv.c determines EDID read successfully when ADV7511/ADV7535 INT1 bit(HDCP_ERROR_INT) asserted.
(DRM debug log is following, added the @IRQ description)
DRM debug log
DRM tries to specify new resolution by wrong EDID(All 0x00).