From 518e9cb9f2b69c798cdc0ebfe9fb761dbc88942a Mon Sep 17 00:00:00 2001 From: Alexander von Gluck IV Date: Sat, 14 Oct 2023 10:50:21 -0500 Subject: [PATCH] radeon_hd: Add missing USB C connector type * Solves a few "Unknown connector" errors on newer cards. * It's just another physical name for DisplayPort Change-Id: I37a6f1bb1db66279b305bdbce3c200612eac1130 Reviewed-on: https://review.haiku-os.org/c/haiku/+/7042 Reviewed-by: Alex von Gluck IV Reviewed-by: waddlesplash Tested-by: Commit checker robot --- headers/private/graphics/common/video_configuration.h | 3 ++- src/add-ons/accelerants/common/video_configuration.cpp | 4 +++- src/add-ons/accelerants/radeon_hd/atombios/ObjectID.h | 1 + src/add-ons/accelerants/radeon_hd/connector.cpp | 5 +++-- src/add-ons/accelerants/radeon_hd/connector.h | 10 ++++++---- 5 files changed, 15 insertions(+), 8 deletions(-) diff --git a/headers/private/graphics/common/video_configuration.h b/headers/private/graphics/common/video_configuration.h index e565d97b73..1e5292346b 100644 --- a/headers/private/graphics/common/video_configuration.h +++ b/headers/private/graphics/common/video_configuration.h @@ -1,5 +1,5 @@ /* - * Copyright 2011, Haiku, Inc. All Rights Reserved. + * Copyright 2011-2023, Haiku, Inc. All Rights Reserved. * Distributed under the terms of the MIT License. * * Authors: @@ -28,6 +28,7 @@ #define VIDEO_CONNECTOR_HDMIA 0x0C #define VIDEO_CONNECTOR_HDMIB 0x0D #define VIDEO_CONNECTOR_TV 0x0E +#define VIDEO_CONNECTOR_USBC 0x0F // Video encoder types diff --git a/src/add-ons/accelerants/common/video_configuration.cpp b/src/add-ons/accelerants/common/video_configuration.cpp index a6ed5bd1b9..16e51b7a53 100644 --- a/src/add-ons/accelerants/common/video_configuration.cpp +++ b/src/add-ons/accelerants/common/video_configuration.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2011, Haiku, Inc. All Rights Reserved. + * Copyright 2011-2023, Haiku, Inc. All Rights Reserved. * Distributed under the terms of the MIT License. * * Authors: @@ -45,6 +45,8 @@ get_connector_name(uint32 connector) return "HDMI B"; case VIDEO_CONNECTOR_TV: return "TV"; + case VIDEO_CONNECTOR_USBC: + return "USB C"; case VIDEO_CONNECTOR_UNKNOWN: return "Unknown"; } diff --git a/src/add-ons/accelerants/radeon_hd/atombios/ObjectID.h b/src/add-ons/accelerants/radeon_hd/atombios/ObjectID.h index 5b393622f5..a0f0a17e22 100644 --- a/src/add-ons/accelerants/radeon_hd/atombios/ObjectID.h +++ b/src/add-ons/accelerants/radeon_hd/atombios/ObjectID.h @@ -119,6 +119,7 @@ #define CONNECTOR_OBJECT_ID_eDP 0x14 #define CONNECTOR_OBJECT_ID_MXM 0x15 #define CONNECTOR_OBJECT_ID_LVDS_eDP 0x16 +#define CONNECTOR_OBJECT_ID_USBC 0x17 /* deleted */ diff --git a/src/add-ons/accelerants/radeon_hd/connector.cpp b/src/add-ons/accelerants/radeon_hd/connector.cpp index b9fd2c14dc..4e326d868e 100644 --- a/src/add-ons/accelerants/radeon_hd/connector.cpp +++ b/src/add-ons/accelerants/radeon_hd/connector.cpp @@ -990,9 +990,10 @@ connector_is_dp(uint32 connectorIndex) { connector_info* connector = gConnector[connectorIndex]; - // Traditional DisplayPort connector + // Traditional DisplayPort connector, or DP over USBC if (connector->type == VIDEO_CONNECTOR_DP - || connector->type == VIDEO_CONNECTOR_EDP) { + || connector->type == VIDEO_CONNECTOR_EDP + || connector->type == VIDEO_CONNECTOR_USBC) { return true; } diff --git a/src/add-ons/accelerants/radeon_hd/connector.h b/src/add-ons/accelerants/radeon_hd/connector.h index c5b92cb484..cba37acbb9 100644 --- a/src/add-ons/accelerants/radeon_hd/connector.h +++ b/src/add-ons/accelerants/radeon_hd/connector.h @@ -24,16 +24,17 @@ const int kConnectorConvertLegacy[] = { VIDEO_CONNECTOR_SVIDEO, VIDEO_CONNECTOR_COMPOSITE, VIDEO_CONNECTOR_LVDS, - VIDEO_CONNECTOR_UNKNOWN, - VIDEO_CONNECTOR_UNKNOWN, + VIDEO_CONNECTOR_UNKNOWN, // DIGILink + VIDEO_CONNECTOR_UNKNOWN, // SCART VIDEO_CONNECTOR_HDMIA, VIDEO_CONNECTOR_HDMIB, VIDEO_CONNECTOR_UNKNOWN, VIDEO_CONNECTOR_UNKNOWN, - VIDEO_CONNECTOR_9DIN, - VIDEO_CONNECTOR_DP + VIDEO_CONNECTOR_9DIN, // CASE_1 + VIDEO_CONNECTOR_DP, }; +// ObjectID.h CONNECTOR_OBJECT_ID_... const int kConnectorConvert[] = { VIDEO_CONNECTOR_UNKNOWN, VIDEO_CONNECTOR_DVII, @@ -58,6 +59,7 @@ const int kConnectorConvert[] = { VIDEO_CONNECTOR_EDP, VIDEO_CONNECTOR_UNKNOWN, // MXM VIDEO_CONNECTOR_EDP, // LVDS eDP + VIDEO_CONNECTOR_USBC, };