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.

[参考译文] TDA4VM:我想使用 panel-simple.c 点亮屏幕、但没有来自 DSI 的信号输出。

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1510430/tda4vm-i-want-to-light-up-the-screen-using-panel-simple-c-but-there-is-no-signal-output-from-the-dsi

器件型号:TDA4VM

工具/软件:

您好 TI

我使用的 SDK 版本是 TDA4VM_SDK_10.05。 我想使用文件 psdkla/board-support/ti-linux-kernel-6.6.32+git-ti/drivers/gpu/drm/panel-simple.c 来配置 DSI。

但是、DSI 没有信号输出。panel_simple_DSI_probe 函数也未成功探测。 修改后的 panel-simple.c 如下所示。

e2e.ti.com/.../7418.panel_2D00_simple.c

我只保留".compatible ="Innolux,g101ice-L01"。 在 panel_simple_DSI_probe 函数内打印日志时、我也没有获得任何日志输出。

使用命令 zcat /proc/config.gz | grep CONFIG_DRM_Panel_Simple 时、它会显示 CONFIG_DRM_Panel_simple=m 以下是 dmesg 信息。

e2e.ti.com/.../display_5F00_0507.log

您能帮我弄清楚如何成功探测 panel-simple.c 并使 DSI 实现信号输出吗?

此致、

福国佳

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

    尊敬的 FuGuojia:

    您需要设置器件树以将显示器链接到桥接器、将桥接器链接到 DSI 端口、将 DSI 端口链接到 DSS 端口。  

    这是一个很好的示例、该示例将 Raspberry PI 显示链接到 BeagleBoard 社区的 BeagleBoneAI64板: https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/arch/arm64/boot/dts/ti/k3-j721e-beagleboneai64-dsi-rpi-7inch-panel.dtso?h=ti-linux-6.6.y

    下面是详细说明。

    "port"属性将显示屏链接到网桥:

    		port {
    			panel_in: endpoint {
    				remote-endpoint = <&panel_bridge_out>;
    			};
    		};

    Toshiba、tc358762桥接器连接显示面板和 DSI 端口:

    			port@0 {
    				reg = <0>;
    				panel_bridge_in: endpoint {
    					remote-endpoint = <&dsi0_out>;
    				};
    			};
    
    			port@1 {
    				reg = <1>;
    				panel_bridge_out: endpoint {
    					remote-endpoint = <&panel_in>;
    				};
    			};

    然后、DSI 端口在桥接器和 DSS 端口之间创建链路:

    		port@0 {
    			reg = <0>;
    			dsi0_out: endpoint {
    				remote-endpoint = <&panel_bridge_in>;
    			};
    		};
    
    		port@1 {
    			reg = <1>;
    			dsi0_in: endpoint {
    				remote-endpoint = <&dpi2_out>;
    			};
    		};

    最后、DSS 端口连接到 DSI 端口:

    	port@2 {
    		reg = <2>;
    
    		dpi2_out: endpoint {
    			remote-endpoint = <&dsi0_in>;
    		};
    	};

    但是、根据您之前的 E2E 主题、您的桥接驱动器无法在 https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1502966/tda4vm-sdk-version-is-tda4vm_sdk_10-05-how-to-use-the-psdkla-of-dispc-c-and-dsi-c-to-configure-the-dsi-and-timing-parameters/5802891?tisearch=e2e-sitesearch&keymatch=%2520user%253A638859#5802891端口之间连接 

    这就是为什么没有显示的原因、因为您没有 器件树中的显示流水线来允许 Linux 内核探测显示 。 没有显示管道的原因是您的驾驶员缺少连接不同端口的重要功能。  

    此致、

    Takuma

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

    尊敬的 FuGuojia:

    CONFIG_VIDEO_DS90UB941=m 正常。 "M"表示"模块"、因此驱动程序构建为内核模块、并将在 启动时加载。 "N"或如果注释掉、则表示该功能已禁用。 作为内核模块进行编译不会导致问题。  

    您是否可以添加此修补程序以在探测所有驱动程序期间启用更多日志、然后共享日志?

    e2e.ti.com/.../4456.0001_2D00_Enable_2D00_debug_2D00_logs_2D00_for_2D00_device_2D00_driver_2D00_probing.patch

    上面的修补程序应显示正在探测驱动程序、并且很可能由于某些配置问题而推迟。

    此致、

    Takuma

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

    嗨、 Takuma

    我了解模块 CONFIG_VIDEO_DS90UB941=m 的含义 但是、我希望在电路板通电后直接探测模块、

    这样,我就不需要使用 modprobe 或 insmod 之类的命令进行安装。 因此、我需要 CONFIG_VIDEO_DS90UB941=y

    此外、我根据补丁的要求在 dd.c 文件中添加了调试定义。 该代码的执行日志如下所示:

    e2e.ti.com/.../display_5F00_0509.log

    我发现 DRM 模块中确实存在错误。

    此致、

    福国佳

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

    尊敬的 FuGuojia:

    您的日志有点出乎意料。 似乎没有针对显示流水线的探测尝试。  

    您是否可以运行此命令并共享日志(如果有):

    • 查找/sys/firmware/devicetree/base/__symbols__-iname "*panel*"

    这应该会打印出来。 如果它没有打印出任何内容、则会出现问题。

    此致、

    Takuma

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

    嗨、 Takuma

    我执行了您的命令、发现有日志输出。 结果如下:

    root@j721e-evm:~#查找/sys/firmware/devicetree/base/__symbols__-iname "*panel*"
    /sys/firmware/devicetree/base/__symbols__/panel_in
    /sys/firmware/devicetree/base/__symbols__/panel_bridge_in
    /sys/firmware/devicetree/base/__symbols__/panel_bridge_out
    root@j721e-evm:~#

    此致、

    福国佳

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

    尊敬的 FuGuojia:

    另一个奇怪的日志。 这应该会显示"panel0"符号、因为您的器件树定义了 panel0、如下所示:

    	panel0 {
    		compatible = "simple-panel";
    		backlight = <&dsi941bridge>;
    		power-supply = <&dsi941bridge>;
    		port {
    			panel_in: endpoint {
    				remote-endpoint = <&panel_bridge_out>;
    			};
    		};
    	};

    奇怪的是、日志显示 panel_IN 节点、它是 panel0的子节点、因此 panel0也应该存在。 可能器件树存在问题?

    您能否共享刷写到电路板上的编译后 dtb 文件? 它应该在/boot/dtb/ti.下找到 如果使用默认名称、则应为 k3-j721e-common-proc-board.dtb。

    此致、

    Takuma

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

    嗨、 Takuma

     编译后的 dtb 文件  如下:

    e2e.ti.com/.../k3_2D00_j721e_2D00_common_2D00_proc_2D00_board.log

    不允许将.dtb 文件添加为附件。 我将后缀从.dtb 更改为.log。

    使用时请将其改回.dtb。

     

    此致、

    福国佳

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

    嗨、 Takuma

    我没有看到 tidss 模块的相关日志。 此模块默认是否启用? 还是需要器件树配置?

    在我修改了今天的代码后、有了一些改进。 以下是全球搜索中与941相关的内容:
    root@j721e-evm:~# find /-name *941*
    /run/udev/data /+平台:gpio-regulator-tps659411
    /dev/display941
    /sys/kernel/debug/regmap/1-0016-ds90ub941
    /sys/class/devlink/platform:fixedregulator-vsys3v3 --platform:gpio-regulator-tps659411
    /sys/class/devlink/platform:11c000.pinctrl--platform:gpio-regulator-tps659411
    /sys/class/devlink/platform:600000.gpio--platform:gpio-regulator-tps659411
    /sys/class/display941
    /sys/class/display941/display941
    /sys/devices/platform/gpio-regulator-tps659411
    /sys/devices/platform/bus@10000/600000.GPIO/消费者:platform:gpio-regulator-tps659411
    /sys/devices/platform/bus@10000/11c000.pinctrl/Consumer:platform:gpio-regulator-tps659411
    /sys/devices/platform/fixedregulator-vsys3v3/consumer:platform:gpio-regulator-tps659411
    /sys/devices/virtual/devlink/platform:fixedregulator-vsys3v3 --platform:gpio-regulator-tps659411
    /sys/devices/virtual/devlink/platform:11c000.pinctrl--platform:gpio-regulator-tps659411
    /sys/devices/virtual/devlink/platform:600000.gpio--platform:gpio-regulator-tps659411
    /sys/devices/virtual/display941
    /sys/devices/virtual/display941/display941
    /sys/bus/platform/devices/gpio-regulator-tps659411
    /sys/bus/platform/drivers/gpio-regulator/gpio-regulator-tps659411
    /sys/bus/mipi-dsi/drivers/bridgeds90ub941
    /sys/bus/i2c/drivers/ds90ub941
    /sys/firmware/devicetree/base/gpio-regulator-tps659411
    /sys/firmware/devicetree/base/bus@10000/i2c@2010000/dsi941bridge@0x16
    /sys/firmware/devicetree/base 符号 /dsi941bridge


    我在/sys/bus/mipi-dsi/drivers/bridgeds90ub941中发现有与我的电桥相关的内容、但 DSI 仍然没有时钟输出。

    您能帮助我分析一下吗?

    此致、

    福国佳

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

    尊敬的 FuGuojia:

    [引述 userid="638859" url="~/support/processors-group/processors/f/processors-forum/1510430/tda4vm-i-want-to-light-up-the-screen-using-panel-simple-c-but-there-is-no-signal-output-from-the-dsi/5818379 #5818379"]

    我没有看到 tidss 模块的相关日志。 此模块默认是否启用? 还是需要器件树配置?

    [/报价]

    我之前分享的修补程序应该会启用这些日志。 不更改设备树。  

    您是否可以添加此修补程序以在探测所有驱动程序期间启用更多日志、然后共享日志?

    4456.0001-Enable-debug-logs-for-device-driver-spenting.patch

    [/报价]

    dd.c 是整个 Linux 系统使用的驱动程序。 通过在 dd.c 中启用调试日志、它应该打印来自 tidss、dsi941bridge 和所有其他设备驱动程序的额外日志。

    [引述 userid="638859" url="~/support/processors-group/processors/f/processors-forum/1510430/tda4vm-i-want-to-light-up-the-screen-using-panel-simple-c-but-there-is-no-signal-output-from-the-dsi/5818379 #5818379"]

    您能帮助我分析一下吗?

    [/报价]

    在 dd.c 中启用调试日志将是分析所发生情况的最佳方法。 因为、这使您可以查看所有设备驱动程序存在的探测函数的所有日志。

    对于故障排除、您能否共享"zcat /proc/config.gz > config_file_fuguojia.txt"中的完整日志输出? 我将分享我的信息、我们可以执行比较来查看配置文件中是否存在差异、从而导致补丁程序不显示额外的调试日志。

    e2e.ti.com/.../config_5F00_file_5F00_takuma.txt

    此致、

    Takuma

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

    嗨、 Takuma

    在 dd.c 中启用调试日志将是分析所发生情况的最佳方法。 因为、这使您可以查看所有设备驱动程序存在的探测函数的所有日志。

    对于故障排除、您能否共享"zcat /proc/config.gz > config_file_fuguojia.txt"中的完整日志输出? 我将分享我的信息、我们可以执行比较来查看配置文件中是否存在差异、从而导致补丁程序不显示额外的调试日志。

    [/报价]

    根据要求、我生成了这些文件。  

    e2e.ti.com/.../config_5F00_file_5F00_fuguojia.txt

    在今天的调试过程中,我遇到了调用 ti_bridge_ds90ub941_parse_dt  probe returns 中的函数 -517的问题。 具体日志如下所示:

    root@j721e-evm:~# dmesg | grep dss
    [    9.899316] bus: 'platform': __driver_probe_device: matched device 4a00000.dss with driver tidss
    [    9.899339] bus: 'platform': really_probe: probing driver tidss with device 4a00000.dss
    [    9.967061] tidss 4a00000.dss: Driver tidss requests probe deferral
    [    9.972660] platform 4a00000.dss: Added to deferred list
    [   10.193676] platform 4a00000.dss: Retrying from deferred list
    root@j721e-evm:~# dmesg | grep ub941
    [    9.718624] bus: 'mipi-dsi': __driver_probe_device: matched device 4800000.dsi.0 with driver bridgeds90ub941
    [    9.718632] bus: 'mipi-dsi': really_probe: probing driver bridgeds90ub941 with device 4800000.dsi.0
    [    9.718643] ti_bridge_ds90ub941_probe start
    [    9.787943] ti_bridge_ds90ub941_parse_dt ret = -517
    [   23.559580] mipi-dsi 4800000.dsi.0: deferred probe pending
    [   23.565093] platform 2900000.pcie: deferred probe pending
    [   23.570485] platform 2910000.pcie: deferred probe pending
    [   23.575875] platform 2920000.pcie: deferred probe pending

    以下是所有日志文件:
    e2e.ti.com/.../displaylog0515.txt

    下面是我的 dts 文件和 probe 代码。 我怀疑器件树存在问题。  
    e2e.ti.com/.../ds90ub941bridge.c
    e2e.ti.com/.../5466.k3_2D00_j721e_2D00_common_2D00_proc_2D00_board.dts.txt

    您能帮助我检查我的代码和器件树中是否有错误吗?

    此致、

    福国佳

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

    尊敬的 FuGuojia:

    很高兴看到 dd.c 中显示的额外日志。 正如我所怀疑的那样,这是一个 推迟的调查正在发生。 错误代码-517是探测器延迟、基于此头文件定义了一些错误代码: https://elixir.bootlin.com/linux/v6.10.2/source/include/linux/errno.h

    在探测顺序方面、panel0应该是第一个被探测和绑定的驱动程序、它将依次探测显示驱动程序中的其他驱动程序、直到 tidss、其中 tidss 将是显示流水线中最后一个被探测的驱动程序。

    您可以为面板、简单或 raspberrypi 准备 dmesg 吗?

    此致、

    Takuma

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

    嗨、 Takuma

    [引述 userid="492487" url="~/support/processors-group/processors/f/processors-forum/1510430/tda4vm-i-want-to-light-up-the-screen-using-panel-simple-c-but-there-is-no-signal-output-from-the-dsi/5822111 #5822111"]

    在探测顺序方面、panel0应该是第一个被探测和绑定的驱动程序、它将依次探测显示驱动程序中的其他驱动程序、直到 tidss、其中 tidss 将是显示流水线中最后一个被探测的驱动程序。

    您可以为面板、简单或 raspberrypi 准备 dmesg 吗?

    [/报价]

    grep 结果为:

    root@j721e-evm:~#
    root@j721e-evm:~# dmesg | grep panel
    [ 8.721591] platform panel0:使用/bus@10000/DSI@4800000/桥接@0时的固定依赖周期
    [ 8.739792] mipi-DSI 4800000.DSI.0:带/panel0的固定依赖周期
    root@j721e-evm:~#
    root@j721e-evm:~#
    root@j721e-evm:~# dmesg | grep simple
    [1.966866]总线:"平台":__DRIVER_PROBE_DEVICE:与驱动器 ASOC-simple-card 匹配的设备 sound0
    [1.966869]总线:"平台":really_probe:探测驱动程序 ASOC-simple-card、带有设备 sound0
    [1.966949] ASOC-simple-card sound0:驱动程序 ASOC-simple-card 请求探测延迟
    [ 2.552624]总线:'platform':__driver_probe_device:与驱动程序 ASOC-simple-card 匹配的设备 sound0
    [ 2.552629]总线:"平台":really_probe:具有设备 sound0的探测驱动程序 aSOC-simple-card
    [ 2.552727] ASOC-simple-card sound0:驱动程序 ASOC-simple-card 请求探测延迟
    [ 2.653353]总线:'platform':__driver_probe_device:与驱动程序 ASOC-simple-card 匹配的设备 sound0
    [ 2.653358]总线:"平台":really_probe:具有设备 sound0的探测驱动程序 ASOC-simple-card
    [2.653448] ASOC-simple-card sound0:驱动程序 ASOC-simple-card 请求探测延迟
    [ 8.144892]总线:"平台":__DRIVER_PROBE_DEVICE:与驱动器 ASOC-simple-card 匹配的设备 sound0
    [ 8.144899]总线:"平台":really_probe:具有设备 sound0的探测驱动程序 ASOC-simple-card
    [8.145037] ASOC-simple-card sound0:驱动程序 ASOC-simple-card 请求探测延迟
    [ 8.289120]总线:"平台":__DRIVER_PROBE_DEVICE:与驱动器 ASOC-simple-card 匹配的设备 sound0
    [ 8.289127]总线:"平台":really_probe:具有设备声音0的探测驱动器 ASOC-simple-card
    [8.289513] ASOC-simple-card sound0:驱动程序 ASOC-simple-card 请求探测延迟
    [ 8.579670]总线:"平台":__DRIVER_PROBLE_DEVICE:与驱动器 ASOC-simple-card 匹配的设备 sound0
    [ 8.579682]总线:"平台":really_probe:具有设备 sound0的探测驱动程序 ASOC-simple-card
    [8.579792] ASOC-simple-card sound0:驱动程序 ASOC-simple-card 请求探测延迟
    [ 8.778633]总线:"平台":__DRIVER_PROBE_DEVICE:与驱动器 ASOC-简单卡匹配的设备 sound0
    [ 8.778639]总线:"平台":really_probe:具有设备 sound0的探测驱动程序 ASOC-simple-card
    [8.778762] ASOC-simple-card sound0:驱动程序 ASOC-simple-card 请求探头延迟
    [ 8.956800]总线:"平台":__DRIVER_PROBE_DEVICE:与驱动器 ASOC-simple-card 匹配的设备 sound0
    [ 8.956807]总线:'platform':reall_probe:探测驱动程序 ASOC-simple-card、带有设备 sound0
    [8.956926] ASOC-simple-card sound0:驱动程序 ASOC-simple-card 请求探测延迟
    [ 9.192247]总线:"平台":__DRIVER_PROBE_DEVICE:与驱动器 ASOC-simple-card 匹配的设备 sound0
    [ 9.192255]总线:"平台":really_probe:具有设备 sound0的探测驱动程序 ASOC-simple-card
    [ 9.192457] ASOC-simple-card sound0:驱动程序 ASOC-simple-card 请求探测延迟
    [ 9.354987]总线:"平台":__DRIVER_PROBE_DEVICE:与驱动器 ASOC-simple-card 匹配的设备 sound0
    [ 9.354995]总线:"平台":really_probe:具有设备 sound0的探测驱动程序 ASOC-simple-card
    [ 9.358099]驱动程序:'ASOC-simple-card':driver_bound:绑定到设备'sound0'
    [ 9.358173]总线:"platform":really_probe:将设备 sound0绑定到驱动程序 ASOC-simple-card
    root@j721e-evm:~# dmesg | grep raspberrypi
    root@j721e-evm:~#

    如第0513次会议所述、您将为我提供一个演示、用于验证 DSI 时钟是否具有信号输出。 我是否可以询问何时提供?

    此致、

    福国佳