|
@@ -530,6 +530,23 @@ u8 radeon_dp_getsinktype(struct radeon_connector *radeon_connector)
|
|
dig_connector->dp_i2c_bus->rec.i2c_id, 0);
|
|
dig_connector->dp_i2c_bus->rec.i2c_id, 0);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+static void radeon_dp_probe_oui(struct radeon_connector *radeon_connector)
|
|
|
|
+{
|
|
|
|
+ struct radeon_connector_atom_dig *dig_connector = radeon_connector->con_priv;
|
|
|
|
+ u8 buf[3];
|
|
|
|
+
|
|
|
|
+ if (!(dig_connector->dpcd[DP_DOWN_STREAM_PORT_COUNT] & DP_OUI_SUPPORT))
|
|
|
|
+ return;
|
|
|
|
+
|
|
|
|
+ if (radeon_dp_aux_native_read(radeon_connector, DP_SINK_OUI, buf, 3, 0))
|
|
|
|
+ DRM_DEBUG_KMS("Sink OUI: %02hx%02hx%02hx\n",
|
|
|
|
+ buf[0], buf[1], buf[2]);
|
|
|
|
+
|
|
|
|
+ if (radeon_dp_aux_native_read(radeon_connector, DP_BRANCH_OUI, buf, 3, 0))
|
|
|
|
+ DRM_DEBUG_KMS("Branch OUI: %02hx%02hx%02hx\n",
|
|
|
|
+ buf[0], buf[1], buf[2]);
|
|
|
|
+}
|
|
|
|
+
|
|
bool radeon_dp_getdpcd(struct radeon_connector *radeon_connector)
|
|
bool radeon_dp_getdpcd(struct radeon_connector *radeon_connector)
|
|
{
|
|
{
|
|
struct radeon_connector_atom_dig *dig_connector = radeon_connector->con_priv;
|
|
struct radeon_connector_atom_dig *dig_connector = radeon_connector->con_priv;
|
|
@@ -543,6 +560,9 @@ bool radeon_dp_getdpcd(struct radeon_connector *radeon_connector)
|
|
for (i = 0; i < 8; i++)
|
|
for (i = 0; i < 8; i++)
|
|
DRM_DEBUG_KMS("%02x ", msg[i]);
|
|
DRM_DEBUG_KMS("%02x ", msg[i]);
|
|
DRM_DEBUG_KMS("\n");
|
|
DRM_DEBUG_KMS("\n");
|
|
|
|
+
|
|
|
|
+ radeon_dp_probe_oui(radeon_connector);
|
|
|
|
+
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|
|
dig_connector->dpcd[0] = 0;
|
|
dig_connector->dpcd[0] = 0;
|