Skip to content

Intermitent NULL pointer dereference with dwhdmi-rockchip Radxa ZERO 3 #393

@lzace817

Description

@lzace817

I have this weird problem that I can reproduce around 30% of the boot atempts. Most of the time, it works fine, but somethimes I get this:

Starting kernel ...
[   12.146709] Booting Linux on physical CPU 0x0000000000 [0x412fd050]
[   12.146758] Linux version 6.1.115-vendor-rk35xx (build@armbian) (aarch64-linux-gnu-gcc (Ubuntu 13.2.0-23ubuntu4) 13.2.0, GNU ld (GNU Binutils for Ubuntu) 2.42) #1 SMP Thu May  8 06:01:30 UTC 2025
[   12.153366] Machine model: Radxa ZERO 3
...
[   14.405085] calling  rockchip_drm_init+0x0/0x120 @ 1
[   14.406478] rockchip-vop2 fe040000.vop: Adding to iommu group 7
[   14.407172] probe of fe040000.vop returned 0 after 1146 usecs
[   14.410592] probe of fe0a0000.hdmi returned 0 after 817 usecs
[   14.420859] [drm] all windows should be assigned, full plane mask: Cluster0 | Cluster1 | Esmart0 | Esmart1 | Smart0 | Smart1[0x3f], current plane mask: [0x0]
[   14.420912] [drm] use default plane mask
[   14.420982] rockchip-vop2 fe040000.vop: [drm:vop2_bind] vp0 assign plane mask: Cluster0 | Cluster1 | Esmart0 | Esmart1 | Smart0 | Smart1[0x3f], primary plane phy id: Smart0[4]
[   14.421041] rockchip-vop2 fe040000.vop: [drm:vop2_bind] vp1 assign plane mask: [0x0], primary plane phy id: INVALID[-1]
[   14.421081] rockchip-vop2 fe040000.vop: [drm:vop2_bind] vp2 assign plane mask: [0x0], primary plane phy id: INVALID[-1]
[   14.421458] [drm] failed to init overlay plane Cluster0-win1
[   14.421672] rockchip-vop2 fe040000.vop: bin=0
[   14.421786] rockchip-vop2 fe040000.vop: Failed to get leakage
[   14.421867] rockchip-vop2 fe040000.vop: Looking up vop-supply from device tree
[   14.421912] rockchip-vop2 fe040000.vop: Looking up vop-supply property in node /vop@fe040000 failed
[   14.421958] rockchip-vop2 fe040000.vop: Failed to get reg
[   14.422053] rockchip-vop2 fe040000.vop: Looking up vop-supply from device tree
[   14.422098] rockchip-vop2 fe040000.vop: Looking up vop-supply property in node /vop@fe040000 failed
[   14.422135] rockchip-vop2 fe040000.vop: error -ENODEV: _opp_set_regulators: no regulator (vop) found
[   14.422210] rockchip-vop2 fe040000.vop: failed to set opp config
[   14.422234] rockchip-vop2 fe040000.vop: failed to init opp info
[   14.422254] rockchip-vop2 fe040000.vop: Unsupported VOP aclk dvfs
[   14.422308] rockchip-drm display-subsystem: bound fe040000.vop (ops 0xffff8000093b8810)
[   14.422497] dwhdmi-rockchip fe0a0000.hdmi: Looking up avdd-0v9-supply from device tree
[   14.422532] dwhdmi-rockchip fe0a0000.hdmi: Looking up avdd-0v9-supply property in node /hdmi@fe0a0000 failed
[   14.422573] dwhdmi-rockchip fe0a0000.hdmi: Looking up avdd-1v8-supply from device tree
[   14.422603] dwhdmi-rockchip fe0a0000.hdmi: Looking up avdd-1v8-supply property in node /hdmi@fe0a0000 failed
[   14.422923] dwhdmi-rockchip fe0a0000.hdmi: Detected HDMI TX controller v2.11a with HDCP (DWC HDMI 2.0 TX PHY)
[   14.424062] dwhdmi-rockchip fe0a0000.hdmi: registered DesignWare HDMI I2C bus driver
[   14.424435] dwhdmi-rockchip fe0a0000.hdmi: error -ENXIO: IRQ index 1 not found
[   14.425144] rockchip-drm display-subsystem: bound fe0a0000.hdmi (ops 0xffff8000093d1838)
[   14.426970] [drm] Initialized rockchip 4.0.0 20140818 for display-subsystem on minor 0
[   14.427059] rockchip-drm display-subsystem: failed to parse loader memory
[   14.580807] rockchip-vop2 fe040000.vop: [drm:vop2_crtc_atomic_enable] Update mode to 1920x1080p60, type: 11(if:HDMI0, flag:0x0) for vp0 dclk: 148500000
[   14.581246] rockchip-vop2 fe040000.vop: [drm:vop2_crtc_atomic_enable] set dclk_vop0 to 148500000, get 148500000
[   15.806241] dwhdmi-rockchip fe0a0000.hdmi: ddc read failed
[   16.839576] dwhdmi-rockchip fe0a0000.hdmi: ddc read failed
[   17.872906] dwhdmi-rockchip fe0a0000.hdmi: ddc read failed
[   18.906240] dwhdmi-rockchip fe0a0000.hdmi: ddc read failed
[   19.939573] dwhdmi-rockchip fe0a0000.hdmi: ddc read failed
[   20.131398] Unable to handle kernel NULL pointer dereference at virtual address 00000000000003b0
[   20.131415] Mem abort info:
[   20.131418]   ESR = 0x0000000096000004
[   20.131423]   EC = 0x25: DABT (current EL), IL = 32 bits
[   20.131430]   SET = 0, FnV = 0
[   20.131435]   EA = 0, S1PTW = 0
[   20.131439]   FSC = 0x04: level 0 translation fault
[   20.131444] Data abort info:
[   20.131447]   ISV = 0, ISS = 0x00000004
[   20.131451]   CM = 0, WnR = 0
[   20.131455] [00000000000003b0] user address but active_mm is swapper
[   20.131463] Internal error: Oops: 0000000096000004 [#1] SMP
[   20.131473] Modules linked in:
[   20.131485] CPU: 0 PID: 34 Comm: kworker/0:1 Not tainted 6.1.115-vendor-rk35xx #1
[   20.131497] Hardware name: Radxa ZERO 3 (DT)
[   20.131505] Workqueue: hpd_queue repo_hpd_event
[   20.131534] pstate: 60400009 (nZCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[   20.131547] pc : repo_hpd_event+0x9c/0xe4
[   20.131563] lr : repo_hpd_event+0x98/0xe4
[   20.131577] sp : ffff80000aec3da0
[   20.131581] x29: ffff80000aec3da0 x28: 0000000000000000 x27: 0000000000000000
[   20.131598] x26: fffffbffeff88b05 x25: 0000000000000000 x24: 0000000000000000
[   20.131614] x23: 0000000000000001 x22: ffff0000014dacc0 x21: 0000000000000000
[   20.131630] x20: ffff0000014dac48 x19: ffff0000014da080 x18: 000000000000000a
[   20.131646] x17: 0048012902100465 x16: 0441043c04650438 x15: 0438000008980804
[   20.131662] x14: 07d8089807800780 x13: 0000000000000000 x12: 0000000000000004
[   20.131678] x11: 0000000000000001 x10: 0000000000000b00 x9 : ffff80000885a904
[   20.131693] x8 : ffff80000aec3a50 x7 : ffff000000780038 x6 : ffff000000780038
[   20.131709] x5 : ffff80000928ac70 x4 : 0000000000000000 x3 : 0000000000000001
[   20.131724] x2 : 0000000000000000 x1 : ffffffffffffffed x0 : ffff0000087dce80
[   20.131740] Call trace:
[   20.131745]  repo_hpd_event+0x9c/0xe4
[   20.131763]  process_one_work+0x1b8/0x268
[   20.131780]  worker_thread+0x1e8/0x254
[   20.131794]  kthread+0xc0/0xd0
[   20.131807]  ret_from_fork+0x10/0x20
[   20.131822]
[   20.131822] PC: 0xffff80000885a908:
[   20.131828] a708  2a1303e0 a94653f3 f9403bf5 910203ff d50323bf d65f03c0 aa1e03e9 d503201f
[   20.131862] a728  d503233f a9bd7bfd 910003fd a90153f3 aa0003f3 f90013f5 f9447803 f9403475
...
[   20.146098] 3f60  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[   20.146128] 3f80  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[   20.146166] Code: 396eea61 aa1503e0 d63f0040 f9468e75 (394ec2a0)
[   20.146173] ---[ end trace 0000000000000000 ]---
[   20.173512] Console: switching to colour frame buffer device 135x120
[   20.540935] rockchip-drm display-subsystem: [drm] fb0: rockchipdrmfb frame buffer device
[   20.542146] rockchip-drm display-subsystem: [drm] run display error_event monitor
[   20.542965] probe of display-subsystem returned 0 after 6128963 usecs
[   20.544020] initcall rockchip_drm_init+0x0/0x120 returned 0 after 6138909 usecs
[   20.544706] calling  display_connector_driver_init+0x0/0x30 @ 1
[   20.545771] initcall display_connector_driver_init+0x0/0x30 returned 0 after 517 usecs
[   20.546527] calling  sii902x_driver_init+0x0/0x30 @ 1
[   20.547052] initcall sii902x_driver_init+0x0/0x30 returned 0 after 53 usecs
[   20.547689] calling  dw_hdmi_hdcp_driver_init+0x0/0x30 @ 1
[   20.548726] probe of dw-hdmi-hdcp.2.auto returned 0 after 401 usecs
[   20.549332] initcall dw_hdmi_hdcp_driver_init+0x0/0x30 returned 0 after 1142 usecs
[   20.550075] calling  dw_hdcp_qp_hdcp_driver_init+0x0/0x30 @ 1
[   20.550761] initcall dw_hdcp_qp_hdcp_driver_init+0x0/0x30 returned 0 after 154 usecs
[   20.551469] calling  snd_dw_hdmi_driver_init+0x0/0x30 @ 1
[   20.552394] probe of dw-hdmi-i2s-audio.0.auto returned 0 after 308 usecs
[   20.553072] initcall snd_dw_hdmi_driver_init+0x0/0x30 returned 0 after 1101 usecs
[   20.553770] calling  snd_dw_hdmi_qp_driver_init+0x0/0x30 @ 1
[   20.554438] initcall snd_dw_hdmi_qp_driver_init+0x0/0x30 returned 0 after 142 usecs
[   20.555135] calling  dw_hdmi_cec_driver_init+0x0/0x30 @ 1 

I've checked the memory with u-boot mtest

=> mtest 0x00200000 0x7CEE1FFF 0xA5A5A5A5 10

and no erros were found.

What could it be?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions