From a5c9449e98764431918c4fb73fbd4c3a2ab82d68 Mon Sep 17 00:00:00 2001 From: laley Date: Tue, 5 Jul 2022 16:56:20 +0200 Subject: [PATCH] DRM-Enumerator: Raise "failed to get resources" exception only after checked all devices --- screeninfo/enumerators/drm.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/screeninfo/enumerators/drm.py b/screeninfo/enumerators/drm.py index d529618..86c005c 100644 --- a/screeninfo/enumerators/drm.py +++ b/screeninfo/enumerators/drm.py @@ -237,6 +237,7 @@ def get_connector_name(connector: "DrmModeConnector") -> str: prefix = "Unknown" return f"{prefix}-{connector.connector_type_id}" + got_resources = False for card_no in range(DRM_MAX_MINOR): card_path = DRM_DEV_NAME % (DRM_DIR_NAME, card_no) try: @@ -249,7 +250,8 @@ def get_connector_name(connector: "DrmModeConnector") -> str: try: res = libdrm.drmModeGetResources(fd) if not res: - raise ScreenInfoError("Failed to get drm resources") + continue + got_resources = True res = res.contents res.fd = fd @@ -270,3 +272,6 @@ def get_connector_name(connector: "DrmModeConnector") -> str: finally: os.close(fd) + + if not got_resources: + raise ScreenInfoError("Failed to get drm resources")