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 */