Module Name:    src
Committed By:   jmcneill
Date:           Sat Nov 14 23:15:44 UTC 2015

Modified Files:
        src/sys/external/bsd/drm2/dist/drm: drm_edid.c
        src/sys/external/bsd/drm2/dist/include/drm: drm_crtc.h

Log Message:
parse_hdmi_vsdb: read the HDMI physical address from the HDMI VSDB and store it 
on the connector


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 src/sys/external/bsd/drm2/dist/drm/drm_edid.c
cvs rdiff -u -r1.4 -r1.5 \
    src/sys/external/bsd/drm2/dist/include/drm/drm_crtc.h

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/dist/drm/drm_edid.c
diff -u src/sys/external/bsd/drm2/dist/drm/drm_edid.c:1.4 src/sys/external/bsd/drm2/dist/drm/drm_edid.c:1.5
--- src/sys/external/bsd/drm2/dist/drm/drm_edid.c:1.4	Wed Jul 16 20:56:24 2014
+++ src/sys/external/bsd/drm2/dist/drm/drm_edid.c	Sat Nov 14 23:15:44 2015
@@ -2984,6 +2984,9 @@ parse_hdmi_vsdb(struct drm_connector *co
 {
 	u8 len = cea_db_payload_len(db);
 
+	if (len >= 5) {
+		connector->physical_address = (db[4] << 8) | db[5];
+	}
 	if (len >= 6) {
 		connector->eld[5] |= (db[6] >> 7) << 1;  /* Supports_AI */
 		connector->dvi_dual = db[6] & 1;

Index: src/sys/external/bsd/drm2/dist/include/drm/drm_crtc.h
diff -u src/sys/external/bsd/drm2/dist/include/drm/drm_crtc.h:1.4 src/sys/external/bsd/drm2/dist/include/drm/drm_crtc.h:1.5
--- src/sys/external/bsd/drm2/dist/include/drm/drm_crtc.h:1.4	Thu Mar  5 17:24:36 2015
+++ src/sys/external/bsd/drm2/dist/include/drm/drm_crtc.h	Sat Nov 14 23:15:44 2015
@@ -464,6 +464,7 @@ struct drm_encoder {
  * @force: a %DRM_FORCE_<foo> state for forced mode sets
  * @encoder_ids: valid encoders for this connector
  * @encoder: encoder driving this connector, if any
+ * @physical_address: HDMI physical address
  * @eld: EDID-like data, if present
  * @dvi_dual: dual link DVI, if found
  * @max_tmds_clock: max clock rate, if found
@@ -516,6 +517,7 @@ struct drm_connector {
 	struct drm_encoder *encoder; /* currently active encoder */
 
 	/* EDID bits */
+	uint16_t physical_address;
 	uint8_t eld[MAX_ELD_BYTES];
 	bool dvi_dual;
 	int max_tmds_clock;	/* in MHz */

Reply via email to