summaryrefslogtreecommitdiff
path: root/linux-core/intel_modes.c
diff options
context:
space:
mode:
authorJerome Glisse <glisse@freedesktop.org>2007-11-09 15:47:24 +0100
committerJerome Glisse <glisse@freedesktop.org>2007-11-09 15:47:24 +0100
commitffb89d4c3b6650551aaab06076896540a78faddf (patch)
treefc71d07e3471f973bc001e3c3bef942af74fe8c7 /linux-core/intel_modes.c
parentd983ed90cb9de559271817e04bddc8b40fc16a0d (diff)
drm: split edid handling in get_edid & add_edid_mode
This way driver can get_edid in output status detection (using all workaround which are in get_edid) and then provide this edid data in get_mode callback of output.
Diffstat (limited to 'linux-core/intel_modes.c')
-rw-r--r--linux-core/intel_modes.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/linux-core/intel_modes.c b/linux-core/intel_modes.c
index 601770e1..346cf1ac 100644
--- a/linux-core/intel_modes.c
+++ b/linux-core/intel_modes.c
@@ -50,6 +50,13 @@ bool intel_ddc_probe(struct drm_output *output)
int intel_ddc_get_modes(struct drm_output *output)
{
struct intel_output *intel_output = output->driver_private;
+ struct edid *edid;
+ int ret = 0;
- return drm_add_edid_modes(output, &intel_output->ddc_bus->adapter);
+ edid = drm_get_edid(output, &intel_output->ddc_bus->adapter);
+ if (edid) {
+ ret = drm_add_edid_modes(output, edid);
+ kfree(edid);
+ }
+ return ret;
}