My project use Hardware: Freescale i.MX8QM MEK
v4l2 capture yuyv data on dma g2d method and render to drm
/unit_tests/SRTC/rtcwakeup.out -d rtc0 -m mem -s 2 to set low power method
q1: if i do not VIDIOC_STREAMOFF,the rtcwakeup can not success,and after rtcwakeup cmd ,the video display will appear sharp white;
q2:if i do VIDIOC_STREAMOFF,and then rtcwakeup,time out,display video;
more than 30 times,it will crash:
Message from syslogd@imx8qmmek at Tue May 26 22:00:05 2020 ...
imx8qmmek kernel: [ 139.110963] Internal error: Oops: 96000004 [#1] PREEMPT SMP
Message from syslogd@imx8qmmek at Tue May 26 22:00:05 2020 ...
imx8qmmek kernel: [ 139.303844] Code: 54fffe81 f94b3661 eb0102bf d10e8020 (f9400022)
########id 1 FPS:25.083612
********id 0 FPS:25.083612
######df_cms recv sigusr1
[ 399.222955] Unable to handle kernel paging request at virtual address dead000000000100
[ 399.230875] Mem abort info:
[ 399.233665] ESR = 0x96000004
[ 399.236724] EC = 0x25: DABT (current EL), IL = 32 bits
[ 399.242038] SET = 0, FnV = 0
[ 399.245087] EA = 0, S1PTW = 0
[ 399.248223] Data abort info:
[ 399.251099] ISV = 0, ISS = 0x00000004
close cam[1] v4l2.fd:9[ 399.254931] CM = 0, WnR = 0
[ 399.259979] [dead000000000100] address between user and kernel address ranges
[ 399.267122] Internal error: Oops: 96000004 [#1] PREEMPT SMP
[ 399.272699] Modules linked in: can_raw can crct10dif_ce flexcan can_dev
[ 399.279330] CPU: 4 PID: 1489 Comm: v4l2_g2d_drm Tainted: G W 5.4.24-2.1.0+gbabac008e5cf #51
[ 399.288986] Hardware name: Freescale i.MX8QM MEK (DT)
[ 399.294035] pstate: 20000085 (nzCv daIf -PAN -UAO)
[ 399.298833] pc : cap_vb2_stop_streaming+0x1a8/0x280
[ 399.303714] lr : cap_vb2_stop_streaming+0x184/0x280
[ 399.308593] sp : ffff80001194ba40
[ 399.311903] x29: ffff80001194ba40 x28: ffff0008f74f9708
[ 399.317220] x27: ffff0008f74f96e8 x26: ffff0008f74f97c0
[ 399.322536] x25: ffff0008f74f9358 x24: dead000000000100
[ 399.327854] x23: dead000000000122 x22: ffff0008f74f9708
[ 399.333170] x21: ffff0008f74f96e8 x20: ffff0008f74f96f8
[ 399.338487] x19: ffff0008f74f8080 x18: 0000000000000000
[ 399.343804] x17: 0000000000000000 x16: 0000000000000000
[ 399.349120] x15: 0000000000000000 x14: 0000000000000000
[ 399.354437] x13: 0000000000000000 x12: 0000000000000000
[ 399.359754] x11: 0000000000000000 x10: 0000000000000000
[ 399.365070] x9 : 0000000000000000 x8 : ffff80001194ba70
[ 399.370387] x7 : ffff0008f3970e00 x6 : ffff0008f74f8998
[ 399.375704] x5 : ffff0008f74f96f8 x4 : dead000000000100
[ 399.381021] x3 : dead000000000122 x2 : ffff0008f74f96f8
[ 399.386337] x1 : dead000000000100 x0 : deacfffffffffd60
[ 399.391654] Call trace:
[ 399.394099] cap_vb2_stop_streaming+0x1a8/0x280
[ 399.398635] __vb2_queue_cancel+0x2c/0x270
[ 399.402734] vb2_core_streamoff+0x20/0xb8
[ 399.406748] vb2_streamoff+0x18/0x60
[ 399.410328] vb2_ioctl_streamoff+0x48/0x54
[ 399.414427] mxc_isi_cap_streamoff+0x58/0x78
[ 399.418703] v4l_streamoff+0x20/0x28
[ 399.422279] __video_do_ioctl+0x17c/0x3e0
[ 399.426294] video_usercopy+0x210/0x5c0
[ 399.430133] video_ioctl2+0x14/0x20
[ 399.433627] v4l2_ioctl+0x3c/0x58
[ 399.436945] do_vfs_ioctl+0x964/0xb48
[ 399.440611] ksys_ioctl+0x78/0xa8
[ 399.443930] __arm64_sys_ioctl+0x1c/0x28
[ 399.447859] el0_svc_common.constprop.0+0x68/0x160
[ 399.452653] el0_svc_handler+0x20/0x80
[ 399.456405] el0_svc+0x8/0xc
[ 399.459295] Code: 54fffe81 f94b3661 eb0102bf d10e8020 (f9400022)
[ 399.465390] ---[ end trace 57ead6c6fc30839a ]---
[ 399.470092] note: v4l2_g2d_drm[1489] exited with preempt_count 1