drm/radeon/kms: fix hardcoded EDID handling
authorAlex Deucher <alexdeucher@gmail.com>
Wed, 23 Mar 2011 08:10:10 +0000 (08:10 +0000)
committerDave Airlie <airlied@redhat.com>
Thu, 24 Mar 2011 10:24:32 +0000 (20:24 +1000)
commitfafcf94e2b5732d1e13b440291c53115d2b172e9
tree349e6eccfdd57b619aa8e7acca5468a689f03f58
parent2d370f502ac872dc9b4cd05f9922b260e2874ec1
drm/radeon/kms: fix hardcoded EDID handling

On some servers there is a hardcoded EDID provided
in the vbios so that the driver will always see a
display connected even if something like a KVM
prevents traditional means like DDC or load
detection from working properly.  Also most
server boards with DVI are not actually DVI, but
DVO connected to a virtual KVM service processor.
If we fail to detect a monitor via DDC or load
detection and a hardcoded EDID is available, use
it.

Additionally, when using the hardcoded EDID, use
a copy of it rather than the actual one stored
in the driver as the detect() and get_modes()
functions may free it if DDC is successful.

This fixes the virtual KVM on several internal
servers.

Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
Cc: stable@kernel.org
Signed-off-by: Dave Airlie <airlied@redhat.com>
drivers/gpu/drm/radeon/radeon_combios.c
drivers/gpu/drm/radeon/radeon_connectors.c
drivers/gpu/drm/radeon/radeon_mode.h