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 to HDMI NOT WORK

Part Number: TDA4VH-Q1
Other Parts Discussed in Thread: SN65DSI86, PCM3168A, TDA4VL

Tool/software:

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

in my uEnv.txt, i delet the last line(#name_overlays=ti/k3-j784s4-evm-ethfw.dtbo ti/k3-j784s4-vision-apps.dtbo)

i cross compile thermostat-demo,and put it to j784s4_evm, when we use DP0 to DP0 Cable we able to get the display, but  when we use active DP to hdmi converter, it is not working.

When I plugged in the dp to hdmi adapter, the kernel showed:

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
  

  • Hi BoWen,

    Unfortunately, some active DP to HDMI converter will not work.

    We have used this adapter with a similar processor, TDA4VL, and have seen it work in the past: https://www.amazon.in/gp/product/B019Q652AG/ref=ppx_yo_dt_b_asin_title_o09_s00?ie=UTF8&th=1 

    Regards.

    Takuma

  • Hi Takuma,

    I change another active DP to HDMI converter, the  device can be identified, 

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

    I use ThermostatDemo,the display work well.But when i use vision_apps,it comes error

    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
    

    in uEnv.txt, i delet the last line(#name_overlays=ti/k3-j784s4-evm-ethfw.dtbo ti/k3-j784s4-vision-apps.dtbo),If I didn't delete this line, the command of source ./vision_apps_init.sh work well, but display can't work, The modetest command also doesn't run correctly:

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

    How would it be correct?

  • Hi BoWen,

    These issues come from the existence of two different display drivers:

    • Linux display driver hosted on A72 used by modetest, wayland/weston, and other Linux-based applications
    • RTOS display driver hosted on R5F used by vision apps

    The "ERROR: Unable to map memory" comes because the memory map for remote cores is defined in k3-j784s4-vision-apps.dtbo.

    The "failed to open device 'tidss'" comes because the k3-j784s4-vision-apps.dtbo also disables Linux display driver to give RTOS/vision apps power to manage the display.

    You must choose whether to use the RTOS driver (which would disable display output from Linux), or the Linux driver (which would disable display output from RTOS).

    Regards,

    Takuma