This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] SK-AM62P-LP:自定义 MIPI DSI 驱动程序无法初始化

Guru**** 2576195 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1569813/sk-am62p-lp-custom-mipi-dsi-driver-fail-to-initialise

器件型号:SK-AM62P-LP


工具/软件:

我们的 Raspberry PI 面板与 k3-am62p5-SK-DSI-RPI-7inch-panel.dtso 正常工作  

我们尝试使用另一个 ilitek 驱动程序启动另一个面板、因此我们使用以下文件作为参考、对面板时序和驱动程序初始化命令进行少量修改。

k3-am62p5-sk-microtips-mf070zima-lcd3.dtso 和 panel-ilitek-ili9881c.c  

新驱动程序能够成功 探测、但在启动日志中显示此错误消息“tidss 30220000.dss:[DRM]找不到任何 CRTC 或大小“

我们观察到显示驱动程序初始化命令也没有被触发。

可能的原因是什么?

谢谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    请分享您的 DTS 并完成 dmesg 日志。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、这是 Dtso

    e2e.ti.com/.../k3_2D00_msi_2D00_display_2D00_backup.txt

    这是日志

    e2e.ti.com/.../log_2D00_26Sept.log

    某些与 “tidss 30220000.dss:[DRM]找不到任何 CRTC 或大小“相关的代码跟踪

    我们发现上述 msg 来自 函数__DRM_fb_helper_find_sizes() 中的\ti-processor-sdk-linux-rt-am62pxx-evm-11.0009.04\board-support\ti\linux-kernel-6.12.17+git-ti-rt\drivers\gpu\drm\drm_fb_helper.c  

    我们添加了一些日志、发现消息是由于 CRTC_COUNT = 0 而打印的、因为 desired_mode 为 NULL。

    ......

    bool lastv = true、lasth = true;

    desired_mode = mode_set->mode;
    printk(“\nKHL-D1\n")“);
    if(!desired_mode)
    继续;

    CRCT_COUNT_+;
    printk(“\nKHL-D2\n")“);
    x = mode_set->x;
    y = mode_set->y;

    我们还检查了面板的驱动程序 ili9805_get_modes () 是否也被调用并使用 hdisplay 一个有效的 480 值来验证 DRM_MODE 是否实际传递到 DRM 内核。

    还可以看到驱动程序“panel_msi_ili9805"也“也列在 lsmod 下。

    谢谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您是否曾对 DSS/DSI 驱动程序源代码进行过任何更改?
    以下的输出是什么:
    CAT /sys/kernel/debug/devices_deferred

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

    下面说明了我如何编写 DSI 驱动器

    1) 使用 ti-processor-sdk-linux-rt-am62pxx-evm-11.0009.04\board-support\ti\linux-kernel-6.12.17+git-ti-rt\drivers\gpu\drm\panel\panel-ilitek-ili9881c.c 的副本

    2) 根据 \ti\processor-sdk-linux-rt-am62pxx-evm-11.0009.04\board-support\ti\linux-kernel-6.12.17+git-ti-rt\drivers\gpu\drm\panel-ilitek-ili9805.c、将初始化命令序列相关语法从 (1) 中修改了

    3) 卸下调节器和背光相关。

    已连接 DSI 驱动器代码。

    e2e.ti.com/.../panel_2D00_msi_2D00_ili9805.c

    至于“cat /sys/kernel/debug/devices_deferred “、控制台上不会显示任何内容。

    谢谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、
    从广义上讲、我无法看到您的设置存在任何问题、因此需要进行更深入的调试。
    在深入探讨之前、  
    1.由于您修改了 illi9881x.c、您还可以分享您的 git diff 吗?
    2.共享您的整个显示屏设置,即为 DSS0 和 DSS1 的两个 VP 配置的内容。
      我也看到 DSS0 同样的错误、您是否修改了 tidss 驱动程序文件中的任何内容?
    3.共享以下输出:

    modetest -M tidss
    kmsxxtest --device=/dev/dri/by-path/platform-30200000.dss-card  #what do you see on connected panel?
    kmsxxtest --device=/dev/dri/by-path/platform-30220000.dss-card  #what do you see on connected panel?

    启用这么多标志的原因是什么: .MODE_FLAGS = MIPI_DSI_MODE_VIDEO_HSE | MIPI_DSI_MODE_VIDEO |
    MIPI_DSI_CLOCK_NON_CONTINUE | MIPI_DSI_MODE_LPM |
    MIPI_DSI_MODE_VIDEO_SYNC_PULSE | MIPI_DSI_MODE_NO_EOT_PACKET、?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

    1.我们没有使用存储库工具进行此活动,我无法生成 git diff,我们所做的是使用 notepad++进行文件比较。

    2.我们 通过柔性电缆使用 am62LP EVM、使 EVM 上的引脚分配与 ilitek9805 驱动器面板相匹配。 该面板是经确认可在其他平台上运行的 DSI 2 通道面板。

    不会对 tidss 驱动程序进行任何更改、我们也没有对 DSS 进行任何特殊配置

    我们做到了:

    a) 将 9881c.c 的副本复制并重命名为 msi-ilitek9805.c、然后进行 9805 特定更改。

    b) 在 “Compatible(兼容)“字段中进行一行更改、复制并重命名 k3-am62p5-sk-microtips-mf070zima-lcd3.dtso、以匹配新的面板驱动程序。

    b) 修改了 Kconfig、复制“CONFIG DRM_Panel_ILITEK_ILI9881C“部分、将其重命名为 MSI-9805。

    c) 使用= M 为新面板选择添加.config

    3.请查找日志输出

    e2e.ti.com/.../log_2D00_1_2D00_oct.txt

    由于 9805 驱动程序尚未初始化、因此没有回调“.prepare = ili9805_prepare“、这是重置面板和发送初始化命令的地方、因此我怀疑任何图形都是可见的。

    4. 参考 \ti\processor-sdk-linux-rt-am62pxx-evm-11.0009.04\board-support\ti\linux-kernel-6.12.17+git-ti-rt\drivers\gpu\drm\panel-ilitek-ili9805.c 、它会在探测功能中设置这些模式、我们只在初始设置失败后重试。

    谢谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

    首先、是否还配置/连接任何 HDMI/OLDI 显示器?
    对于 n ü`、无法获得 DRM 主权限。 卡已在使用中?` 错误、请先运行:
    systemctl 停止清空
    然后运行 kmstest 并刷新结果。

    DSS0 的误差也相同:
    [ 6.319366] tidss 30200000.dss:[DRM]找不到任何 CRTC 或大小

    如果您的更改仅针对 DSI 面板、则也应该看不到 DSS0 的上述错误。 连接 HDMI/OLDI 时是否看到相同的错误? 如果是、请重新检查您是否意外更改了 tidss 驱动程序。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

    我使用默认 SDK 映像“tisdk-default-image-rt-am62pxx-evm"创建“创建了另一张 SD 卡

    编辑 uEnv.txt 以加载“k3-am62p5-sk-DSI-RPI-7inch-panel.dtbo"</s>“

    仅将 RPI 面板连接到 62p EVM、不可连接其他面板。

    在日志中、 可以看到“tidss 30200000.dss:[DRM]找不到任何 CRTC 或大小“。 是否也为 DSS0 配置默认 SDK 映像?

    我们没有 HDMI/oldi 显示屏、无法测试。

    谢谢。

    e2e.ti.com/.../default_2D00_wic_2D00_rpi.log

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    无法打开日志文件、请将日志粘贴到代码块中

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是否也为 DSS0 配置默认 SDK 映像?

    默认 SDK 启用 HDMI、因为未连接 HDMI、这是预期情况。
    但是,我没有看到“tidss 302. 2. 0000.dss:[DRM]找不到任何 CRTC 或 SIZE“是可见的“错误、如果连接了任何 RPi 面板、则 kmsxxtest 应正常工作。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、
    这似乎是您的驱动程序的问题(或您在其中所做的修改)。:
    >>模式对 DSI-1 无效
    在启动过程中、内核将尝试探测驱动程序、由于某种原因探测器失败、因此 DSS1 没有关联的 CRTC、您会收到该错误。

    您可能需要调试自定义驱动程序、并且由于该驱动程序与您可能正在使用的定制面板相关、因此我们在自定义驱动程序开发中能提供的帮助有限。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

    不管怎样、TI 可以提供一些可能出错的提示、因为 DSS1 会以某种方式标记错误?

    还有一些问题

    1) 从日志,它看起来像错误发生之前的硬件初始化(面板重置,初始化序列等) 可能是面板硬件初始化导致此故障?

    2) 如果这种类型的错误是标志、我们是否可以假定 DSS mipi 通信还不起作用?

    谢谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

    如果这种类型的错误是标志、我们是否可以假定 DSS mipi 通信还不起作用?

    是、未找到模式、因此 DSI 器件尚未在 DRM 中注册。

    您可以尝试以下操作:
    应用以下补丁: /cfs-file/__key/communityserver-discussions-components-files/791/0001_2D00_Enable_2D00_Microtips_2D00_DSI_2D00_panel_2D00_on_2D00_6_5F00_12.patch

    然后使用以下 dtso: k3-am62p5-sk-microtips-mf070zima-lcd3.dtso

    基于 ili9881.c 驱动器、这应该可以在几乎没有实际 DSI 连接的情况下实现 DSI 面板。 将此流程与您的流程进行比较。
    以下日志:
    [ 383.879236] KHL::ili9805_get_modes、mode->hdisplay=480
    模式对 DSI-1 无效

    使您的驱动程序似乎无法找到正确的模式,这样您可能会找到问题所在。