显示器睡眠后 DisplayPort 链接出现故障?

显示器睡眠后 DisplayPort 链接出现故障?

我刚刚在 Windows 7 64 位计算机上添加了第三台显示器。当该显示器进入睡眠状态时,它不会唤醒。其他两台显示器可以正常唤醒(通过 HDMI 和 DVI 连接)。

我添加的新显示器(华硕 VS278Q-P)通过 DisplayPort 连接。我的显卡是 AMD Radeon HD 5830 卡,具有 DVI、HDMI 和 DisplayPort 连接,使用 Catalyst 15.7 驱动程序版本 15.20.1046

如果我关闭并打开显示器,那么它会收到信号,但是当显示器打开时,该显示器上的所有窗口都会移动到另一个显示器,并且显示有关 DisplayPort 链接故障的错误消息:

在此处输入图片描述

一些论坛认为这与正在进行的 DisplayPort 握手有关。

“通过关闭/打开显示器,您将强制操作系统和/或视频卡重新启动 DP 握手”(来源: https://www.sapphireforum.com/showthread.php?32467-Displayport-monitor-does-not-wake-from-sleep

我应该注意,我的计算机设置为永不休眠,而我的显示器设置为在 X 分钟后休眠。我看到有人在论坛上说,他们认为当计算机设置为休眠时,当计算机唤醒时它会发送 DisplayPort 握手,但如果显示器休眠而计算机不休眠,那么当显示器唤醒时,视频卡将不会发送 DisplayPort 握手。

关于如何解决这个问题有什么想法吗?我能想到的两种解决方法都不太理想:

  1. 每次进入睡眠状态时手动打开/关闭显示器并重新排列窗口
  2. 将监视器设置为永不休眠。

更新

我以为答案是简单地禁用 DDC/CI,正如我在下面回答的那样,但我有点太快就认为这就是答案了。如果显示器进入睡眠状态,那么我可以快速唤醒它,一切都会正常,但如果它睡眠时间超过一分钟,那么它就不会被唤醒。对显示器进行电源循环会出现上面提到的 DisplayPort 链接故障错误。

答案1

我觉得我找到了答案。考虑到我在论坛上看到的死胡同数量,这真是太快了。用户 nixda 在另一个问题上说,关闭 DisplayPort 显示器将完全禁用显示器,说道:

在显示器设置中禁用“DisplayData 通道命令接口”(DDC/CI)。

对于我的华硕 LED 显示器,这意味着进入显示器设置菜单(使用显示器上的物理按钮)-> 系统设置 -> OSD 设置 -> DDC/CI 并将其关闭。

到目前为止似乎有效,如果有变化将会更新。

编辑

我以为上述方法解决了这个问题,因为当显示器进入睡眠状态(电源灯从蓝色变为橙色)时,我可以快速将其唤醒,而不会出现问题。但是,如果显示器睡眠时间更长(比如 1 分钟以上),它就不会被唤醒。我现在认为上述步骤没有必要。

我在戴尔论坛上找到了一篇帖子,它为我找到了解决方案:

这是显卡、显卡驱动程序或操作系统电源管理问题。显示器 DP(DisplayPort)是被动的。它只是等待来自显卡的信号唤醒。通过关闭/打开显示器,您将强制操作系统和/或显卡重新启动 DP 握手。Radeon HD 7790 通过其 PowerTune 技术拥有八种电源管理状态。我猜想该软件中的某个地方能够告诉它调整显卡在电源管理方面所做的工作。(来源: http://en.community.dell.com/support-forums/desktop/f/3515/t/19520244

该帖子的其他地方提到了TriXX 调整实用程序直接链接) 来自 Sapphire Technology(我的显卡制造商)。它有一个设置Disable ULPS(ULPS = 超低功耗状态)。我安装了该实用程序并检查了设置Disable ULPS,果然,当我的显示器进入睡眠状态时,我现在可以将其唤醒。成功了!好吧,当我重新启动计算机时,问题又出现了,打开 TriXX 实用程序,我可以看到复选框Disable ULPS未选中。据我所知,TriXX 实用程序无法使该设置在重新启动之间保持不变(我可能错了)。

进一步挖掘后,我发现有几个论坛讨论禁用 ULPS(主要是为了解决交火问题,例如:如何禁用 ULPS)。在这些论坛中,他们推荐的程序是搜索整个注册表EnableUlps并将每个出现的值从 1 更改为 0(事实上,您会看到确切程序上的几个细微变化,但这就是它的要点)。

对我来说,特别是我需要更改以下键: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\amdkmdag -> EnableUlps HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\amdkmdag -> EnableUlps HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\services\amdkmdag -> EnableUlps

(该EnableUlps设置出现在其他地方,但已设置为 0。另外还有另一个EnableUlps_NA我没有触及的设置)

如果您和我一样,您可能不愿意通过更改注册表来解决似乎应该有现成解决方案的问题。但当您仔细研究后,我认为您会发现目前还没有现成的解决方案(而且它比用电工胶带修改 DisplayPort 电缆(一种经常被建议的解决方案)要好得多)

我对注册表进行了调整,现在即使重新启动后它似乎也能正常工作。

注意:有人说每次更新视频驱动程序时都需要重新进行注册表调整。

答案2

感谢这个帖子 - 它帮助我调试了我自己的问题。

我遇到过一些带有 DP 输入的“杂项中国工业”显示器,它们的行为方式如下 - 并且根据现有信息,这是显示器的故障。

尽管 DP 的初衷是(从南桥到显示矩阵驱动器的单次电跳转),但显示器确实包含一个“AD 板”,使其能够在多个视频输入(VGA、HDMI、DP)中进行选择。显示器内部的“AD 板”驱动 HPD 信号 - 它不是普通的上拉电阻。

根据有限的可用信息,HPD 通常只是一个静态电平(高电平有效)指示,从视频接收器到视频源(从显示器到 PC),视频接收器插入视频源上的特定 Display Port 插槽中。此外,据称显示器可以使用它来“hookflash”HPD 信号 = 向 PC 发送中断脉冲,这是显示器向 PC 请求“AUX 总线事务”的唯一方式(AUX 协议显然是请求-响应、主从,其中 PC 是主设备)。根据我的实际经验,我怀疑这种“中断”功能有多大用处 - 它可能不是必需的。

就我而言,在冷启动(显示器)后,PC 似乎确实可以正常唤醒显示器,但当 PC 进入 S3 睡眠状态(挂起到 RAM)时,显示器会发生一些问题,并且在 PC 唤醒后不会唤醒。更准确地说,从 S3 唤醒后,PC 未检测到连接到 DP 插槽的显示器。原因:显然是因为显示器无法将 HPD 线拉高。有趣的是,如果您在 PC 处于睡眠状态时对显示器进行电源循环,则显示器在 PC 从 S3 睡眠状态唤醒后确实会唤醒。此外,如果将 PC 配置为仅关闭显示器以节省电量(或屏幕背光),但 CPU 和操作系统保持正常运行,则不会出现此问题。因此,这可能是 PC 在“PC 进入 S3 睡眠”序列期间通过 AUX 或 DP 有效负载告诉显示器的“晚安”之类的信息,显示器会通过永久进入睡眠状态来响应。

有趣的是,在我的罪魁祸首显示器中,HPD 信号在显示器电源循环后处于非活动状态,看起来与主机 PC 进入 S3 睡眠状态后的情况几乎相同。但不知何故,PC 在冷启动后唤醒了显示器,并且 HPD 变高。从 S3 唤醒后(之前没有显示器电源循环),HPD 保持低位。好像正在进行一些额外的握手 - 不确定是在有效载荷中、AUX 通道中还是在 HPD 信号本身上(没有用示波器检查过)。无论哪种方式,我怀疑显示器的 AD 板控制器芯片中存在一些固件错误。

我注意到了这场辩论和其他地方的 ULPS 关键字,通常是在 AMD 图形的背景下。我的图形适配器是英特尔 IGP(在这种情况下为第 3 代 = Ivy Bridge)。在一些开放硬件文档中可以找到关于英特尔图形背景下的 ULPS 的罕见说明,这些文档旨在供开源驱动程序编写者使用。在 Windows 环境中用处不大。此外,英特尔的 IGP 驱动程序配置实用程序曾经比现在更好 - 尤其是 IEGD 是一个出色的可调整驱动程序包,但现在我们必须接受可用的功能。我尝试延长注册表中的 DelayedDetectionForDP,但没有效果。而且,在配置实用程序和 VGA 驱动程序属性中没有办法“强制启动端口”。(也没有选项可以禁用对 DDC 的依赖,但 DDC/EDID 可用性似乎是一个单独的问题,与 HPD 输入或 VGA 负载阻抗测量不同。)

最后,我只能焊接 AD 板(显示器内部)。长话短说,幸运的是,DP 插座背面的 18 针脚处有一条整齐的 PCB 走线。我发现一个 10 欧姆电阻与驱动 HPD 信号的栅极输出串联 - 所以我把它移除了。并且,我将一个 1k 上拉电阻连接到附近的电容器(MLCC),以阻挡 +3.3V 待机电压轨。现在,只要显示器插入墙上插座,HPD 线就会始终被拉高。显然,显示器到 PC 中断的理论可能性并不是显示器正常工作的必要条件。我附上一张照片只是为了说明。AD 板黑客照片,将 HPD 信号拉高至 +3.3Vstb不,我不会提及显示器或 AD 板制造商。需要注意的是:您不能只将 HPD 走线短接至 +3.3V 并完成操作 - 在我的情况下,栅极输出(HPD 线路驱动器)在低电平时测量为 30 欧姆。短接至 +3.3V 会烧坏某些东西(如果您只烧坏栅极输出就很幸运了)。这种黑客需要一些预防措施和“诀窍”,这些都属于 electronics.stackexchange.com。更不用说一些基本工具:焊笔、带有尖锐探针的万用表和强力放大镜。(还有一些可以干净地拆焊罂粟籽大小的电阻器的东西……有些人会使用细小的热风,我可能更喜欢老式焊枪,带有由 AWG24 线制成的定制双头环。)

答案3

本来想利用用户的回答,但没有足够的声誉。对我有用的组合是:

  • 在显示器设置中禁用“DisplayData 通道命令接口”(DDC/CI)。
  • DP 热插拔检测 - 在您的显示器设置中始终处于活动状态。

系统:

  • 技嘉 GTX 970
  • HP z27q 5K 显示器(由两根 DP 电缆供电!)。

正常工作的两个 DP 端口(共 3 个)是距离 HDMI 端口最远的端口。

现在我终于在醒来并冷启动后得到了一张照片。现在这花了一段时间......

答案4

我的两台戴尔 P2715Q 显示器也出现了同样的问题,我通过在电源选项中将 PCI Express - 链路状态电源管理设置为关闭来解决这个问题。我有 Windows 10。

我的电脑现在可以进入睡眠模式并毫无问题地唤醒。

相关内容