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.

[参考译文] TDA4VH-Q1:DP 到 HDMI 不工作

Guru**** 2409290 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1488074/tda4vh-q1-dp-to-hdmi-not-work

器件型号:TDA4VH-Q1
主题中讨论的其他器件:SN65DSI86PCM3168ATDA4VL

工具与软件:

SDK:ti-processor-sdk-linux-adas-j784s4-evm-10_00_00_08

在我的 uEnv.txt 中、我删除最后一行(#name_overles=ti/k3-j784s4-evm-ethfw.dtbo ti/k3-j784s4-vision-apps.dtbo)

我交叉编译了 恒温器演示、并将其放置到 j784s4_evm、当我们使用 DP0到 DP0电缆时、  我们能够获得显示、但当我们使用有源 DP 到 HDMI 转换器时、它无法正常工作。

当我插入 DP 转 HDMI 适配器时、内核显示:

root@j784s4-evm:~# [   64.367398] cdns-mhdp8546 a000000.bridge: Failed to read receiver capabilities
[   64.406376] cdns-mhdp8546 a000000.bridge: get block[0] edid failed: -22
[   64.880566] cdns-mhdp8546 a000000.bridge: Failed to read receiver capabilities
[   64.880617] Console: switching to colour frame buffer device 80x30
[   64.880752] Unable to handle kernel NULL pointer dereference at virtual address 0000000000000170
[   64.880755] Mem abort info:
[   64.880757]   ESR = 0x0000000096000006
[   64.880759]   EC = 0x25: DABT (current EL), IL = 32 bits
[   64.880762]   SET = 0, FnV = 0
[   64.880764]   EA = 0, S1PTW = 0
[   64.880766]   FSC = 0x06: level 2 translation fault
[   64.880769] Data abort info:
[   64.880770]   ISV = 0, ISS = 0x00000006, ISS2 = 0x00000000
[   64.880772]   CM = 0, WnR = 0, TnD = 0, TagAccess = 0
[   64.880774]   GCS = 0, Overlay = 0, DirtyBit = 0, Xs = 0
[   64.880777] user pgtable: 4k pages, 48-bit VAs, pgdp=0000000892f34000
[   64.880781] [0000000000000170] pgd=0800000892d67003, p4d=0800000892d67003, pud=0800000892d62003, pmd=0000000000000000
[   64.880790] Internal error: Oops: 0000000096000006 [#1] PREEMPT SMP
[   64.880794] Modules linked in: overlay bluetooth cfg80211 ecdh_generic ecc rfkill rpmsg_ctrl rpmsg_char panel_edp ti_am335x_adc cdns3 kfifo_buf cdns_usb_common cdns_pltfrm wave5 videobuf2_dma_contig videobuf2_memops v4l2_mem2mem crct10dif_ce snd_soc_j721e_evm videobuf2_v4l2 mux_gpio display_connector videobuf2_common videodev phy_can_transceiver ti_k3_r5_remoteproc mc m_can_platform at24 cdns_dsi cdns_mhdp8546 ti_sn65dsi86 ti_am335x_tscadc m_can tidss ti_k3_dsp_remoteproc snd_soc_davinci_mcasp cdns_dphy pvrsrvkm(O) k3_j72xx_bandgap drm_display_helper can_dev sa2ul ti_j721e_ufs snd_soc_ti_udma drm_dma_helper cdns3_ti snd_soc_ti_edma drm_dp_aux_bus authenc snd_soc_ti_sdma drm_kms_helper snd_soc_pcm3168a_i2c snd_soc_pcm3168a rti_wdt cryptodev(O) fuse drm drm_panel_orientation_quirks backlight ipv6
[   64.880916] CPU: 0 PID: 9 Comm: kworker/0:1 Tainted: G           O       6.6.32-ti-gdb8871293143-dirty #1
[   64.880921] Hardware name: Texas Instruments J784S4 EVM (DT)
[   64.880924] Workqueue: events cdns_mhdp_modeset_retry_fn [cdns_mhdp8546]
[   64.880947] pstate: 60000005 (nZCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[   64.880952] pc : mutex_lock+0x20/0x54
[   64.880968] lr : cdns_mhdp_modeset_retry_fn+0x24/0x54 [cdns_mhdp8546]
[   64.880976] sp : ffff800081493da0
[   64.880977] x29: ffff800081493da0 x28: 0000000000000000 x27: 0000000000000000
[   64.880983] x26: ffff000f0bf0cb28 x25: ffff000800047700 x24: ffff000800010005
[   64.880989] x23: ffff00080e46dcb0 x22: ffff000f0bf0cb00 x21: ffff000800010000
[   64.880994] x20: ffff00080e46d0f8 x19: ffff00080e46d080 x18: ffff00080e410280
[   64.881000] x17: 004800000000020d x16: 01ec01ea020d01e0 x15: ffff8000795a6000
[   64.881005] x14: 0000000000000000 x13: 00000000000001a5 x12: 0000000000000002
[   64.881010] x11: 0000000000000000 x10: 00000000000009b0 x9 : ffff800081493d20
[   64.881015] x8 : ffff000800168a10 x7 : ffff000800047740 x6 : 0000000000000018
[   64.881020] x5 : 000073746e657665 x4 : 0000000000000000 x3 : 0000000000000000
[   64.881025] x2 : ffff000800168000 x1 : ffff8000797eb124 x0 : 0000000000000170
[   64.881031] Call trace:
[   64.881033]  mutex_lock+0x20/0x54
[   64.881038]  process_one_work+0x138/0x248
[   64.881047]  worker_thread+0x320/0x438
[   64.881052]  kthread+0x110/0x114
[   64.881056]  ret_from_fork+0x10/0x20
[   64.881063] Code: b5000141 d65f03c0 d2800003 f9800011 (c85ffc01) 
[   64.881067] ---[ end trace 0000000000000000 ]---
[   65.186223] tidss 4a00000.dss: [drm] fb0: tidssdrmfb frame buffer device
  

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

    尊敬的 Bowen:

    遗憾的是、某些有源 DP 到 HDMI 转换器将无法正常工作。

    我们曾将此适配器与类似的处理器 TDA4VL 配合使用过、并且以前也见过它的工作: https://www.amazon.in/gp/product/B019Q652AG/ref=ppx_yo_dt_b_asin_title_o09_s00?ie=UTF8&th = 1 

    此致。

    Takuma

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

    你好、 Takuma、

    我将另一个 活动的 DP 更改为 HDMI 转换器、  就可以识别到器件、  

    root@j784s4-evm:~# [   21.741882] Console: switching to colour frame buffer device 240x67
    [   21.765053] tidss 4a00000.dss: [drm] fb0: tidssdrmfb frame buffer device

    我使用 ThermostatDemo、显示器工作正常。但当我使用 vision_apps、时、会出现错误

    root@j784s4-evm:~# cd /opt/vision_apps/
    root@j784s4-evm:/opt/vision_apps# source ./vision_apps_init.sh
    root@j784s4-evm:/opt/vision_apps#      0.000000 s: APP_LOG: ERROR: Unable to map memory @ 0xaf000000 of size 262144 bytes !!!
    APP_LOG: ERROR: Unable to map memory @ 0xb1000000 of size 3288576 bytes !!!
    ^C
    

    在 uEnv.txt 中、我删除了最后一行(#name_overles=ti/k3-j784s4-evm-ethfw.dtbo ti/k3-j784s4-vision-apps.dtbo)、如果我没有删除此行、 source ./vision_apps_init.sh 的 命令运行良好、但 display 无法正常运行、modetest 命令也无法正确运行:

    root@j784s4-evm:~# modetest -M tidss
    failed to open device 'tidss': No such file or directory

    这是怎么一回事?

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

    尊敬的 Bowen:

    这些问题是由于存在 两种不同的显示驱动程序造成的:

    • 托管在 A72上的 Linux 显示驱动程序、供 modetest、wayland/Weston 和其他基于 Linux 的应用程序使用
    • R5F 上托管的 RTOS 显示驱动程序、供视觉应用使用

    出现"ERROR:无法映射内存"是因为远程内核的存储器映射是在 k3-j784s4-vision-apps.dtbo 中定义的。

    出现"无法打开器件'tidss'"问题的原因是 k3-j784s4-vision-apps.dtbo 还禁用了 Linux 显示驱动程序、以便为 RTOS/VISION 应用提供管理显示的电源。

    您必须选择是使用 RTOS 驱动程序(这将禁用 Linux 的显示输出)还是使用 Linux 驱动程序(这将禁用 RTOS 的显示输出)。

    此致、

    Takuma