Module Name:    src
Committed By:   jmcneill
Date:           Fri May 31 01:58:07 UTC 2019

Modified Files:
        src/sys/external/bsd/drm2/radeon: radeondrmkmsfb.c

Log Message:
Make the first EDID we find available to genfb


To generate a diff of this commit:
cvs rdiff -u -r1.8 -r1.9 src/sys/external/bsd/drm2/radeon/radeondrmkmsfb.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/radeon/radeondrmkmsfb.c
diff -u src/sys/external/bsd/drm2/radeon/radeondrmkmsfb.c:1.8 src/sys/external/bsd/drm2/radeon/radeondrmkmsfb.c:1.9
--- src/sys/external/bsd/drm2/radeon/radeondrmkmsfb.c:1.8	Mon Aug 27 13:36:14 2018
+++ src/sys/external/bsd/drm2/radeon/radeondrmkmsfb.c	Fri May 31 01:58:07 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: radeondrmkmsfb.c,v 1.8 2018/08/27 13:36:14 riastradh Exp $	*/
+/*	$NetBSD: radeondrmkmsfb.c,v 1.9 2019/05/31 01:58:07 jmcneill Exp $	*/
 
 /*-
  * Copyright (c) 2014 The NetBSD Foundation, Inc.
@@ -31,7 +31,7 @@
 
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: radeondrmkmsfb.c,v 1.8 2018/08/27 13:36:14 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: radeondrmkmsfb.c,v 1.9 2019/05/31 01:58:07 jmcneill Exp $");
 
 #ifdef _KERNEL_OPT
 #include "vga.h"
@@ -163,7 +163,7 @@ radeonfb_setconfig_task(struct radeon_ta
 	enum { CONS_VGA, CONS_GENFB, CONS_NONE } what_was_cons;
 	static const struct genfb_ops zero_genfb_ops;
 	struct genfb_ops genfb_ops = zero_genfb_ops;
-	int error;
+	int error, n;
 
 	KASSERT(sc->sc_scheduled);
 
@@ -196,6 +196,19 @@ radeonfb_setconfig_task(struct radeon_ta
 		prop_dictionary_set_bool(dict, "is_console", false);
 	}
 
+	/* Make the first EDID we find available to wsfb */
+	for (n = 0; n < rfa->rfa_fb_helper->connector_count; n++) {
+		struct drm_connector *connector =
+		    rfa->rfa_fb_helper->connector_info[n]->connector;
+		struct drm_property_blob *edid = connector->edid_blob_ptr;
+		if (edid && edid->data) {
+			prop_data_t edid_data =
+			    prop_data_create_data(edid->data, edid->length);
+			prop_dictionary_set(dict, "EDID", edid_data);
+			break;
+		}
+	}
+
 	sc->sc_genfb.sc_dev = sc->sc_dev;
 	genfb_init(&sc->sc_genfb);
 	genfb_ops.genfb_ioctl = radeonfb_genfb_ioctl;

Reply via email to