Bug 42729 - Monitor EDID handling causes system freezes every few seconds.
Summary: Monitor EDID handling causes system freezes every few seconds.
Status: RESOLVED INVALID
Alias: None
Product: Drivers
Classification: Unclassified
Component: Video(DRI - non Intel) (show other bugs)
Hardware: All Linux
: P1 normal
Assignee: drivers_video-dri
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-02-04 20:21 UTC by subscription.discussion
Modified: 2012-04-20 14:31 UTC (History)
1 user (show)

See Also:
Kernel Version: 3.2.1-3.2.2
Subsystem:
Regression: No
Bisected commit-id:


Attachments
dmesg (279.10 KB, text/plain)
2012-02-04 20:21 UTC, subscription.discussion
Details

Description subscription.discussion 2012-02-04 20:21:51 UTC
Created attachment 72281 [details]
dmesg

Whenever my Compaq S9500 monitor is connected, the kernel outputs errors about invalid EDID checksum. The system also freezes for a couple of seconds every 5-10 seconds or so, possibly around the same time the errors are reported to the terminal. The problem can be circumvented by adding nomodeset to the kernel line, or disconnecting the monitor. However, using nomodeset seems to disable accelerated graphics, so neither of the fixes are very usable.

The first time the problem occurred was when my Nvidia GPU (with proprietary drivers) broke and I had to switch to my old ATI Radeon GPU (with the open-source radeon driver). I have tried using two monitors and using only a single monitor, but the problem goes away only if the "broken" monitor is disconnected.

I think the driver should just ignore the parts of the EDID that are invalid, instead of repeatedly doing something that makes the system unresponsive.

I'm using a x86_64 Arch Linux, kernel 3.2.2-1-ARCH.
GPU: Radeon X8xx (X800XL if I recall correctly, but lspci reports it as an "ATI Technologies Inc Radeon R423 UK [Radeon X800SE (PCIE)]. The X800XL, however, is R430 according to Wikipedia.)
Comment 1 Alex Deucher 2012-02-06 14:43:20 UTC
You can disable EDID polling by adding:
drm_kms_helper.poll=false
to the kernel command line in grub.
Comment 2 Alex Deucher 2012-02-06 14:44:06 UTC
or forcing drm_kms_helper poll=false in your module config, etc.

Note You need to log in before you can comment on or make changes to this bug.