【问题标题】:DRM/KMS disable connector and crtcDRM/KMS 禁用连接器和 crtc
【发布时间】:2021-12-12 21:01:00
【问题描述】:

我的设备上有 Android。 在 Android 完成加载之前,我正在绘制图片。 我有高 DDR 使用率的问题(平均频率太高), 通过 cat /sys/kernel/debug/clk/measure_only_mccc_clk/clk_measure 检查

我找到了临时解决方案 - 在 Andoid 之前释放 drm 资源。但这对我不利,因为我的图片和 Android 显示之间存在黑屏。

如果我在 Android 之后按时释放资源,我会再次收到我的高 DDR 频率问题。

我检查了 /sys/kernel/debug/dri/0/state 的状态,并找出了 DDR 工作成功和不成功之间的区别。

所以区别:

connector[168]: shared-disp-1
    crtc=(null)

connector[168]: shared-disp-1
    crtc=crtc-6

对于crtc的

crtc[170]: crtc-6
    enable=0
    active=0
    planes_changed=1
    mode_changed=1
    active_changed=1

crtc[170]: crtc-6
    enable=1
    active=1
    planes_changed=1
    mode_changed=0
    active_changed=0

所以问题是:

  1. 在哪里可以阅读有关在用户空间中使用 drm 的信息?
  2. 如何禁用连接器和 crtc?

【问题讨论】:

    标签: android linux drm


    【解决方案1】:

    所以我找到了在我的情况下禁用 CRTC 的方法 它只需要在我的程序结束时调用

    bufferId = 0;
    x, y = 0;
    arrayOfConnectors = nullptr;
    numberOfConnectors = 0;
    mode = nullptr;
    drmModeSetCrtc(fd, crtcId, bufferId, x, y, arrayOfConnectors, numberOfConnectors, mode);
    

    【讨论】:

      猜你喜欢
      • 2022-12-12
      • 2020-08-28
      • 2018-05-05
      • 2014-10-30
      • 2019-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-27
      相关资源
      最近更新 更多