radeon_hd: auxPin zero is valid, check also on eDP type

EDID is correctly read. It can then be passed to the app_server.
At least the app_server tries to set the native resolution.

It doesn't really help to get further, because the ATOMBios code can't handle newer
table versions (for instance 3.2).

Change-Id: If68828bcfda447ecf7d4432ae2872bbdbc0704d5
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5508
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>
This commit is contained in:
Jérôme Duval 2022-07-28 11:20:49 +02:00 committed by waddlesplash
parent fe2bcea730
commit c34b7168f4
2 changed files with 8 additions and 4 deletions

View File

@ -264,8 +264,10 @@ detect_displays()
continue;
}
if (gConnector[id]->type == VIDEO_CONNECTOR_DP) {
TRACE("%s: connector(%" B_PRIu32 "): Checking DP.\n", __func__, id);
if (gConnector[id]->type == VIDEO_CONNECTOR_DP
|| gConnector[id]->type == VIDEO_CONNECTOR_EDP) {
TRACE("%s: connector(%" B_PRIu32 "): Checking %sDP.\n", __func__, id,
gConnector[id]->type == VIDEO_CONNECTOR_EDP ? "e" : "");
if (gConnector[id]->encoderExternal.valid == true) {
// If this has a valid external encoder (dp bridge)
@ -284,6 +286,8 @@ detect_displays()
if (gDisplay[displayIndex]->attached) {
TRACE("%s: connector(%" B_PRIu32 "): Found DisplayPort EDID!\n",
__func__, id);
gInfo->shared_info->has_edid = true;
edid_dump(edid);
}
}

View File

@ -37,8 +37,8 @@ dp_aux_speak(uint32 connectorIndex, uint8* send, int sendBytes,
uint8* recv, int recvBytes, uint8 delay, uint8* ack)
{
dp_info* dpInfo = &gConnector[connectorIndex]->dpInfo;
if (dpInfo->auxPin == 0) {
ERROR("%s: cannot speak on invalid GPIO pin!\n", __func__);
if (!dpInfo->valid) {
ERROR("%s: cannot speak on invalid dpInfo!\n", __func__);
return B_IO_ERROR;
}