Something wrong with my imx307 sensor driver

When I run sample program, it looks ok:
~/jetson_multimedia_api/samples/09_camera_jpeg_capture$ ./camera_jpeg_capture
[INFO] (NvEglRenderer.cpp:110) Setting Screen width 640 height 480
PRODUCER: Creating output stream
PRODUCER: Launching consumer thread
CONSUMER: Waiting until producer is connected…
CONSUMER: Waiting until producer is connected…
PRODUCER: Available Sensor modes :
PRODUCER: [0] W=1920 H=1080
PRODUCER: Starting repeat capture requests.
CONSUMER: Producer has connected; continuing.
CONSUMER: Producer has connected; continuing.

But the kernel crashed:
[ 1229.393176] host1x 50000000.host1x: cdma_handle_timeout: timeout: 22 (54680000.isp_0) client 5, HW thresh 0, done 1
[ 1229.404048] host1x 50000000.host1x: cdma_handle_timeout: timeout: 23 (54680000.isp_1) client 5, HW thresh 0, done 1
[ 1229.414883] host1x 50000000.host1x: cdma_handle_timeout: timeout: 25 (54680000.isp_3) client 5, HW thresh 1, done 1
[ 1229.425479] host1x 50000000.host1x: cdma_handle_timeout: timeout: 24 (54680000.isp_2) client 5, HW thresh 7, done 7
[ 1232.720778] mmc0: Timeout waiting for hardware interrupt.
[ 1232.726276] sdhci: =========== REGISTER DUMP (mmc0)===========
[ 1232.732171] sdhci: Sys addr: 0x000000c0 | Version: 0x00000303
[ 1232.738052] sdhci: Blk size: 0x00007200 | Blk cnt: 0x00000000
[ 1232.743936] sdhci: Argument: 0x00c45f98 | Trn mode: 0x0000002b
[ 1232.749818] sdhci: Present: 0x01fb0000 | Host ctl: 0x00000017
[ 1232.755693] sdhci: Power: 0x00000001 | Blk gap: 0x00000000
[ 1232.761568] sdhci: Wake-up: 0x00000000 | Clock: 0x00000007
[ 1232.767443] sdhci: Timeout: 0x0000000e | Int stat: 0x00000003
[ 1232.773317] sdhci: Int enab: 0x02ff100b | Sig enab: 0x02fc100b
[ 1232.779191] sdhci: AC12 err: 0x00000000 | Slot int: 0x00000000
[ 1232.785069] sdhci: Caps: 0x376cd08c | Caps_1: 0x10006f73
[ 1232.790944] sdhci: Cmd: 0x0000193a | Max curr: 0x00000000
[ 1232.796817] sdhci: Host ctl2: 0x0000308b
[ 1232.800789] sdhci: ADMA Err: 0x00000000 | ADMA Ptr: 0x00000000ffefe420
[ 1232.807399] sdhci: ===========================================
[ 1236.304474] Kernel panic - not syncing: Watchdog detected hard LOCKUP on cpu 0
[ 1236.311809] CPU: 3 PID: 0 Comm: swapper/3 Not tainted 4.9.201-tegra #2
[ 1236.318391] Hardware name: NVIDIA Jetson Nano Developer Kit (DT)
[ 1236.324443] Call trace:
[ 1236.326993] [] dump_backtrace+0x0/0x198
[ 1236.332468] [] show_stack+0x24/0x30
[ 1236.337588] [] dump_stack+0xa0/0xc8
[ 1236.342710] [] panic+0x12c/0x2a8
[ 1236.347582] [] watchdog_check_hardlockup_other_cpu+0x11c/0x120
[ 1236.355043] [] watchdog_timer_fn+0x98/0x2c0
[ 1236.360855] [] __hrtimer_run_queues+0xd8/0x360
[ 1236.366922] [] hrtimer_interrupt+0xa8/0x1e0
[ 1236.372744] [] tegra210_timer_isr+0x38/0x48
[ 1236.378552] [] __handle_irq_event_percpu+0x68/0x288
[ 1236.385049] [] handle_irq_event_percpu+0x28/0x60
[ 1236.391288] [] handle_irq_event+0x50/0x80
[ 1236.396924] [] handle_fasteoi_irq+0xd4/0x1c0
[ 1236.402810] [] generic_handle_irq+0x34/0x50
[ 1236.408612] [] __handle_domain_irq+0x68/0xc0
[ 1236.414496] [] gic_handle_irq+0x5c/0xb0
[ 1236.419951] [] el1_irq+0xe8/0x194
[ 1236.424899] [] cpuidle_enter_state+0xb8/0x380
[ 1236.430886] [] cpuidle_enter+0x34/0x48
[ 1236.436253] [] call_cpuidle+0x44/0x70
[ 1236.441532] [] cpu_startup_entry+0x1b0/0x200
[ 1236.447427] [] secondary_start_kernel+0x190/0x1f8
[ 1236.453739] [<0000000084f681a4>] 0x84f681a4
[ 1236.457986] SMP: stopping secondary CPUs
[ 1238.285280] SMP: failed to stop secondary CPUs 0,3
[ 1238.290155] Kernel Offset: disabled
[ 1238.293713] Memory Limit: none
[ 1238.449770] Rebooting in 5 seconds…
[ 1243.459608] SMP: stopping secondary CPUs
[ 1245.286230] SMP: failed to stop secondary CPUs 0,3

If I use the command to pull the stream, it will also fail:
gst-launch-1.0 nvarguscamerasrc sensor-id=0 ! “video/x-raw(memory:NVMM),width=1920,height=1080,framerate=30/1” ! nvvidconv ! nvoverlaysink
Setting pipeline to PAUSED …
Pipeline is live and does not need PREROLL …
Setting pipeline to PLAYING …
New clock: GstSystemClock
GST_ARGUS: Creating output stream
CONSUMER: Waiting until producer is connected…
GST_ARGUS: Available Sensor modes :
GST_ARGUS: 1920 x 1080 FR = 29.999999 fps Duration = 33333334 ; Analog Gain range min 1.000000, max 10.625000; Exposure Range min 13000, max 333333000;

GST_ARGUS: Running with following settings:
Camera index = 0
Camera mode = 0
Output Stream W = 1920 H = 1080
seconds to Run = 0
Frame Rate = 29.999999
GST_ARGUS: Setup Complete, Starting captures for 0 seconds
GST_ARGUS: Starting repeat capture requests.
CONSUMER: Producer has connected; continuing.
nvbuf_utils: dmabuf_fd -1 mapped entry NOT found
nvbuf_utils: Can not get HW buffer from FD… Exiting…
CONSUMER: Done Success

(gst-launch-1.0:8053): GStreamer-CRITICAL **: 15:33:15.999: gst_mini_object_set_qdata: assertion ‘object != NULL’ failed
Got EOS from element “pipeline0”.
Execution ended after 0:00:08.009323981
Setting pipeline to PAUSED …
Setting pipeline to READY …

Can anyone tell me why?Thanks!

Follow below doc the verify the sensor driver implement correct first.

https://docs.nvidia.com/jetson/l4t/index.html#page/Tegra%20Linux%20Driver%20Package%20Development%20Guide/camera_sensor_prog.html#wwpID0E0LF0HA