Linking error using IMX415 camera IMX415-DPHY-MIPI-CSI2

Which system do you use? Android, Ubuntu, OOWOW or others?

Ubuntu

Which version of system do you use? Khadas official images, self built images, or others?

Khadas official images

Please describe your issue below:

TL;DR: I am trying to stream a video from a IMX415 camera on a custom PCB board but I am having issues linking the CSI-2, and DPHY entities. I encounter the two errors Entity type for entity XXX was not initialized! and No link between dphy and sensor.


Full story: I am using the official Khadas image from fenix which includes the device tree source of the IMX415 camera found in rk3588s-khadas-edge2-camera.dtsi. I can confirm that the IMX415 dts is properly parsed using dtc -I fs -O dts /sys/firmware/devicetree/base on the Khadas Edge 2.

I have made a custom PCB to interface between the IMX415 and the Khadas Edge 2. The 4-lane CSI2 connector of the custom PCB is connected to one of the 4-lanes CSI-2 lanes on the Khadas Edge 2. I can read and write to the IMX415 sensor using the I2C link and recognize the IMX415 chip ID through the imx415.c driver probe function. I am also able to see the clock and data signals on the CSI lanes at the right voltage and timings, which seems to prove that the hardware is working on the custom PCB side, and thus (probably) not the source of my current problem.

I can remove and insert the module in the kernel at will using modprobe. Using lsmod tells me that the driver is recognized, and the probe function does not assert any errors. I can see rkisp-statistics, rkcif-mipi-lvds, rkisp0, and rkisp_mainpath using v4l2-ctl --list-devices.

khadas@Khadas:~$ v4l2-ctl --list-devices
rkisp-statistics (platform: rkisp):
	/dev/video31
	/dev/video32

rkcif-mipi-lvds (platform:rkcif):
	/dev/media0
	/dev/media1
	/dev/media2

rkisp0 (platform:rkisp-unite):
	/dev/media3

rkisp_mainpath (platform:rkisp0-vir0):
	/dev/video24
	/dev/video25
	/dev/video26
	/dev/video27
	/dev/video28
	/dev/video29
	/dev/video30

The first device media0 seems to hold the information about the mipi-csi2, cif, and csi2-dphy:

khadas@Khadas:~$ media-ctl -d /dev/media0 -p
Media controller API version 5.10.66

Media device information
------------------------
driver          rkcif
model           rkcif-mipi-lvds
serial          
bus info        
hw revision     0x0
driver version  5.10.66

Device topology
- entity 1: stream_cif_mipi_id0 (1 pad, 8 links)
            type Node subtype V4L flags 0
            device node name /dev/video0
	pad0: Sink
		<- "rockchip-mipi-csi2":1 [ENABLED]
		<- "rockchip-mipi-csi2":2 []
		<- "rockchip-mipi-csi2":3 []
		<- "rockchip-mipi-csi2":4 []
		<- "rockchip-mipi-csi2":5 []
		<- "rockchip-mipi-csi2":6 []
		<- "rockchip-mipi-csi2":7 []
		<- "rockchip-mipi-csi2":8 []

- entity 5: stream_cif_mipi_id1 (1 pad, 8 links)
            type Node subtype V4L flags 0
            device node name /dev/video1
	pad0: Sink
		<- "rockchip-mipi-csi2":1 []
		<- "rockchip-mipi-csi2":2 [ENABLED]
		<- "rockchip-mipi-csi2":3 []
		<- "rockchip-mipi-csi2":4 []
		<- "rockchip-mipi-csi2":5 []
		<- "rockchip-mipi-csi2":6 []
		<- "rockchip-mipi-csi2":7 []
		<- "rockchip-mipi-csi2":8 []

- entity 9: stream_cif_mipi_id2 (1 pad, 8 links)
            type Node subtype V4L flags 0
            device node name /dev/video2
	pad0: Sink
		<- "rockchip-mipi-csi2":1 []
		<- "rockchip-mipi-csi2":2 []
		<- "rockchip-mipi-csi2":3 [ENABLED]
		<- "rockchip-mipi-csi2":4 []
		<- "rockchip-mipi-csi2":5 []
		<- "rockchip-mipi-csi2":6 []
		<- "rockchip-mipi-csi2":7 []
		<- "rockchip-mipi-csi2":8 []

- entity 13: stream_cif_mipi_id3 (1 pad, 8 links)
             type Node subtype V4L flags 0
             device node name /dev/video3
	pad0: Sink
		<- "rockchip-mipi-csi2":1 []
		<- "rockchip-mipi-csi2":2 []
		<- "rockchip-mipi-csi2":3 []
		<- "rockchip-mipi-csi2":4 [ENABLED]
		<- "rockchip-mipi-csi2":5 []
		<- "rockchip-mipi-csi2":6 []
		<- "rockchip-mipi-csi2":7 []
		<- "rockchip-mipi-csi2":8 []

- entity 17: rkcif_scale_ch0 (1 pad, 8 links)
             type Node subtype V4L flags 0
             device node name /dev/video4
	pad0: Sink
		<- "rockchip-mipi-csi2":1 []
		<- "rockchip-mipi-csi2":2 []
		<- "rockchip-mipi-csi2":3 []
		<- "rockchip-mipi-csi2":4 []
		<- "rockchip-mipi-csi2":5 [ENABLED]
		<- "rockchip-mipi-csi2":6 []
		<- "rockchip-mipi-csi2":7 []
		<- "rockchip-mipi-csi2":8 []

- entity 21: rkcif_scale_ch1 (1 pad, 8 links)
             type Node subtype V4L flags 0
             device node name /dev/video5
	pad0: Sink
		<- "rockchip-mipi-csi2":1 []
		<- "rockchip-mipi-csi2":2 []
		<- "rockchip-mipi-csi2":3 []
		<- "rockchip-mipi-csi2":4 []
		<- "rockchip-mipi-csi2":5 []
		<- "rockchip-mipi-csi2":6 [ENABLED]
		<- "rockchip-mipi-csi2":7 []
		<- "rockchip-mipi-csi2":8 []

- entity 25: rkcif_scale_ch2 (1 pad, 8 links)
             type Node subtype V4L flags 0
             device node name /dev/video6
	pad0: Sink
		<- "rockchip-mipi-csi2":1 []
		<- "rockchip-mipi-csi2":2 []
		<- "rockchip-mipi-csi2":3 []
		<- "rockchip-mipi-csi2":4 []
		<- "rockchip-mipi-csi2":5 []
		<- "rockchip-mipi-csi2":6 []
		<- "rockchip-mipi-csi2":7 [ENABLED]
		<- "rockchip-mipi-csi2":8 []

- entity 29: rkcif_scale_ch3 (1 pad, 8 links)
             type Node subtype V4L flags 0
             device node name /dev/video7
	pad0: Sink
		<- "rockchip-mipi-csi2":1 []
		<- "rockchip-mipi-csi2":2 []
		<- "rockchip-mipi-csi2":3 []
		<- "rockchip-mipi-csi2":4 []
		<- "rockchip-mipi-csi2":5 []
		<- "rockchip-mipi-csi2":6 []
		<- "rockchip-mipi-csi2":7 []
		<- "rockchip-mipi-csi2":8 [ENABLED]

- entity 33: rockchip-mipi-csi2 (9 pads, 65 links)
             type V4L2 subdev subtype Unknown flags 0
             device node name /dev/v4l-subdev0
	pad0: Sink
		<- "rockchip-csi2-dphy0":1 [ENABLED]
	pad1: Source
		-> "stream_cif_mipi_id0":0 [ENABLED]
		-> "stream_cif_mipi_id1":0 []
		-> "stream_cif_mipi_id2":0 []
		-> "stream_cif_mipi_id3":0 []
		-> "rkcif_scale_ch0":0 []
		-> "rkcif_scale_ch1":0 []
		-> "rkcif_scale_ch2":0 []
		-> "rkcif_scale_ch3":0 []
	pad2: Source
		-> "stream_cif_mipi_id0":0 []
		-> "stream_cif_mipi_id1":0 [ENABLED]
		-> "stream_cif_mipi_id2":0 []
		-> "stream_cif_mipi_id3":0 []
		-> "rkcif_scale_ch0":0 []
		-> "rkcif_scale_ch1":0 []
		-> "rkcif_scale_ch2":0 []
		-> "rkcif_scale_ch3":0 []
	pad3: Source
		-> "stream_cif_mipi_id0":0 []
		-> "stream_cif_mipi_id1":0 []
		-> "stream_cif_mipi_id2":0 [ENABLED]
		-> "stream_cif_mipi_id3":0 []
		-> "rkcif_scale_ch0":0 []
		-> "rkcif_scale_ch1":0 []
		-> "rkcif_scale_ch2":0 []
		-> "rkcif_scale_ch3":0 []
	pad4: Source
		-> "stream_cif_mipi_id0":0 []
		-> "stream_cif_mipi_id1":0 []
		-> "stream_cif_mipi_id2":0 []
		-> "stream_cif_mipi_id3":0 [ENABLED]
		-> "rkcif_scale_ch0":0 []
		-> "rkcif_scale_ch1":0 []
		-> "rkcif_scale_ch2":0 []
		-> "rkcif_scale_ch3":0 []
	pad5: Source
		-> "stream_cif_mipi_id0":0 []
		-> "stream_cif_mipi_id1":0 []
		-> "stream_cif_mipi_id2":0 []
		-> "stream_cif_mipi_id3":0 []
		-> "rkcif_scale_ch0":0 [ENABLED]
		-> "rkcif_scale_ch1":0 []
		-> "rkcif_scale_ch2":0 []
		-> "rkcif_scale_ch3":0 []
	pad6: Source
		-> "stream_cif_mipi_id0":0 []
		-> "stream_cif_mipi_id1":0 []
		-> "stream_cif_mipi_id2":0 []
		-> "stream_cif_mipi_id3":0 []
		-> "rkcif_scale_ch0":0 []
		-> "rkcif_scale_ch1":0 [ENABLED]
		-> "rkcif_scale_ch2":0 []
		-> "rkcif_scale_ch3":0 []
	pad7: Source
		-> "stream_cif_mipi_id0":0 []
		-> "stream_cif_mipi_id1":0 []
		-> "stream_cif_mipi_id2":0 []
		-> "stream_cif_mipi_id3":0 []
		-> "rkcif_scale_ch0":0 []
		-> "rkcif_scale_ch1":0 []
		-> "rkcif_scale_ch2":0 [ENABLED]
		-> "rkcif_scale_ch3":0 []
	pad8: Source
		-> "stream_cif_mipi_id0":0 []
		-> "stream_cif_mipi_id1":0 []
		-> "stream_cif_mipi_id2":0 []
		-> "stream_cif_mipi_id3":0 []
		-> "rkcif_scale_ch0":0 []
		-> "rkcif_scale_ch1":0 []
		-> "rkcif_scale_ch2":0 []
		-> "rkcif_scale_ch3":0 [ENABLED]

- entity 43: rockchip-csi2-dphy0 (2 pads, 1 link)
             type V4L2 subdev subtype Unknown flags 0
             device node name /dev/v4l-subdev1
	pad0: Sink
	pad1: Source
		-> "rockchip-mipi-csi2":0 [ENABLED]

It is possible to see that entity 43 that represents DPHY0 is correctly linked to the MIPI-CSI2, but has no link to the sensor. It’s sink pad0 is NULL.

media3 seems to hold information about the rkisp block, but again the link seems to be missing between the isp-subdev and the IMX415 → DPHY → CSI-2 link.

khadas@Khadas:~$ media-ctl -d /dev/media3 -p
Media controller API version 5.10.66

Media device information
------------------------
driver          rkisp-unite
model           rkisp0
serial          
bus info        
hw revision     0x0
driver version  5.10.66

Device topology
- entity 1: rkisp-isp-subdev (4 pads, 9 links)
            type V4L2 subdev subtype Unknown flags 0
            device node name /dev/v4l-subdev5
	pad0: Sink
		[fmt:SBGGR10_1X10/800x600 field:none
		 crop.bounds:(0,0)/800x600
		 crop:(0,0)/800x600]
		<- "rkisp_rawrd0_m":0 []
		<- "rkisp_rawrd2_s":0 []
		<- "rkisp_rawrd1_l":0 []
	pad1: Sink
		<- "rkisp-input-params":0 [ENABLED]
	pad2: Source
		[fmt:YUYV8_2X8/800x600 field:none colorspace:smpte170m quantization:full-range
		 crop.bounds:(0,0)/800x600
		 crop:(0,0)/800x600]
		-> "rkisp_mainpath":0 [ENABLED]
		-> "rkisp_selfpath":0 [ENABLED]
		-> "rkisp_fbcpath":0 [ENABLED]
		-> "rkisp_iqtool":0 [ENABLED]
	pad3: Source
		-> "rkisp-statistics":0 [ENABLED]

- entity 6: rkisp_mainpath (1 pad, 1 link)
            type Node subtype V4L flags 0
            device node name /dev/video24
	pad0: Sink
		<- "rkisp-isp-subdev":2 [ENABLED]

- entity 12: rkisp_selfpath (1 pad, 1 link)
             type Node subtype V4L flags 0
             device node name /dev/video25
	pad0: Sink
		<- "rkisp-isp-subdev":2 [ENABLED]

- entity 18: rkisp_fbcpath (1 pad, 1 link)
             type Node subtype V4L flags 0
             device node name /dev/video26
	pad0: Sink
		<- "rkisp-isp-subdev":2 [ENABLED]

- entity 24: rkisp_iqtool (1 pad, 1 link)
             type Node subtype V4L flags 0
             device node name /dev/video27
	pad0: Sink
		<- "rkisp-isp-subdev":2 [ENABLED]

- entity 30: rkisp_rawrd0_m (1 pad, 1 link)
             type Node subtype V4L flags 0
             device node name /dev/video28
	pad0: Source
		-> "rkisp-isp-subdev":0 []

- entity 36: rkisp_rawrd2_s (1 pad, 1 link)
             type Node subtype V4L flags 0
             device node name /dev/video29
	pad0: Source
		-> "rkisp-isp-subdev":0 []

- entity 42: rkisp_rawrd1_l (1 pad, 1 link)
             type Node subtype V4L flags 0
             device node name /dev/video30
	pad0: Source
		-> "rkisp-isp-subdev":0 []

- entity 48: rkisp-statistics (1 pad, 1 link)
             type Node subtype V4L flags 0
             device node name /dev/video31
	pad0: Sink
		<- "rkisp-isp-subdev":3 [ENABLED]

- entity 54: rkisp-input-params (1 pad, 1 link)
             type Node subtype V4L flags 0
             device node name /dev/video32
	pad0: Source
		-> "rkisp-isp-subdev":1 [ENABLED]

Do you know what could be done to resolve this issue and properly link the IMX415 to the Khadas Edge 2?

References:

Post a console log of your issue below:

[    6.822267] rkcif rkcif-mipi-lvds: Adding to iommu group 15
[    6.824939] rkcif rkcif-mipi-lvds: rkcif driver version: v00.01.0a
[    6.827652] rkcif rkcif-mipi-lvds: attach to cif hw node
[    6.830272] rkcif rkcif-mipi-lvds: rkcif wait line 0
[    6.864317] rkcif rkcif-mipi-lvds1: Adding to iommu group 15
[    6.866953] rkcif rkcif-mipi-lvds1: rkcif driver version: v00.01.0a
[    6.869629] rkcif rkcif-mipi-lvds1: attach to cif hw node
[    6.872230] rkcif rkcif-mipi-lvds1: rkcif wait line 0
[    6.912251] rkcif rkcif-mipi-lvds2: Adding to iommu group 15
[    6.914878] rkcif rkcif-mipi-lvds2: rkcif driver version: v00.01.0a
[    6.917503] rkcif rkcif-mipi-lvds2: attach to cif hw node
[    6.920049] rkcif rkcif-mipi-lvds2: rkcif wait line 0
[    6.954723] rkcif rkcif-mipi-lvds: Entity type for entity rockchip-mipi-csi2 was not initialized!
[    6.982269] rockchip-mipi-csi2: Async registered subdev
[    6.984863] rockchip-mipi-csi2: probe success, v4l2_dev:rkcif-mipi-lvds!
[    6.987599] rkcif rkcif-mipi-lvds1: Entity type for entity rockchip-mipi-csi2 was not initialized!
[    6.990204] rockchip-mipi-csi2: Async registered subdev
[    6.992783] rockchip-mipi-csi2: probe success, v4l2_dev:rkcif-mipi-lvds1!
[    6.995508] rkcif rkcif-mipi-lvds2: Entity type for entity rockchip-mipi-csi2 was not initialized!
[    6.998119] rockchip-mipi-csi2: Async registered subdev
[    7.000731] rockchip-mipi-csi2: probe success, v4l2_dev:rkcif-mipi-lvds2!
[    8.953887] rkcif rkcif-mipi-lvds: clear unready subdev num: 1
[    8.988858] rkcif-mipi-lvds: rkcif_update_sensor_info: stream[0] get remote terminal sensor failed!
[    8.992940] rkcif-mipi-lvds: Async subdev notifier completed
[    9.000614] rkcif-mipi-lvds: rkcif_update_sensor_info: stream[0] get remote terminal sensor failed!
[    9.002927] rkcif-mipi-lvds: There is not terminal subdev, not synchronized with ISP
[    9.010435] rkcif rkcif-mipi-lvds1: clear unready subdev num: 1
[    9.017596] rkcif-mipi-lvds1: rkcif_update_sensor_info: stream[0] get remote terminal sensor failed!
[    9.025931] rkcif-mipi-lvds1: Async subdev notifier completed
[    9.030660] rkcif-mipi-lvds1: rkcif_update_sensor_info: stream[0] get remote terminal sensor failed!
[    9.033387] rkcif-mipi-lvds1: There is not terminal subdev, not synchronized with ISP
[    9.036037] rkcif rkcif-mipi-lvds2: clear unready subdev num: 1
[    9.038516] rockchip-mipi-csi2: No link between dphy and sensor
[    9.041506] rockchip-mipi-csi2: No link between dphy and sensor
[    9.044401] rkcif-mipi-lvds2: rkcif_update_sensor_info: stream[0] get remote terminal sensor failed!
[    9.047551] rkcif-mipi-lvds2: Async subdev notifier completed
[    9.054995] rockchip-mipi-csi2: No link between dphy and sensor
[    9.057114] rkcif-mipi-lvds2: rkcif_update_sensor_info: stream[0] get remote terminal sensor failed!
[    9.059561] rkcif-mipi-lvds2: There is not terminal subdev, not synchronized with ISP

An when I try to fetch the /dev/videoX using v4l2-ctl or media-ctl, I get logs similar to this one:

[  669.883635] rockchip-csi2-dphy0: No link between dphy and sensor
[  669.886837] rkcif-mipi-lvds: rkcif_update_sensor_info: stream[0] get remote terminal sensor failed!
[  669.890324] stream_cif_mipi_id0: update sensor info failed -19


Hello @KarimLuxolis

Can you capture picture with the command below?

v4l2-ctl -d /dev/video24 --set-fmt-video=width=720,height=480,pixelformat=NV12 --stream-mmap=3 --stream-skip=3 --stream-to=./data0.yuv --stream-count=1 --stream-poll

Hi @numbqq,

Thank you for the quick reply, the command above returns me:

khadas@Khadas:~$ v4l2-ctl -d /dev/video24 --set-fmt-video=width=720,height=480,pixelformat=NV12 --stream-mmap=3 --stream-skip=3 --stream-to=./data0.yuv --stream-count=1 --stream-poll
		VIDIOC_STREAMON returned -1 (Operation not permitted)

The dmesg log is as follows:

[  170.332316] rkisp-unite: check rkisp_mainpath link or isp input

Thank you

Hello @KarimLuxolis

Which camera connector you connected to? CAM1, CAM2 or CAM3? Have you tried to use other connector? What’s the I2C address of you camera ? Have you modified the source code? And please provide the full kernel log.

Hello @numbqq,

I have tried the three different camera ports CAM1, CAM2, CAM3 and they all gave me the same errors. At the moment and for the examples above, I am connected to CAM2.

The I2C address for the device is 0x1A just like in the dts since the pins SLAMODE1 and SLAMODE0 of the imx415 are both driven low. Like I said above, I can successfully read and write the registers of the imx415 via I2C using the driver’s I2C functions imx415_read_reg and imx415_write_reg, as well as with the bash command i2cdetect.

I have modified only slightly the source code for the imx415.c, to print some additional information, and to deactivate the occurrences of the xvclk clock and regulator since I am taking care of the clock and power-supply timings directly on my PCB. My imx415.c source code goes as follows:

// SPDX-License-Identifier: GPL-2.0
/*
 * imx415 driver
 *
 * Copyright (C) 2020 Rockchip Electronics Co., Ltd.
 *
 * V0.0X01.0X00 first version.
 * V0.0X01.0X01
 *  1. fix hdr ae ratio error,
 *     0x3260 should be set 0x01 in normal mode,
 *     should be 0x00 in hdr mode.
 *  2. rhs1 should be 4n+1 when set hdr ae.
 * V0.0X01.0X02
 *  1. shr0 should be greater than (rsh1 + 9).
 *  2. rhs1 should be ceil to 4n + 1.
 * V0.0X01.0X03
 *  1. support 12bit HDR DOL3
 *  2. support HDR/Linear quick switch
 * V0.0X01.0X04
 * 1. support enum format info by aiq
 * V0.0X01.0X05
 * 1. fixed 10bit hdr2/hdr3 frame rate issue
 * V0.0X01.0X06
 * 1. support DOL3 10bit 20fps 1485Mbps
 * 2. fixed linkfreq error
 * V0.0X01.0X07
 * 1. fix set_fmt & ioctl get mode unmatched issue.
 * 2. need to set default vblank when change format.
 * 3. enum all supported mode mbus_code, not just cur_mode.
 */

#define DEBUG
#include <linux/clk.h>
#include <linux/device.h>
#include <linux/delay.h>
#include <linux/gpio/consumer.h>
#include <linux/i2c.h>
#include <linux/module.h>
#include <linux/pm_runtime.h>
#include <linux/regulator/consumer.h>
#include <linux/sysfs.h>
#include <linux/slab.h>
#include <linux/version.h>
#include <linux/rk-camera-module.h>
#include <media/media-entity.h>
#include <media/v4l2-async.h>
#include <media/v4l2-ctrls.h>
#include <media/v4l2-subdev.h>
#include <linux/pinctrl/consumer.h>
#include <linux/rk-preisp.h>
#include "../platform/rockchip/isp/rkisp_tb_helper.h"

#define DRIVER_VERSION			KERNEL_VERSION(0, 0x01, 0x07)

#ifndef V4L2_CID_DIGITAL_GAIN
#define V4L2_CID_DIGITAL_GAIN		V4L2_CID_GAIN
#endif

#define MIPI_FREQ_891M			891000000
#define MIPI_FREQ_446M			446000000
#define MIPI_FREQ_743M			743000000
#define MIPI_FREQ_297M			297000000

#define IMX415_4LANES			4

#define IMX415_MAX_PIXEL_RATE		(MIPI_FREQ_891M / 10 * 2 * IMX415_4LANES)
#define OF_CAMERA_HDR_MODE		"rockchip,camera-hdr-mode"

#define IMX415_XVCLK_FREQ_37M		37125000

/* TODO: Get the real chip id from reg */
#define CHIP_ID					0x00
#define IMX415_REG_CHIP_ID		0x311A

#define IMX415_REG_CTRL_MODE		0x3000
#define IMX415_MODE_SW_STANDBY		BIT(0)
#define IMX415_MODE_STREAMING		0x0

#define IMX415_LF_GAIN_REG_H		0x3091
#define IMX415_LF_GAIN_REG_L		0x3090

#define IMX415_SF1_GAIN_REG_H		0x3093
#define IMX415_SF1_GAIN_REG_L		0x3092

#define IMX415_SF2_GAIN_REG_H		0x3095
#define IMX415_SF2_GAIN_REG_L		0x3094

#define IMX415_LF_EXPO_REG_H		0x3052
#define IMX415_LF_EXPO_REG_M		0x3051
#define IMX415_LF_EXPO_REG_L		0x3050

#define IMX415_SF1_EXPO_REG_H		0x3056
#define IMX415_SF1_EXPO_REG_M		0x3055
#define IMX415_SF1_EXPO_REG_L		0x3054

#define IMX415_SF2_EXPO_REG_H		0x305A
#define IMX415_SF2_EXPO_REG_M		0x3059
#define IMX415_SF2_EXPO_REG_L		0x3058

#define IMX415_RHS1_REG_H		0x3062
#define IMX415_RHS1_REG_M		0x3061
#define IMX415_RHS1_REG_L		0x3060
#define IMX415_RHS1_DEFAULT		0x004D

#define IMX415_RHS2_REG_H		0x3066
#define IMX415_RHS2_REG_M		0x3065
#define IMX415_RHS2_REG_L		0x3064
#define IMX415_RHS2_DEFAULT		0x004D

#define	IMX415_EXPOSURE_MIN		4
#define	IMX415_EXPOSURE_STEP		1
#define IMX415_VTS_MAX			0x7fff

#define IMX415_GAIN_MIN			0x00
#define IMX415_GAIN_MAX			0xf0
#define IMX415_GAIN_STEP		1
#define IMX415_GAIN_DEFAULT		0x00

#define IMX415_FETCH_GAIN_H(VAL)	(((VAL) >> 8) & 0x07)
#define IMX415_FETCH_GAIN_L(VAL)	((VAL) & 0xFF)

#define IMX415_FETCH_EXP_H(VAL)		(((VAL) >> 16) & 0x0F)
#define IMX415_FETCH_EXP_M(VAL)		(((VAL) >> 8) & 0xFF)
#define IMX415_FETCH_EXP_L(VAL)		((VAL) & 0xFF)

#define IMX415_FETCH_RHS1_H(VAL)	(((VAL) >> 16) & 0x0F)
#define IMX415_FETCH_RHS1_M(VAL)	(((VAL) >> 8) & 0xFF)
#define IMX415_FETCH_RHS1_L(VAL)	((VAL) & 0xFF)

#define IMX415_FETCH_VTS_H(VAL)		(((VAL) >> 16) & 0x0F)
#define IMX415_FETCH_VTS_M(VAL)		(((VAL) >> 8) & 0xFF)
#define IMX415_FETCH_VTS_L(VAL)		((VAL) & 0xFF)

#define IMX415_VTS_REG_L		0x3024
#define IMX415_VTS_REG_M		0x3025
#define IMX415_VTS_REG_H		0x3026

#define IMX415_MIRROR_BIT_MASK		BIT(0)
#define IMX415_FLIP_BIT_MASK		BIT(1)
#define IMX415_FLIP_REG			0x3030

#define REG_NULL			0xFFFF

#define IMX415_REG_VALUE_08BIT		1
#define IMX415_REG_VALUE_16BIT		2
#define IMX415_REG_VALUE_24BIT		3

#define IMX415_GROUP_HOLD_REG		0x3001
#define IMX415_GROUP_HOLD_START		0x01
#define IMX415_GROUP_HOLD_END		0x00

/* Basic Readout Lines. Number of necessary readout lines in sensor */
#define BRL_ALL				2228u
#define BRL_BINNING			1115u
/* Readout timing setting of SEF1(DOL2): RHS1 < 2 * BRL and should be 4n + 1 */
#define RHS1_MAX_X2(VAL)		(((VAL) * 2 - 1) / 4 * 4 + 1)
#define SHR1_MIN_X2			9u

/* Readout timing setting of SEF1(DOL3): RHS1 < 3 * BRL and should be 6n + 1 */
#define RHS1_MAX_X3(VAL)		(((VAL) * 3 - 1) / 6 * 6 + 1)
#define SHR1_MIN_X3			13u

#define OF_CAMERA_PINCTRL_STATE_DEFAULT	"rockchip,camera_default"

#define IMX415_NAME			"imx415"

struct regval {
	u16 addr;
	u8 val;
};

struct imx415_mode {
	u32 bus_fmt;
	u32 width;
	u32 height;
	struct v4l2_fract max_fps;
	u32 hts_def;
	u32 vts_def;
	u32 exp_def;
	u32 mipi_freq_idx;
	u32 bpp;
	const struct regval *global_reg_list;
	const struct regval *reg_list;
	u32 hdr_mode;
	u32 vc[PAD_MAX];
};

struct imx415 {
	struct i2c_client	*client;
	struct clk		*xvclk;
	struct gpio_desc	*reset_gpio;
	struct gpio_desc	*power_gpio;

	struct pinctrl		*pinctrl;
	struct pinctrl_state	*pins_default;

	struct v4l2_subdev	subdev;
	struct media_pad	pad;
	struct v4l2_ctrl_handler ctrl_handler;
	struct v4l2_ctrl	*exposure;
	struct v4l2_ctrl	*anal_a_gain;
	struct v4l2_ctrl	*digi_gain;
	struct v4l2_ctrl	*hblank;
	struct v4l2_ctrl	*vblank;
	struct v4l2_ctrl	*pixel_rate;
	struct v4l2_ctrl	*link_freq;
	struct mutex		mutex;
	bool			streaming;
	bool			power_on;
	bool			is_thunderboot;
	bool			is_thunderboot_ng;
	bool			is_first_streamoff;
	const struct imx415_mode *cur_mode;
	u32			module_index;
	u32			cfg_num;
	const char		*module_facing;
	const char		*module_name;
	const char		*len_name;
	u32			cur_vts;
	bool			has_init_exp;
	struct preisp_hdrae_exp_s init_hdrae_exp;
};

#define to_imx415(sd) container_of(sd, struct imx415, subdev)

/*
 * Xclk 37.125Mhz
 */
static __maybe_unused const struct regval imx415_global_12bit_3864x2192_regs[] = {
	{0x3002, 0x00},
	{0x3008, 0x7F},
	{0x300A, 0x5B},
	{0x30C1, 0x00},
	{0x3031, 0x01},
	{0x3032, 0x01},
	{0x30D9, 0x06},
	{0x3116, 0x24},
	{0x3118, 0xC0},
	{0x311E, 0x24},
	{0x32D4, 0x21},
	{0x32EC, 0xA1},
	{0x3452, 0x7F},
	{0x3453, 0x03},
	{0x358A, 0x04},
	{0x35A1, 0x02},
	{0x36BC, 0x0C},
	{0x36CC, 0x53},
	{0x36CD, 0x00},
	{0x36CE, 0x3C},
	{0x36D0, 0x8C},
	{0x36D1, 0x00},
	{0x36D2, 0x71},
	{0x36D4, 0x3C},
	{0x36D6, 0x53},
	{0x36D7, 0x00},
	{0x36D8, 0x71},
	{0x36DA, 0x8C},
	{0x36DB, 0x00},
	{0x3701, 0x03},
	{0x3724, 0x02},
	{0x3726, 0x02},
	{0x3732, 0x02},
	{0x3734, 0x03},
	{0x3736, 0x03},
	{0x3742, 0x03},
	{0x3862, 0xE0},
	{0x38CC, 0x30},
	{0x38CD, 0x2F},
	{0x395C, 0x0C},
	{0x3A42, 0xD1},
	{0x3A4C, 0x77},
	{0x3AE0, 0x02},
	{0x3AEC, 0x0C},
	{0x3B00, 0x2E},
	{0x3B06, 0x29},
	{0x3B98, 0x25},
	{0x3B99, 0x21},
	{0x3B9B, 0x13},
	{0x3B9C, 0x13},
	{0x3B9D, 0x13},
	{0x3B9E, 0x13},
	{0x3BA1, 0x00},
	{0x3BA2, 0x06},
	{0x3BA3, 0x0B},
	{0x3BA4, 0x10},
	{0x3BA5, 0x14},
	{0x3BA6, 0x18},
	{0x3BA7, 0x1A},
	{0x3BA8, 0x1A},
	{0x3BA9, 0x1A},
	{0x3BAC, 0xED},
	{0x3BAD, 0x01},
	{0x3BAE, 0xF6},
	{0x3BAF, 0x02},
	{0x3BB0, 0xA2},
	{0x3BB1, 0x03},
	{0x3BB2, 0xE0},
	{0x3BB3, 0x03},
	{0x3BB4, 0xE0},
	{0x3BB5, 0x03},
	{0x3BB6, 0xE0},
	{0x3BB7, 0x03},
	{0x3BB8, 0xE0},
	{0x3BBA, 0xE0},
	{0x3BBC, 0xDA},
	{0x3BBE, 0x88},
	{0x3BC0, 0x44},
	{0x3BC2, 0x7B},
	{0x3BC4, 0xA2},
	{0x3BC8, 0xBD},
	{0x3BCA, 0xBD},
	{0x4004, 0x48},
	{0x4005, 0x09},
	{REG_NULL, 0x00},
};

static __maybe_unused const struct regval imx415_linear_12bit_3864x2192_891M_regs[] = {
	{0x3020, 0x00},
	{0x3021, 0x00},
	{0x3022, 0x00},
	{0x3024, 0xCA},
	{0x3025, 0x08},
	{0x3028, 0x4C},
	{0x3029, 0x04},
	{0x302C, 0x00},
	{0x302D, 0x00},
	{0x3033, 0x05},
	{0x3050, 0x08},
	{0x3051, 0x00},
	{0x3054, 0x19},
	{0x3058, 0x3E},
	{0x3060, 0x25},
	{0x3064, 0x4A},
	{0x30CF, 0x00},
	{0x3260, 0x01},
	{0x400C, 0x00},
	{0x4018, 0x7F},
	{0x401A, 0x37},
	{0x401C, 0x37},
	{0x401E, 0xF7},
	{0x401F, 0x00},
	{0x4020, 0x3F},
	{0x4022, 0x6F},
	{0x4024, 0x3F},
	{0x4026, 0x5F},
	{0x4028, 0x2F},
	{0x4074, 0x01},
	{REG_NULL, 0x00},
};

static __maybe_unused const struct regval imx415_hdr2_12bit_3864x2192_1782M_regs[] = {
	{0x3020, 0x00},
	{0x3021, 0x00},
	{0x3022, 0x00},
	{0x3024, 0xCA},
	{0x3025, 0x08},
	{0x3028, 0x26},
	{0x3029, 0x02},
	{0x302C, 0x01},
	{0x302D, 0x01},
	{0x3033, 0x04},
	{0x3050, 0x90},
	{0x3051, 0x0D},
	{0x3054, 0x09},
	{0x3058, 0x3E},
	{0x3060, 0x4D},
	{0x3064, 0x4A},
	{0x30CF, 0x01},
	{0x3260, 0x00},
	{0x400C, 0x01},
	{0x4018, 0xB7},
	{0x401A, 0x67},
	{0x401C, 0x6F},
	{0x401E, 0xDF},
	{0x401F, 0x01},
	{0x4020, 0x6F},
	{0x4022, 0xCF},
	{0x4024, 0x6F},
	{0x4026, 0xB7},
	{0x4028, 0x5F},
	{0x4074, 0x00},
	{REG_NULL, 0x00},
};

static __maybe_unused const struct regval imx415_hdr3_12bit_3864x2192_1782M_regs[] = {
	{0x3020, 0x00},
	{0x3021, 0x00},
	{0x3022, 0x00},
	{0x3024, 0x96},
	{0x3025, 0x06},
	{0x3028, 0x26},
	{0x3029, 0x02},
	{0x302C, 0x01},
	{0x302D, 0x02},
	{0x3033, 0x04},
	{0x3050, 0x14},
	{0x3051, 0x01},
	{0x3054, 0x0D},
	{0x3058, 0x26},
	{0x3060, 0x19},
	{0x3064, 0x32},
	{0x30CF, 0x03},
	{0x3260, 0x00},
	{0x400C, 0x01},
	{0x4018, 0xB7},
	{0x401A, 0x67},
	{0x401C, 0x6F},
	{0x401E, 0xDF},
	{0x401F, 0x01},
	{0x4020, 0x6F},
	{0x4022, 0xCF},
	{0x4024, 0x6F},
	{0x4026, 0xB7},
	{0x4028, 0x5F},
	{0x4074, 0x00},
	{REG_NULL, 0x00},
};

static __maybe_unused const struct regval imx415_global_10bit_3864x2192_regs[] = {
	{0x3002, 0x00},
	{0x3008, 0x7F},
	{0x300A, 0x5B},
	{0x3031, 0x00},
	{0x3032, 0x00},
	{0x30C1, 0x00},
	{0x30D9, 0x06},
	{0x3116, 0x24},
	{0x311E, 0x24},
	{0x32D4, 0x21},
	{0x32EC, 0xA1},
	{0x3452, 0x7F},
	{0x3453, 0x03},
	{0x358A, 0x04},
	{0x35A1, 0x02},
	{0x36BC, 0x0C},
	{0x36CC, 0x53},
	{0x36CD, 0x00},
	{0x36CE, 0x3C},
	{0x36D0, 0x8C},
	{0x36D1, 0x00},
	{0x36D2, 0x71},
	{0x36D4, 0x3C},
	{0x36D6, 0x53},
	{0x36D7, 0x00},
	{0x36D8, 0x71},
	{0x36DA, 0x8C},
	{0x36DB, 0x00},
	{0x3701, 0x00},
	{0x3724, 0x02},
	{0x3726, 0x02},
	{0x3732, 0x02},
	{0x3734, 0x03},
	{0x3736, 0x03},
	{0x3742, 0x03},
	{0x3862, 0xE0},
	{0x38CC, 0x30},
	{0x38CD, 0x2F},
	{0x395C, 0x0C},
	{0x3A42, 0xD1},
	{0x3A4C, 0x77},
	{0x3AE0, 0x02},
	{0x3AEC, 0x0C},
	{0x3B00, 0x2E},
	{0x3B06, 0x29},
	{0x3B98, 0x25},
	{0x3B99, 0x21},
	{0x3B9B, 0x13},
	{0x3B9C, 0x13},
	{0x3B9D, 0x13},
	{0x3B9E, 0x13},
	{0x3BA1, 0x00},
	{0x3BA2, 0x06},
	{0x3BA3, 0x0B},
	{0x3BA4, 0x10},
	{0x3BA5, 0x14},
	{0x3BA6, 0x18},
	{0x3BA7, 0x1A},
	{0x3BA8, 0x1A},
	{0x3BA9, 0x1A},
	{0x3BAC, 0xED},
	{0x3BAD, 0x01},
	{0x3BAE, 0xF6},
	{0x3BAF, 0x02},
	{0x3BB0, 0xA2},
	{0x3BB1, 0x03},
	{0x3BB2, 0xE0},
	{0x3BB3, 0x03},
	{0x3BB4, 0xE0},
	{0x3BB5, 0x03},
	{0x3BB6, 0xE0},
	{0x3BB7, 0x03},
	{0x3BB8, 0xE0},
	{0x3BBA, 0xE0},
	{0x3BBC, 0xDA},
	{0x3BBE, 0x88},
	{0x3BC0, 0x44},
	{0x3BC2, 0x7B},
	{0x3BC4, 0xA2},
	{0x3BC8, 0xBD},
	{0x3BCA, 0xBD},
	{0x4004, 0x48},
	{0x4005, 0x09},
	{REG_NULL, 0x00},
};

static __maybe_unused const struct regval imx415_hdr3_10bit_3864x2192_1485M_regs[] = {
	{0x3020, 0x00},
	{0x3021, 0x00},
	{0x3022, 0x00},
	{0x3024, 0xBD},
	{0x3025, 0x06},
	{0x3028, 0x1A},
	{0x3029, 0x02},
	{0x302C, 0x01},
	{0x302D, 0x02},
	{0x3033, 0x08},
	{0x3050, 0x90},
	{0x3051, 0x15},
	{0x3054, 0x0D},
	{0x3058, 0xA4},
	{0x3060, 0x97},
	{0x3064, 0xB6},
	{0x30CF, 0x03},
	{0x3118, 0xA0},
	{0x3260, 0x00},
	{0x400C, 0x01},
	{0x4018, 0xA7},
	{0x401A, 0x57},
	{0x401C, 0x5F},
	{0x401E, 0x97},
	{0x401F, 0x01},
	{0x4020, 0x5F},
	{0x4022, 0xAF},
	{0x4024, 0x5F},
	{0x4026, 0x9F},
	{0x4028, 0x4F},
	{0x4074, 0x00},
	{REG_NULL, 0x00},
};

static __maybe_unused const struct regval imx415_hdr3_10bit_3864x2192_1782M_regs[] = {
	{0x3020, 0x00},
	{0x3021, 0x00},
	{0x3022, 0x00},
	{0x3024, 0xEA},
	{0x3025, 0x07},
	{0x3028, 0xCA},
	{0x3029, 0x01},
	{0x302C, 0x01},
	{0x302D, 0x02},
	{0x3033, 0x04},
	{0x3050, 0x3E},
	{0x3051, 0x01},
	{0x3054, 0x0D},
	{0x3058, 0x9E},
	{0x3060, 0x91},
	{0x3064, 0xC2},
	{0x30CF, 0x03},
	{0x3118, 0xC0},
	{0x3260, 0x00},
	{0x400C, 0x01},
	{0x4018, 0xB7},
	{0x401A, 0x67},
	{0x401C, 0x6F},
	{0x401E, 0xDF},
	{0x401F, 0x01},
	{0x4020, 0x6F},
	{0x4022, 0xCF},
	{0x4024, 0x6F},
	{0x4026, 0xB7},
	{0x4028, 0x5F},
	{0x4074, 0x00},
	{REG_NULL, 0x00},
};

static __maybe_unused const struct regval imx415_hdr2_10bit_3864x2192_1485M_regs[] = {
	{0x3020, 0x00},
	{0x3021, 0x00},
	{0x3022, 0x00},
	{0x3024, 0xFC},
	{0x3025, 0x08},
	{0x3028, 0x1A},
	{0x3029, 0x02},
	{0x302C, 0x01},
	{0x302D, 0x01},
	{0x3033, 0x08},
	{0x3050, 0xA8},
	{0x3051, 0x0D},
	{0x3054, 0x09},
	{0x3058, 0x3E},
	{0x3060, 0x4D},
	{0x3064, 0x4a},
	{0x30CF, 0x01},
	{0x3118, 0xA0},
	{0x3260, 0x00},
	{0x400C, 0x01},
	{0x4018, 0xA7},
	{0x401A, 0x57},
	{0x401C, 0x5F},
	{0x401E, 0x97},
	{0x401F, 0x01},
	{0x4020, 0x5F},
	{0x4022, 0xAF},
	{0x4024, 0x5F},
	{0x4026, 0x9F},
	{0x4028, 0x4F},
	{0x4074, 0x00},
	{REG_NULL, 0x00},
};

static __maybe_unused const struct regval imx415_linear_10bit_3864x2192_891M_regs[] = {
	{0x3020, 0x00},
	{0x3021, 0x00},
	{0x3022, 0x00},
	{0x3024, 0xCA},
	{0x3025, 0x08},
	{0x3028, 0x4C},
	{0x3029, 0x04},
	{0x302C, 0x00},
	{0x302D, 0x00},
	{0x3033, 0x05},
	{0x3050, 0x08},
	{0x3051, 0x00},
	{0x3054, 0x19},
	{0x3058, 0x3E},
	{0x3060, 0x25},
	{0x3064, 0x4a},
	{0x30CF, 0x00},
	{0x3118, 0xC0},
	{0x3260, 0x01},
	{0x400C, 0x00},
	{0x4018, 0x7F},
	{0x401A, 0x37},
	{0x401C, 0x37},
	{0x401E, 0xF7},
	{0x401F, 0x00},
	{0x4020, 0x3F},
	{0x4022, 0x6F},
	{0x4024, 0x3F},
	{0x4026, 0x5F},
	{0x4028, 0x2F},
	{0x4074, 0x01},
	{REG_NULL, 0x00},
};

static __maybe_unused const struct regval imx415_linear_12bit_1932x1096_594M_regs[] = {
	{0x3020, 0x01},
	{0x3021, 0x01},
	{0x3022, 0x01},
	{0x3024, 0x5D},
	{0x3025, 0x0C},
	{0x3028, 0x0E},
	{0x3029, 0x03},
	{0x302C, 0x00},
	{0x302D, 0x00},
	{0x3031, 0x00},
	{0x3033, 0x07},
	{0x3050, 0x08},
	{0x3051, 0x00},
	{0x3054, 0x19},
	{0x3058, 0x3E},
	{0x3060, 0x25},
	{0x3064, 0x4A},
	{0x30CF, 0x00},
	{0x30D9, 0x02},
	{0x30DA, 0x01},
	{0x3118, 0x80},
	{0x3260, 0x01},
	{0x3701, 0x00},
	{0x400C, 0x00},
	{0x4018, 0x67},
	{0x401A, 0x27},
	{0x401C, 0x27},
	{0x401E, 0xB7},
	{0x401F, 0x00},
	{0x4020, 0x2F},
	{0x4022, 0x4F},
	{0x4024, 0x2F},
	{0x4026, 0x47},
	{0x4028, 0x27},
	{0x4074, 0x01},
	{REG_NULL, 0x00},
};

static __maybe_unused const struct regval imx415_hdr2_12bit_1932x1096_891M_regs[] = {
	{0x3020, 0x01},
	{0x3021, 0x01},
	{0x3022, 0x01},
	{0x3024, 0xFC},
	{0x3025, 0x08},
	{0x3028, 0x1A},
	{0x3029, 0x02},
	{0x302C, 0x01},
	{0x302D, 0x01},
	{0x3031, 0x00},
	{0x3033, 0x05},
	{0x3050, 0xB8},
	{0x3051, 0x00},
	{0x3054, 0x09},
	{0x3058, 0x3E},
	{0x3060, 0x25},
	{0x3064, 0x4A},
	{0x30CF, 0x01},
	{0x30D9, 0x02},
	{0x30DA, 0x01},
	{0x3118, 0xC0},
	{0x3260, 0x00},
	{0x3701, 0x00},
	{0x400C, 0x00},
	{0x4018, 0xA7},
	{0x401A, 0x57},
	{0x401C, 0x5F},
	{0x401E, 0x97},
	{0x401F, 0x01},
	{0x4020, 0x5F},
	{0x4022, 0xAF},
	{0x4024, 0x5F},
	{0x4026, 0x9F},
	{0x4028, 0x4F},
	{0x4074, 0x01},
	{REG_NULL, 0x00},
};

/*
 * The width and height must be configured to be
 * the same as the current output resolution of the sensor.
 * The input width of the isp needs to be 16 aligned.
 * The input height of the isp needs to be 8 aligned.
 * If the width or height does not meet the alignment rules,
 * you can configure the cropping parameters with the following function to
 * crop out the appropriate resolution.
 * struct v4l2_subdev_pad_ops {
 *	.get_selection
 * }
 */
static const struct imx415_mode supported_modes[] = {
	/*
	 * frame rate = 1 / (Vtt * 1H) = 1 / (VMAX * 1H)
	 * VMAX >= (PIX_VWIDTH / 2) + 46 = height + 46
	 */
	{
		.bus_fmt = MEDIA_BUS_FMT_SGBRG10_1X10,
		.width = 3864,
		.height = 2192,
		.max_fps = {
			.numerator = 10000,
			.denominator = 300000,
		},
		.exp_def = 0x08ca - 0x08,
		.hts_def = 0x044c * IMX415_4LANES * 2,
		.vts_def = 0x08ca,
		.global_reg_list = imx415_global_10bit_3864x2192_regs,
		.reg_list = imx415_linear_10bit_3864x2192_891M_regs,
		.hdr_mode = NO_HDR,
		.mipi_freq_idx = 1,
		.bpp = 10,
		.vc[PAD0] = V4L2_MBUS_CSI2_CHANNEL_0,
	},
	{
		.bus_fmt = MEDIA_BUS_FMT_SGBRG10_1X10,
		.width = 3864,
		.height = 2192,
		.max_fps = {
			.numerator = 10000,
			.denominator = 300000,
		},
		.exp_def = 0x08fc * 2 - 0x0da8,
		.hts_def = 0x0226 * IMX415_4LANES * 2,
		/*
		 * IMX415 HDR mode T-line is half of Linear mode,
		 * make vts double to workaround.
		 */
		.vts_def = 0x08fc * 2,
		.global_reg_list = imx415_global_10bit_3864x2192_regs,
		.reg_list = imx415_hdr2_10bit_3864x2192_1485M_regs,
		.hdr_mode = HDR_X2,
		.mipi_freq_idx = 2,
		.bpp = 10,
		.vc[PAD0] = V4L2_MBUS_CSI2_CHANNEL_1,
		.vc[PAD1] = V4L2_MBUS_CSI2_CHANNEL_0,//L->csi wr0
		.vc[PAD2] = V4L2_MBUS_CSI2_CHANNEL_1,
		.vc[PAD3] = V4L2_MBUS_CSI2_CHANNEL_1,//M->csi wr2
	},
	{
		.bus_fmt = MEDIA_BUS_FMT_SGBRG10_1X10,
		.width = 3864,
		.height = 2192,
		.max_fps = {
			.numerator = 10000,
			.denominator = 200000,
		},
		.exp_def = 0x13e,
		.hts_def = 0x021A * IMX415_4LANES * 2,
		/*
		 * IMX415 HDR mode T-line is half of Linear mode,
		 * make vts double to workaround.
		 */
		.vts_def = 0x06BD * 4,
		.global_reg_list = imx415_global_10bit_3864x2192_regs,
		.reg_list = imx415_hdr3_10bit_3864x2192_1485M_regs,
		.hdr_mode = HDR_X3,
		.mipi_freq_idx = 2,
		.bpp = 10,
		.vc[PAD0] = V4L2_MBUS_CSI2_CHANNEL_2,
		.vc[PAD1] = V4L2_MBUS_CSI2_CHANNEL_1,//M->csi wr0
		.vc[PAD2] = V4L2_MBUS_CSI2_CHANNEL_0,//L->csi wr0
		.vc[PAD3] = V4L2_MBUS_CSI2_CHANNEL_2,//S->csi wr2
	},
	{
		.bus_fmt = MEDIA_BUS_FMT_SGBRG10_1X10,
		.width = 3864,
		.height = 2192,
		.max_fps = {
			.numerator = 10000,
			.denominator = 200000,
		},
		.exp_def = 0x13e,
		.hts_def = 0x01ca * IMX415_4LANES * 2,
		/*
		 * IMX415 HDR mode T-line is half of Linear mode,
		 * make vts double to workaround.
		 */
		.vts_def = 0x07ea * 4,
		.global_reg_list = imx415_global_10bit_3864x2192_regs,
		.reg_list = imx415_hdr3_10bit_3864x2192_1782M_regs,
		.hdr_mode = HDR_X3,
		.mipi_freq_idx = 3,
		.bpp = 10,
		.vc[PAD0] = V4L2_MBUS_CSI2_CHANNEL_2,
		.vc[PAD1] = V4L2_MBUS_CSI2_CHANNEL_1,//M->csi wr0
		.vc[PAD2] = V4L2_MBUS_CSI2_CHANNEL_0,//L->csi wr0
		.vc[PAD3] = V4L2_MBUS_CSI2_CHANNEL_2,//S->csi wr2
	},
	{
		/* 1H period = (1100 clock) = (1100 * 1 / 74.25MHz) */
		.bus_fmt = MEDIA_BUS_FMT_SGBRG12_1X12,
		.width = 3864,
		.height = 2192,
		.max_fps = {
			.numerator = 10000,
			.denominator = 300000,
		},
		.exp_def = 0x08ca - 0x08,
		.hts_def = 0x044c * IMX415_4LANES * 2,
		.vts_def = 0x08ca,
		.global_reg_list = imx415_global_12bit_3864x2192_regs,
		.reg_list = imx415_linear_12bit_3864x2192_891M_regs,
		.hdr_mode = NO_HDR,
		.mipi_freq_idx = 1,
		.bpp = 12,
		.vc[PAD0] = V4L2_MBUS_CSI2_CHANNEL_0,
	},
	{
		.bus_fmt = MEDIA_BUS_FMT_SGBRG12_1X12,
		.width = 3864,
		.height = 2192,
		.max_fps = {
			.numerator = 10000,
			.denominator = 300000,
		},
		.exp_def = 0x08CA * 2 - 0x0d90,
		.hts_def = 0x0226 * IMX415_4LANES * 2,
		/*
		 * IMX415 HDR mode T-line is half of Linear mode,
		 * make vts double(that is FSC) to workaround.
		 */
		.vts_def = 0x08CA * 2,
		.global_reg_list = imx415_global_12bit_3864x2192_regs,
		.reg_list = imx415_hdr2_12bit_3864x2192_1782M_regs,
		.hdr_mode = HDR_X2,
		.mipi_freq_idx = 3,
		.bpp = 12,
		.vc[PAD0] = V4L2_MBUS_CSI2_CHANNEL_1,
		.vc[PAD1] = V4L2_MBUS_CSI2_CHANNEL_0,//L->csi wr0
		.vc[PAD2] = V4L2_MBUS_CSI2_CHANNEL_1,
		.vc[PAD3] = V4L2_MBUS_CSI2_CHANNEL_1,//M->csi wr2
	},
	{
		.bus_fmt = MEDIA_BUS_FMT_SGBRG12_1X12,
		.width = 3864,
		.height = 2192,
		.max_fps = {
			.numerator = 10000,
			.denominator = 200000,
		},
		.exp_def = 0x114,
		.hts_def = 0x0226 * IMX415_4LANES * 2,
		/*
		 * IMX415 HDR mode T-line is half of Linear mode,
		 * make vts double(that is FSC) to workaround.
		 */
		.vts_def = 0x0696 * 4,
		.global_reg_list = imx415_global_12bit_3864x2192_regs,
		.reg_list = imx415_hdr3_12bit_3864x2192_1782M_regs,
		.hdr_mode = HDR_X3,
		.mipi_freq_idx = 3,
		.bpp = 12,
		.vc[PAD0] = V4L2_MBUS_CSI2_CHANNEL_2,
		.vc[PAD1] = V4L2_MBUS_CSI2_CHANNEL_1,//M->csi wr0
		.vc[PAD2] = V4L2_MBUS_CSI2_CHANNEL_0,//L->csi wr0
		.vc[PAD3] = V4L2_MBUS_CSI2_CHANNEL_2,//S->csi wr2
	},
	{
		.bus_fmt = MEDIA_BUS_FMT_SGBRG12_1X12,
		.width = 1944,
		.height = 1097,
		.max_fps = {
			.numerator = 10000,
			.denominator = 300000,
		},
		.exp_def = 0x05dc - 0x08,
		.hts_def = 0x030e * 3,
		.vts_def = 0x0c5d,
		.global_reg_list = imx415_global_12bit_3864x2192_regs,
		.reg_list = imx415_linear_12bit_1932x1096_594M_regs,
		.hdr_mode = NO_HDR,
		.mipi_freq_idx = 0,
		.bpp = 12,
		.vc[PAD0] = V4L2_MBUS_CSI2_CHANNEL_0,
	},
	{
		.bus_fmt = MEDIA_BUS_FMT_SGBRG12_1X12,
		.width = 1944,
		.height = 1097,
		.max_fps = {
			.numerator = 10000,
			.denominator = 300000,
		},
		.exp_def = 0x08FC / 4,
		.hts_def = 0x021A * 4,
		/*
		 * IMX415 HDR mode T-line is half of Linear mode,
		 * make vts double(that is FSC) to workaround.
		 */
		.vts_def = 0x08FC * 2,
		.global_reg_list = imx415_global_12bit_3864x2192_regs,
		.reg_list = imx415_hdr2_12bit_1932x1096_891M_regs,
		.hdr_mode = HDR_X2,
		.mipi_freq_idx = 1,
		.bpp = 12,
		.vc[PAD0] = V4L2_MBUS_CSI2_CHANNEL_1,
		.vc[PAD1] = V4L2_MBUS_CSI2_CHANNEL_0,//L->csi wr0
		.vc[PAD2] = V4L2_MBUS_CSI2_CHANNEL_1,
		.vc[PAD3] = V4L2_MBUS_CSI2_CHANNEL_1,//M->csi wr2
	},
};

static const s64 link_freq_items[] = {
	MIPI_FREQ_297M,
	MIPI_FREQ_446M,
	MIPI_FREQ_743M,
	MIPI_FREQ_891M,
};

/* Write registers up to 4 at a time */
static int imx415_write_reg(struct i2c_client *client, u16 reg,
			    u32 len, u32 val)
{
	u32 buf_i, val_i;
	u8 buf[6];
	u8 *val_p;
	__be32 val_be;

	if (len > 4)
		return -EINVAL;

	buf[0] = reg >> 8;
	buf[1] = reg & 0xff;

	val_be = cpu_to_be32(val);
	val_p = (u8 *)&val_be;
	buf_i = 2;
	val_i = 4 - len;

	while (val_i < 4)
		buf[buf_i++] = val_p[val_i++];

	if (i2c_master_send(client, buf, len + 2) != len + 2)
		return -EIO;

	return 0;
}

static int imx415_write_array(struct i2c_client *client,
			      const struct regval *regs)
{
	u32 i;
	int ret = 0;

	for (i = 0; ret == 0 && regs[i].addr != REG_NULL; i++) {
		ret = imx415_write_reg(client, regs[i].addr,
				       IMX415_REG_VALUE_08BIT, regs[i].val);
	}
	return ret;
}

/* Read registers up to 4 at a time */
static int imx415_read_reg(struct i2c_client *client, u16 reg, unsigned int len,
			   u32 *val)
{
	struct i2c_msg msgs[2];
	u8 *data_be_p;
	__be32 data_be = 0;
	__be16 reg_addr_be = cpu_to_be16(reg);
	int ret;

	if (len > 4 || !len)
		return -EINVAL;

	data_be_p = (u8 *)&data_be;
	/* Write register address */
	msgs[0].addr = client->addr;
	msgs[0].flags = 0;
	msgs[0].len = 2;
	msgs[0].buf = (u8 *)&reg_addr_be;

	/* Read data from register */
	msgs[1].addr = client->addr;
	msgs[1].flags = I2C_M_RD;
	msgs[1].len = len;
	msgs[1].buf = &data_be_p[4 - len];

	ret = i2c_transfer(client->adapter, msgs, ARRAY_SIZE(msgs));
	if (ret != ARRAY_SIZE(msgs))
		return -EIO;

	*val = be32_to_cpu(data_be);

	return 0;
}

static int imx415_get_reso_dist(const struct imx415_mode *mode,
				struct v4l2_mbus_framefmt *framefmt)
{
	return abs(mode->width - framefmt->width) +
	       abs(mode->height - framefmt->height);
}

static const struct imx415_mode *
imx415_find_best_fit(struct imx415 *imx415, struct v4l2_subdev_format *fmt)
{
	struct v4l2_mbus_framefmt *framefmt = &fmt->format;
	int dist;
	int cur_best_fit = 0;
	int cur_best_fit_dist = -1;
	unsigned int i;

	for (i = 0; i < imx415->cfg_num; i++) {
		dist = imx415_get_reso_dist(&supported_modes[i], framefmt);
		if ((cur_best_fit_dist == -1 || dist < cur_best_fit_dist) &&
			supported_modes[i].bus_fmt == framefmt->code) {
			cur_best_fit_dist = dist;
			cur_best_fit = i;
		}
	}
	dev_info(&imx415->client->dev, "%s: cur_best_fit(%d)",
		 __func__, cur_best_fit);

	return &supported_modes[cur_best_fit];
}

static int __imx415_power_on(struct imx415 *imx415);

static void imx415_change_mode(struct imx415 *imx415, const struct imx415_mode *mode)
{
	if (imx415->is_thunderboot && rkisp_tb_get_state() == RKISP_TB_NG) {
		imx415->is_thunderboot = false;
		imx415->is_thunderboot_ng = true;
		__imx415_power_on(imx415);
	}
	imx415->cur_mode = mode;
	imx415->cur_vts = imx415->cur_mode->vts_def;
	dev_dbg(&imx415->client->dev, "set fmt: cur_mode: %dx%d, hdr: %d\n",
		mode->width, mode->height, mode->hdr_mode);
}

static int imx415_set_fmt(struct v4l2_subdev *sd,
			  struct v4l2_subdev_pad_config *cfg,
			  struct v4l2_subdev_format *fmt)
{
	struct imx415 *imx415 = to_imx415(sd);
	const struct imx415_mode *mode;
	s64 h_blank, vblank_def, vblank_min;
	u64 pixel_rate = 0;

	mutex_lock(&imx415->mutex);

	mode = imx415_find_best_fit(imx415, fmt);
	fmt->format.code = mode->bus_fmt;
	fmt->format.width = mode->width;
	fmt->format.height = mode->height;
	fmt->format.field = V4L2_FIELD_NONE;
	if (fmt->which == V4L2_SUBDEV_FORMAT_TRY) {
#ifdef CONFIG_VIDEO_V4L2_SUBDEV_API
		*v4l2_subdev_get_try_format(sd, cfg, fmt->pad) = fmt->format;
#else
		mutex_unlock(&imx415->mutex);
		return -ENOTTY;
#endif
	} else {
		imx415_change_mode(imx415, mode);
		h_blank = mode->hts_def - mode->width;
		__v4l2_ctrl_modify_range(imx415->hblank, h_blank,
					 h_blank, 1, h_blank);
		vblank_def = mode->vts_def - mode->height;
		/* VMAX >= (PIX_VWIDTH / 2) + 46 = height + 46 */
		vblank_min = (mode->height + 46) - mode->height;
		__v4l2_ctrl_modify_range(imx415->vblank, vblank_min,
					 IMX415_VTS_MAX - mode->height,
					 1, vblank_def);
		__v4l2_ctrl_s_ctrl(imx415->vblank, vblank_def);
		__v4l2_ctrl_s_ctrl(imx415->link_freq, mode->mipi_freq_idx);
		pixel_rate = (u32)link_freq_items[mode->mipi_freq_idx] / mode->bpp * 2 * IMX415_4LANES;
		__v4l2_ctrl_s_ctrl_int64(imx415->pixel_rate,
					 pixel_rate);
	}
	dev_info(&imx415->client->dev, "%s: mode->mipi_freq_idx(%d)",
		 __func__, mode->mipi_freq_idx);

	mutex_unlock(&imx415->mutex);

	return 0;
}

static int imx415_get_fmt(struct v4l2_subdev *sd,
			  struct v4l2_subdev_pad_config *cfg,
			  struct v4l2_subdev_format *fmt)
{
	struct imx415 *imx415 = to_imx415(sd);
	const struct imx415_mode *mode = imx415->cur_mode;

	mutex_lock(&imx415->mutex);
	if (fmt->which == V4L2_SUBDEV_FORMAT_TRY) {
#ifdef CONFIG_VIDEO_V4L2_SUBDEV_API
		fmt->format = *v4l2_subdev_get_try_format(sd, cfg, fmt->pad);
#else
		mutex_unlock(&imx415->mutex);
		return -ENOTTY;
#endif
	} else {
		fmt->format.width = mode->width;
		fmt->format.height = mode->height;
		fmt->format.code = mode->bus_fmt;
		fmt->format.field = V4L2_FIELD_NONE;
		if (fmt->pad < PAD_MAX && mode->hdr_mode != NO_HDR)
			fmt->reserved[0] = mode->vc[fmt->pad];
		else
			fmt->reserved[0] = mode->vc[PAD0];
	}
	mutex_unlock(&imx415->mutex);

	return 0;
}

static int imx415_enum_mbus_code(struct v4l2_subdev *sd,
				 struct v4l2_subdev_pad_config *cfg,
				 struct v4l2_subdev_mbus_code_enum *code)
{
	struct imx415 *imx415 = to_imx415(sd);

	if (code->index >= imx415->cfg_num)
		return -EINVAL;

	code->code = supported_modes[code->index].bus_fmt;

	return 0;
}

static int imx415_enum_frame_sizes(struct v4l2_subdev *sd,
				   struct v4l2_subdev_pad_config *cfg,
				   struct v4l2_subdev_frame_size_enum *fse)
{
	struct imx415 *imx415 = to_imx415(sd);

	if (fse->index >= imx415->cfg_num)
		return -EINVAL;

	if (fse->code != supported_modes[fse->index].bus_fmt)
		return -EINVAL;

	fse->min_width  = supported_modes[fse->index].width;
	fse->max_width  = supported_modes[fse->index].width;
	fse->max_height = supported_modes[fse->index].height;
	fse->min_height = supported_modes[fse->index].height;

	return 0;
}

static int imx415_g_frame_interval(struct v4l2_subdev *sd,
				   struct v4l2_subdev_frame_interval *fi)
{
	struct imx415 *imx415 = to_imx415(sd);
	const struct imx415_mode *mode = imx415->cur_mode;

	mutex_lock(&imx415->mutex);
	fi->interval = mode->max_fps;
	mutex_unlock(&imx415->mutex);

	return 0;
}

static int imx415_g_mbus_config(struct v4l2_subdev *sd, unsigned int pad_id,
				struct v4l2_mbus_config *config)
{
	struct imx415 *imx415 = to_imx415(sd);
	const struct imx415_mode *mode = imx415->cur_mode;
	u32 val = 0;

	val = 1 << (IMX415_4LANES - 1) |
	      V4L2_MBUS_CSI2_CHANNEL_0 |
	      V4L2_MBUS_CSI2_CONTINUOUS_CLOCK;
	if (mode->hdr_mode != NO_HDR)
		val |= V4L2_MBUS_CSI2_CHANNEL_1;
	if (mode->hdr_mode == HDR_X3)
		val |= V4L2_MBUS_CSI2_CHANNEL_2;
	config->type = V4L2_MBUS_CSI2_DPHY;
	config->flags = val;

	return 0;
}

static void imx415_get_module_inf(struct imx415 *imx415,
				  struct rkmodule_inf *inf)
{
	memset(inf, 0, sizeof(*inf));
	strlcpy(inf->base.sensor, IMX415_NAME, sizeof(inf->base.sensor));
	strlcpy(inf->base.module, imx415->module_name,
		sizeof(inf->base.module));
	strlcpy(inf->base.lens, imx415->len_name, sizeof(inf->base.lens));
}

(Following in the next post)

Thank you!

static int imx415_set_hdrae_3frame(struct imx415 *imx415,
				   struct preisp_hdrae_exp_s *ae)
{
	struct i2c_client *client = imx415->client;
	u32 l_exp_time, m_exp_time, s_exp_time;
	u32 l_a_gain, m_a_gain, s_a_gain;
	int shr2, shr1, shr0, rhs2, rhs1 = 0;
	int rhs1_change_limit, rhs2_change_limit = 0;
	static int rhs1_old = IMX415_RHS1_DEFAULT;
	static int rhs2_old = IMX415_RHS2_DEFAULT;
	int ret = 0;
	u32 fsc;
	int rhs1_max = 0;
	int shr2_min = 0;

	if (!imx415->has_init_exp && !imx415->streaming) {
		imx415->init_hdrae_exp = *ae;
		imx415->has_init_exp = true;
		dev_dbg(&imx415->client->dev, "imx415 is not streaming, save hdr ae!\n");
		return ret;
	}
	l_exp_time = ae->long_exp_reg;
	m_exp_time = ae->middle_exp_reg;
	s_exp_time = ae->short_exp_reg;
	l_a_gain = ae->long_gain_reg;
	m_a_gain = ae->middle_gain_reg;
	s_a_gain = ae->short_gain_reg;
	dev_dbg(&client->dev,
		"rev exp req: L_exp: 0x%x, 0x%x, M_exp: 0x%x, 0x%x S_exp: 0x%x, 0x%x\n",
		l_exp_time, m_exp_time, s_exp_time,
		l_a_gain, m_a_gain, s_a_gain);

	ret = imx415_write_reg(client, IMX415_GROUP_HOLD_REG,
		IMX415_REG_VALUE_08BIT, IMX415_GROUP_HOLD_START);
	/* gain effect n+1 */
	ret |= imx415_write_reg(client, IMX415_LF_GAIN_REG_H,
		IMX415_REG_VALUE_08BIT, IMX415_FETCH_GAIN_H(l_a_gain));
	ret |= imx415_write_reg(client, IMX415_LF_GAIN_REG_L,
		IMX415_REG_VALUE_08BIT, IMX415_FETCH_GAIN_L(l_a_gain));
	ret |= imx415_write_reg(client, IMX415_SF1_GAIN_REG_H,
		IMX415_REG_VALUE_08BIT, IMX415_FETCH_GAIN_H(m_a_gain));
	ret |= imx415_write_reg(client, IMX415_SF1_GAIN_REG_L,
		IMX415_REG_VALUE_08BIT, IMX415_FETCH_GAIN_L(m_a_gain));
	ret |= imx415_write_reg(client, IMX415_SF2_GAIN_REG_H,
		IMX415_REG_VALUE_08BIT, IMX415_FETCH_GAIN_H(s_a_gain));
	ret |= imx415_write_reg(client, IMX415_SF2_GAIN_REG_L,
		IMX415_REG_VALUE_08BIT, IMX415_FETCH_GAIN_L(s_a_gain));

	/* Restrictions
	 *   FSC = 4 * VMAX and FSC should be 6n;
	 *   exp_l = FSC - SHR0 + Toffset;
	 *
	 *   SHR0 = FSC - exp_l + Toffset;
	 *   SHR0 <= (FSC -12);
	 *   SHR0 >= RHS2 + 13;
	 *   SHR0 should be 3n;
	 *
	 *   exp_m = RHS1 - SHR1 + Toffset;
	 *
	 *   RHS1 < BRL * 3;
	 *   RHS1 <= SHR2 - 13;
	 *   RHS1 >= SHR1 + 12;
	 *   SHR1 >= 13;
	 *   SHR1 <= RHS1 - 12;
	 *   RHS1(n+1) >= RHS1(n) + BRL * 3 -FSC + 3;
	 *
	 *   SHR1 should be 3n+1 and RHS1 should be 6n+1;
	 *
	 *   exp_s = RHS2 - SHR2 + Toffset;
	 *
	 *   RHS2 < BRL * 3 + RHS1;
	 *   RHS2 <= SHR0 - 13;
	 *   RHS2 >= SHR2 + 12;
	 *   SHR2 >= RHS1 + 13;
	 *   SHR2 <= RHS2 - 12;
	 *   RHS1(n+1) >= RHS1(n) + BRL * 3 -FSC + 3;
	 *
	 *   SHR2 should be 3n+2 and RHS2 should be 6n+2;
	 */

	/* The HDR mode vts is double by default to workaround T-line */
	fsc = imx415->cur_vts;
	fsc = fsc / 6 * 6;
	shr0 = fsc - l_exp_time;
	dev_dbg(&client->dev,
		"line(%d) shr0 %d, l_exp_time %d, fsc %d\n",
		__LINE__, shr0, l_exp_time, fsc);

	rhs1 = (SHR1_MIN_X3 + m_exp_time + 5) / 6 * 6 + 1;
	if (imx415->cur_mode->height == 2192)
		rhs1_max = RHS1_MAX_X3(BRL_ALL);
	else
		rhs1_max = RHS1_MAX_X3(BRL_BINNING);
	if (rhs1 < 25)
		rhs1 = 25;
	else if (rhs1 > rhs1_max)
		rhs1 = rhs1_max;
	dev_dbg(&client->dev,
		"line(%d) rhs1 %d, m_exp_time %d rhs1_old %d\n",
		__LINE__, rhs1, m_exp_time, rhs1_old);

	//Dynamic adjustment rhs2 must meet the following conditions
	if (imx415->cur_mode->height == 2192)
		rhs1_change_limit = rhs1_old + 3 * BRL_ALL - fsc + 3;
	else
		rhs1_change_limit = rhs1_old + 3 * BRL_BINNING - fsc + 3;
	rhs1_change_limit = (rhs1_change_limit < 25) ? 25 : rhs1_change_limit;
	rhs1_change_limit = (rhs1_change_limit + 5) / 6 * 6 + 1;
	if (rhs1_max < rhs1_change_limit) {
		dev_err(&client->dev,
			"The total exposure limit makes rhs1 max is %d,but old rhs1 limit makes rhs1 min is %d\n",
			rhs1_max, rhs1_change_limit);
		return -EINVAL;
	}
	if (rhs1 < rhs1_change_limit)
		rhs1 = rhs1_change_limit;

	dev_dbg(&client->dev,
		"line(%d) m_exp_time %d rhs1_old %d, rhs1_new %d\n",
		__LINE__, m_exp_time, rhs1_old, rhs1);

	rhs1_old = rhs1;

	/* shr1 = rhs1 - s_exp_time */
	if (rhs1 - m_exp_time <= SHR1_MIN_X3) {
		shr1 = SHR1_MIN_X3;
		m_exp_time = rhs1 - shr1;
	} else {
		shr1 = rhs1 - m_exp_time;
	}

	shr2_min = rhs1 + 13;
	rhs2 = (shr2_min + s_exp_time + 5) / 6 * 6 + 2;
	if (rhs2 > (shr0 - 13))
		rhs2 = shr0 - 13;
	else if (rhs2 < 50)
		rhs2 = 50;
	dev_dbg(&client->dev,
		"line(%d) rhs2 %d, s_exp_time %d, rhs2_old %d\n",
		__LINE__, rhs2, s_exp_time, rhs2_old);

	//Dynamic adjustment rhs2 must meet the following conditions
	if (imx415->cur_mode->height == 2192)
		rhs2_change_limit = rhs2_old + 3 * BRL_ALL - fsc + 3;
	else
		rhs2_change_limit = rhs2_old + 3 * BRL_BINNING - fsc + 3;
	rhs2_change_limit = (rhs2_change_limit < 50) ?  50 : rhs2_change_limit;
	rhs2_change_limit = (rhs2_change_limit + 5) / 6 * 6 + 2;
	if ((shr0 - 13) < rhs2_change_limit) {
		dev_err(&client->dev,
			"The total exposure limit makes rhs2 max is %d,but old rhs1 limit makes rhs2 min is %d\n",
			shr0 - 13, rhs2_change_limit);
		return -EINVAL;
	}
	if (rhs2 < rhs2_change_limit)
		rhs2 = rhs2_change_limit;

	rhs2_old = rhs2;

	/* shr2 = rhs2 - s_exp_time */
	if (rhs2 - s_exp_time <= shr2_min) {
		shr2 = shr2_min;
		s_exp_time = rhs2 - shr2;
	} else {
		shr2 = rhs2 - s_exp_time;
	}
	dev_dbg(&client->dev,
		"line(%d) rhs2_new %d, s_exp_time %d shr2 %d, rhs2_change_limit %d\n",
		__LINE__, rhs2, s_exp_time, shr2, rhs2_change_limit);

	if (shr0 < rhs2 + 13)
		shr0 = rhs2 + 13;
	else if (shr0 > fsc - 12)
		shr0 = fsc - 12;

	dev_dbg(&client->dev,
		"long exposure: l_exp_time=%d, fsc=%d, shr0=%d, l_a_gain=%d\n",
		l_exp_time, fsc, shr0, l_a_gain);
	dev_dbg(&client->dev,
		"middle exposure(SEF1): m_exp_time=%d, rhs1=%d, shr1=%d, m_a_gain=%d\n",
		m_exp_time, rhs1, shr1, m_a_gain);
	dev_dbg(&client->dev,
		"short exposure(SEF2): s_exp_time=%d, rhs2=%d, shr2=%d, s_a_gain=%d\n",
		s_exp_time, rhs2, shr2, s_a_gain);
	/* time effect n+1 */
	/* write SEF2 exposure RHS2 regs*/
	ret |= imx415_write_reg(client,
		IMX415_RHS2_REG_L,
		IMX415_REG_VALUE_08BIT,
		IMX415_FETCH_RHS1_L(rhs2));
	ret |= imx415_write_reg(client,
		IMX415_RHS2_REG_M,
		IMX415_REG_VALUE_08BIT,
		IMX415_FETCH_RHS1_M(rhs2));
	ret |= imx415_write_reg(client,
		IMX415_RHS2_REG_H,
		IMX415_REG_VALUE_08BIT,
		IMX415_FETCH_RHS1_H(rhs2));
	/* write SEF2 exposure SHR2 regs*/
	ret |= imx415_write_reg(client,
		IMX415_SF2_EXPO_REG_L,
		IMX415_REG_VALUE_08BIT,
		IMX415_FETCH_EXP_L(shr2));
	ret |= imx415_write_reg(client,
		IMX415_SF2_EXPO_REG_M,
		IMX415_REG_VALUE_08BIT,
		IMX415_FETCH_EXP_M(shr2));
	ret |= imx415_write_reg(client,
		IMX415_SF2_EXPO_REG_H,
		IMX415_REG_VALUE_08BIT,
		IMX415_FETCH_EXP_H(shr2));
	/* write SEF1 exposure RHS1 regs*/
	ret |= imx415_write_reg(client,
		IMX415_RHS1_REG_L,
		IMX415_REG_VALUE_08BIT,
		IMX415_FETCH_RHS1_L(rhs1));
	ret |= imx415_write_reg(client,
		IMX415_RHS1_REG_M,
		IMX415_REG_VALUE_08BIT,
		IMX415_FETCH_RHS1_M(rhs1));
	ret |= imx415_write_reg(client,
		IMX415_RHS1_REG_H,
		IMX415_REG_VALUE_08BIT,
		IMX415_FETCH_RHS1_H(rhs1));
	/* write SEF1 exposure SHR1 regs*/
	ret |= imx415_write_reg(client,
		IMX415_SF1_EXPO_REG_L,
		IMX415_REG_VALUE_08BIT,
		IMX415_FETCH_EXP_L(shr1));
	ret |= imx415_write_reg(client,
		IMX415_SF1_EXPO_REG_M,
		IMX415_REG_VALUE_08BIT,
		IMX415_FETCH_EXP_M(shr1));
	ret |= imx415_write_reg(client,
		IMX415_SF1_EXPO_REG_H,
		IMX415_REG_VALUE_08BIT,
		IMX415_FETCH_EXP_H(shr1));
	/* write LF exposure SHR0 regs*/
	ret |= imx415_write_reg(client,
		IMX415_LF_EXPO_REG_L,
		IMX415_REG_VALUE_08BIT,
		IMX415_FETCH_EXP_L(shr0));
	ret |= imx415_write_reg(client,
		IMX415_LF_EXPO_REG_M,
		IMX415_REG_VALUE_08BIT,
		IMX415_FETCH_EXP_M(shr0));
	ret |= imx415_write_reg(client,
		IMX415_LF_EXPO_REG_H,
		IMX415_REG_VALUE_08BIT,
		IMX415_FETCH_EXP_H(shr0));

	ret |= imx415_write_reg(client, IMX415_GROUP_HOLD_REG,
		IMX415_REG_VALUE_08BIT, IMX415_GROUP_HOLD_END);
	return ret;
}

static int imx415_set_hdrae(struct imx415 *imx415,
			    struct preisp_hdrae_exp_s *ae)
{
	struct i2c_client *client = imx415->client;
	u32 l_exp_time, m_exp_time, s_exp_time;
	u32 l_a_gain, m_a_gain, s_a_gain;
	int shr1, shr0, rhs1, rhs1_max, rhs1_min;
	static int rhs1_old = IMX415_RHS1_DEFAULT;
	int ret = 0;
	u32 fsc;

	if (!imx415->has_init_exp && !imx415->streaming) {
		imx415->init_hdrae_exp = *ae;
		imx415->has_init_exp = true;
		dev_dbg(&imx415->client->dev, "imx415 is not streaming, save hdr ae!\n");
		return ret;
	}
	l_exp_time = ae->long_exp_reg;
	m_exp_time = ae->middle_exp_reg;
	s_exp_time = ae->short_exp_reg;
	l_a_gain = ae->long_gain_reg;
	m_a_gain = ae->middle_gain_reg;
	s_a_gain = ae->short_gain_reg;
	dev_dbg(&client->dev,
		"rev exp req: L_exp: 0x%x, 0x%x, M_exp: 0x%x, 0x%x S_exp: 0x%x, 0x%x\n",
		l_exp_time, m_exp_time, s_exp_time,
		l_a_gain, m_a_gain, s_a_gain);

	if (imx415->cur_mode->hdr_mode == HDR_X2) {
		l_a_gain = m_a_gain;
		l_exp_time = m_exp_time;
	}

	ret = imx415_write_reg(client, IMX415_GROUP_HOLD_REG,
		IMX415_REG_VALUE_08BIT, IMX415_GROUP_HOLD_START);
	/* gain effect n+1 */
	ret |= imx415_write_reg(client, IMX415_LF_GAIN_REG_H,
		IMX415_REG_VALUE_08BIT, IMX415_FETCH_GAIN_H(l_a_gain));
	ret |= imx415_write_reg(client, IMX415_LF_GAIN_REG_L,
		IMX415_REG_VALUE_08BIT, IMX415_FETCH_GAIN_L(l_a_gain));
	ret |= imx415_write_reg(client, IMX415_SF1_GAIN_REG_H,
		IMX415_REG_VALUE_08BIT, IMX415_FETCH_GAIN_H(s_a_gain));
	ret |= imx415_write_reg(client, IMX415_SF1_GAIN_REG_L,
		IMX415_REG_VALUE_08BIT, IMX415_FETCH_GAIN_L(s_a_gain));

	/* Restrictions
	 *   FSC = 2 * VMAX and FSC should be 4n;
	 *   exp_l = FSC - SHR0 + Toffset;
	 *   exp_l should be even value;
	 *
	 *   SHR0 = FSC - exp_l + Toffset;
	 *   SHR0 <= (FSC -8);
	 *   SHR0 >= RHS1 + 9;
	 *   SHR0 should be 2n;
	 *
	 *   exp_s = RHS1 - SHR1 + Toffset;
	 *   exp_s should be even value;
	 *
	 *   RHS1 < BRL * 2;
	 *   RHS1 <= SHR0 - 9;
	 *   RHS1 >= SHR1 + 8;
	 *   SHR1 >= 9;
	 *   RHS1(n+1) >= RHS1(n) + BRL * 2 -FSC + 2;
	 *
	 *   SHR1 should be 2n+1 and RHS1 should be 4n+1;
	 */

	/* The HDR mode vts is double by default to workaround T-line */
	fsc = imx415->cur_vts;
	shr0 = fsc - l_exp_time;

	if (imx415->cur_mode->height == 2192) {
		rhs1_max = min(RHS1_MAX_X2(BRL_ALL), ((shr0 - 9u) / 4 * 4 + 1));
		rhs1_min = max(SHR1_MIN_X2 + 8u, rhs1_old + 2 * BRL_ALL - fsc + 2);
	} else {
		rhs1_max = min(RHS1_MAX_X2(BRL_BINNING), ((shr0 - 9u) / 4 * 4 + 1));
		rhs1_min = max(SHR1_MIN_X2 + 8u, rhs1_old + 2 * BRL_BINNING - fsc + 2);
	}
	rhs1_min = (rhs1_min + 3) / 4 * 4 + 1;
	rhs1 = (SHR1_MIN_X2 + s_exp_time + 3) / 4 * 4 + 1;/* shall be 4n + 1 */
	dev_dbg(&client->dev,
		"line(%d) rhs1 %d, rhs1 min %d rhs1 max %d\n",
		__LINE__, rhs1, rhs1_min, rhs1_max);
	if (rhs1_max < rhs1_min) {
		dev_err(&client->dev,
			"The total exposure limit makes rhs1 max is %d,but old rhs1 limit makes rhs1 min is %d\n",
			rhs1_max, rhs1_min);
		return -EINVAL;
	}
	rhs1 = clamp(rhs1, rhs1_min, rhs1_max);
	dev_dbg(&client->dev,
		"line(%d) rhs1 %d, short time %d rhs1_old %d, rhs1_new %d\n",
		__LINE__, rhs1, s_exp_time, rhs1_old, rhs1);

	rhs1_old = rhs1;

	/* shr1 = rhs1 - s_exp_time */
	if (rhs1 - s_exp_time <= SHR1_MIN_X2) {
		shr1 = SHR1_MIN_X2;
		s_exp_time = rhs1 - shr1;
	} else {
		shr1 = rhs1 - s_exp_time;
	}

	if (shr0 < rhs1 + 9)
		shr0 = rhs1 + 9;
	else if (shr0 > fsc - 8)
		shr0 = fsc - 8;

	dev_dbg(&client->dev,
		"fsc=%d,RHS1_MAX=%d,SHR1_MIN=%d,rhs1_max=%d\n",
		fsc, RHS1_MAX_X2(BRL_ALL), SHR1_MIN_X2, rhs1_max);
	dev_dbg(&client->dev,
		"l_exp_time=%d,s_exp_time=%d,shr0=%d,shr1=%d,rhs1=%d,l_a_gain=%d,s_a_gain=%d\n",
		l_exp_time, s_exp_time, shr0, shr1, rhs1, l_a_gain, s_a_gain);
	/* time effect n+2 */
	ret |= imx415_write_reg(client,
		IMX415_RHS1_REG_L,
		IMX415_REG_VALUE_08BIT,
		IMX415_FETCH_RHS1_L(rhs1));
	ret |= imx415_write_reg(client,
		IMX415_RHS1_REG_M,
		IMX415_REG_VALUE_08BIT,
		IMX415_FETCH_RHS1_M(rhs1));
	ret |= imx415_write_reg(client,
		IMX415_RHS1_REG_H,
		IMX415_REG_VALUE_08BIT,
		IMX415_FETCH_RHS1_H(rhs1));

	ret |= imx415_write_reg(client,
		IMX415_SF1_EXPO_REG_L,
		IMX415_REG_VALUE_08BIT,
		IMX415_FETCH_EXP_L(shr1));
	ret |= imx415_write_reg(client,
		IMX415_SF1_EXPO_REG_M,
		IMX415_REG_VALUE_08BIT,
		IMX415_FETCH_EXP_M(shr1));
	ret |= imx415_write_reg(client,
		IMX415_SF1_EXPO_REG_H,
		IMX415_REG_VALUE_08BIT,
		IMX415_FETCH_EXP_H(shr1));
	ret |= imx415_write_reg(client,
		IMX415_LF_EXPO_REG_L,
		IMX415_REG_VALUE_08BIT,
		IMX415_FETCH_EXP_L(shr0));
	ret |= imx415_write_reg(client,
		IMX415_LF_EXPO_REG_M,
		IMX415_REG_VALUE_08BIT,
		IMX415_FETCH_EXP_M(shr0));
	ret |= imx415_write_reg(client,
		IMX415_LF_EXPO_REG_H,
		IMX415_REG_VALUE_08BIT,
		IMX415_FETCH_EXP_H(shr0));

	ret |= imx415_write_reg(client, IMX415_GROUP_HOLD_REG,
		IMX415_REG_VALUE_08BIT, IMX415_GROUP_HOLD_END);
	return ret;
}

static int imx415_get_channel_info(struct imx415 *imx415, struct rkmodule_channel_info *ch_info)
{
	if (ch_info->index < PAD0 || ch_info->index >= PAD_MAX)
		return -EINVAL;
	ch_info->vc = imx415->cur_mode->vc[ch_info->index];
	ch_info->width = imx415->cur_mode->width;
	ch_info->height = imx415->cur_mode->height;
	ch_info->bus_fmt = imx415->cur_mode->bus_fmt;
	return 0;
}

static long imx415_ioctl(struct v4l2_subdev *sd, unsigned int cmd, void *arg)
{
	struct imx415 *imx415 = to_imx415(sd);
	struct rkmodule_hdr_cfg *hdr;
	struct rkmodule_channel_info *ch_info;
	u32 i, h, w, stream;
	long ret = 0;
	const struct imx415_mode *mode;
	u64 pixel_rate = 0;

	switch (cmd) {
	case PREISP_CMD_SET_HDRAE_EXP:
		if (imx415->cur_mode->hdr_mode == HDR_X2)
			ret = imx415_set_hdrae(imx415, arg);
		else if (imx415->cur_mode->hdr_mode == HDR_X3)
			ret = imx415_set_hdrae_3frame(imx415, arg);
		break;
	case RKMODULE_GET_MODULE_INFO:
		imx415_get_module_inf(imx415, (struct rkmodule_inf *)arg);
		break;
	case RKMODULE_GET_HDR_CFG:
		hdr = (struct rkmodule_hdr_cfg *)arg;
		hdr->esp.mode = HDR_NORMAL_VC;
		hdr->hdr_mode = imx415->cur_mode->hdr_mode;
		break;
	case RKMODULE_SET_HDR_CFG:
		hdr = (struct rkmodule_hdr_cfg *)arg;
		w = imx415->cur_mode->width;
		h = imx415->cur_mode->height;
		for (i = 0; i < imx415->cfg_num; i++) {
			if (w == supported_modes[i].width &&
			    h == supported_modes[i].height &&
			    supported_modes[i].hdr_mode == hdr->hdr_mode) {
				imx415_change_mode(imx415, &supported_modes[i]);
				break;
			}
		}
		if (i == imx415->cfg_num) {
			dev_err(&imx415->client->dev,
				"not find hdr mode:%d %dx%d config\n",
				hdr->hdr_mode, w, h);
			ret = -EINVAL;
		} else {
			mode = imx415->cur_mode;
			if (imx415->streaming) {
				ret = imx415_write_reg(imx415->client, IMX415_GROUP_HOLD_REG,
					IMX415_REG_VALUE_08BIT, IMX415_GROUP_HOLD_START);

				ret |= imx415_write_array(imx415->client, imx415->cur_mode->reg_list);

				ret |= imx415_write_reg(imx415->client, IMX415_GROUP_HOLD_REG,
					IMX415_REG_VALUE_08BIT, IMX415_GROUP_HOLD_END);
				if (ret)
					return ret;
			}
			w = mode->hts_def - imx415->cur_mode->width;
			h = mode->vts_def - mode->height;
			mutex_lock(&imx415->mutex);
			__v4l2_ctrl_modify_range(imx415->hblank, w, w, 1, w);
			__v4l2_ctrl_modify_range(imx415->vblank, h,
				IMX415_VTS_MAX - mode->height,
				1, h);
			__v4l2_ctrl_s_ctrl(imx415->link_freq, mode->mipi_freq_idx);
			pixel_rate = (u32)link_freq_items[mode->mipi_freq_idx] / mode->bpp * 2 * IMX415_4LANES;
			__v4l2_ctrl_s_ctrl_int64(imx415->pixel_rate,
						 pixel_rate);
			mutex_unlock(&imx415->mutex);
		}
		break;
	case RKMODULE_SET_QUICK_STREAM:

		stream = *((u32 *)arg);

		if (stream)
			ret = imx415_write_reg(imx415->client, IMX415_REG_CTRL_MODE,
				IMX415_REG_VALUE_08BIT, IMX415_MODE_STREAMING);
		else
			ret = imx415_write_reg(imx415->client, IMX415_REG_CTRL_MODE,
				IMX415_REG_VALUE_08BIT, IMX415_MODE_SW_STANDBY);
		break;
	case RKMODULE_GET_SONY_BRL:
		if (imx415->cur_mode->width == 3864 && imx415->cur_mode->height == 2192)
			*((u32 *)arg) = BRL_ALL;
		else
			*((u32 *)arg) = BRL_BINNING;
		break;
	case RKMODULE_GET_CHANNEL_INFO:
		ch_info = (struct rkmodule_channel_info *)arg;
		ret = imx415_get_channel_info(imx415, ch_info);
		break;
	default:
		ret = -ENOIOCTLCMD;
		break;
	}

	return ret;
}

#ifdef CONFIG_COMPAT
static long imx415_compat_ioctl32(struct v4l2_subdev *sd,
				  unsigned int cmd, unsigned long arg)
{
	void __user *up = compat_ptr(arg);
	struct rkmodule_inf *inf;
	struct rkmodule_awb_cfg *cfg;
	struct rkmodule_hdr_cfg *hdr;
	struct preisp_hdrae_exp_s *hdrae;
	struct rkmodule_channel_info *ch_info;
	long ret;
	u32  stream;
	u32 brl = 0;

	switch (cmd) {
	case RKMODULE_GET_MODULE_INFO:
		inf = kzalloc(sizeof(*inf), GFP_KERNEL);
		if (!inf) {
			ret = -ENOMEM;
			return ret;
		}

		ret = imx415_ioctl(sd, cmd, inf);
		if (!ret) {
			if (copy_to_user(up, inf, sizeof(*inf))) {
				kfree(inf);
				return -EFAULT;
			}
		}
		kfree(inf);
		break;
	case RKMODULE_AWB_CFG:
		cfg = kzalloc(sizeof(*cfg), GFP_KERNEL);
		if (!cfg) {
			ret = -ENOMEM;
			return ret;
		}

		if (copy_from_user(cfg, up, sizeof(*cfg))) {
			kfree(cfg);
			return -EFAULT;
		}
		ret = imx415_ioctl(sd, cmd, cfg);
		kfree(cfg);
		break;
	case RKMODULE_GET_HDR_CFG:
		hdr = kzalloc(sizeof(*hdr), GFP_KERNEL);
		if (!hdr) {
			ret = -ENOMEM;
			return ret;
		}

		ret = imx415_ioctl(sd, cmd, hdr);
		if (!ret) {
			if (copy_to_user(up, hdr, sizeof(*hdr))) {
				kfree(hdr);
				return -EFAULT;
			}
		}
		kfree(hdr);
		break;
	case RKMODULE_SET_HDR_CFG:
		hdr = kzalloc(sizeof(*hdr), GFP_KERNEL);
		if (!hdr) {
			ret = -ENOMEM;
			return ret;
		}

		if (copy_from_user(hdr, up, sizeof(*hdr))) {
			kfree(hdr);
			return -EFAULT;
		}
		ret = imx415_ioctl(sd, cmd, hdr);
		kfree(hdr);
		break;
	case PREISP_CMD_SET_HDRAE_EXP:
		hdrae = kzalloc(sizeof(*hdrae), GFP_KERNEL);
		if (!hdrae) {
			ret = -ENOMEM;
			return ret;
		}

		if (copy_from_user(hdrae, up, sizeof(*hdrae))) {
			kfree(hdrae);
			return -EFAULT;
		}
		ret = imx415_ioctl(sd, cmd, hdrae);
		kfree(hdrae);
		break;
	case RKMODULE_SET_QUICK_STREAM:
		if (copy_from_user(&stream, up, sizeof(u32)))
			return -EFAULT;
		ret = imx415_ioctl(sd, cmd, &stream);
		break;
	case RKMODULE_GET_SONY_BRL:
		ret = imx415_ioctl(sd, cmd, &brl);
		if (!ret) {
			if (copy_to_user(up, &brl, sizeof(u32)))
				return -EFAULT;
		}
		break;
	case RKMODULE_GET_CHANNEL_INFO:
		ch_info = kzalloc(sizeof(*ch_info), GFP_KERNEL);
		if (!ch_info) {
			ret = -ENOMEM;
			return ret;
		}

		ret = imx415_ioctl(sd, cmd, ch_info);
		if (!ret) {
			ret = copy_to_user(up, ch_info, sizeof(*ch_info));
			if (ret)
				ret = -EFAULT;
		}
		kfree(ch_info);
		break;
	default:
		ret = -ENOIOCTLCMD;
		break;
	}

	return ret;
}
#endif


static int __imx415_start_stream(struct imx415 *imx415)
{
	int ret;

	if (!imx415->is_thunderboot) {
		ret = imx415_write_array(imx415->client, imx415->cur_mode->global_reg_list);
		if (ret)
			return ret;
		ret = imx415_write_array(imx415->client, imx415->cur_mode->reg_list);
		if (ret)
			return ret;
	}

	/* In case these controls are set before streaming */
	ret = __v4l2_ctrl_handler_setup(&imx415->ctrl_handler);
	if (ret)
		return ret;
	if (imx415->has_init_exp && imx415->cur_mode->hdr_mode != NO_HDR) {
		ret = imx415_ioctl(&imx415->subdev, PREISP_CMD_SET_HDRAE_EXP,
			&imx415->init_hdrae_exp);
		if (ret) {
			dev_err(&imx415->client->dev,
				"init exp fail in hdr mode\n");
			return ret;
		}
	}
	return imx415_write_reg(imx415->client, IMX415_REG_CTRL_MODE,
				IMX415_REG_VALUE_08BIT, 0);
}

static int __imx415_stop_stream(struct imx415 *imx415)
{
	imx415->has_init_exp = false;
	if (imx415->is_thunderboot)
		imx415->is_first_streamoff = true;
	return imx415_write_reg(imx415->client, IMX415_REG_CTRL_MODE,
				IMX415_REG_VALUE_08BIT, 1);
}

static int imx415_s_stream(struct v4l2_subdev *sd, int on)
{
	struct imx415 *imx415 = to_imx415(sd);
	struct i2c_client *client = imx415->client;
	int ret = 0;

	dev_info(&imx415->client->dev, "s_stream: %d. %dx%d, hdr: %d, bpp: %d\n",
	       on, imx415->cur_mode->width, imx415->cur_mode->height,
	       imx415->cur_mode->hdr_mode, imx415->cur_mode->bpp);

	mutex_lock(&imx415->mutex);
	on = !!on;
	if (on == imx415->streaming)
		goto unlock_and_return;

	if (on) {
		if (imx415->is_thunderboot && rkisp_tb_get_state() == RKISP_TB_NG) {
			imx415->is_thunderboot = false;
			__imx415_power_on(imx415);
		}
		ret = pm_runtime_get_sync(&client->dev);
		if (ret < 0) {
			pm_runtime_put_noidle(&client->dev);
			goto unlock_and_return;
		}

		ret = __imx415_start_stream(imx415);
		if (ret) {
			v4l2_err(sd, "start stream failed while write regs\n");
			pm_runtime_put(&client->dev);
			goto unlock_and_return;
		}
	} else {
		__imx415_stop_stream(imx415);
		pm_runtime_put(&client->dev);
	}

	imx415->streaming = on;

unlock_and_return:
	mutex_unlock(&imx415->mutex);

	return ret;
}

static int imx415_s_power(struct v4l2_subdev *sd, int on)
{
	struct imx415 *imx415 = to_imx415(sd);
	struct i2c_client *client = imx415->client;
	int ret = 0;

	mutex_lock(&imx415->mutex);

	if (imx415->power_on == !!on)
		goto unlock_and_return;

	if (on) {
		ret = pm_runtime_get_sync(&client->dev);
		if (ret < 0) {
			pm_runtime_put_noidle(&client->dev);
			goto unlock_and_return;
		}
		imx415->power_on = true;
	} else {
		pm_runtime_put(&client->dev);
		imx415->power_on = false;
	}

unlock_and_return:
	mutex_unlock(&imx415->mutex);

	return ret;
}

int __imx415_power_on(struct imx415 *imx415)
{
	int ret;
	struct device *dev = &imx415->client->dev;

	if (imx415->is_thunderboot)
		return 0;

	if (!IS_ERR_OR_NULL(imx415->pins_default)) {
		ret = pinctrl_select_state(imx415->pinctrl,
					   imx415->pins_default);
		if (ret < 0)
			dev_err(dev, "could not set pins\n");
	}

	if (!IS_ERR(imx415->power_gpio))
		gpiod_direction_output(imx415->power_gpio, 1);
	/* At least 500ns between power raising and XCLR */
	/* fix power on timing if insmod this ko */
	usleep_range(10 * 1000, 20 * 1000);
	if (!IS_ERR(imx415->reset_gpio))
		gpiod_direction_output(imx415->reset_gpio, 0);

	/* At least 1us between XCLR and clk */
	/* fix power on timing if insmod this ko */
	usleep_range(10 * 1000, 20 * 1000);

	/* At least 20us between XCLR and I2C communication */
	usleep_range(20*1000, 30*1000);

	return 0;
}

static void __imx415_power_off(struct imx415 *imx415)
{
	if (imx415->is_thunderboot) {
		if (imx415->is_first_streamoff) {
			imx415->is_thunderboot = false;
			imx415->is_first_streamoff = false;
		} else {
			return;
		}
	}

	if (!IS_ERR(imx415->reset_gpio))
		gpiod_direction_output(imx415->reset_gpio, 1);
	if (!IS_ERR(imx415->power_gpio))
		gpiod_direction_output(imx415->power_gpio, 0);
}

static int imx415_runtime_resume(struct device *dev)
{
	struct i2c_client *client = to_i2c_client(dev);
	struct v4l2_subdev *sd = i2c_get_clientdata(client);
	struct imx415 *imx415 = to_imx415(sd);

	return __imx415_power_on(imx415);
}

static int imx415_runtime_suspend(struct device *dev)
{
	struct i2c_client *client = to_i2c_client(dev);
	struct v4l2_subdev *sd = i2c_get_clientdata(client);
	struct imx415 *imx415 = to_imx415(sd);

	__imx415_power_off(imx415);

	return 0;
}

#ifdef CONFIG_VIDEO_V4L2_SUBDEV_API
static int imx415_open(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh)
{
	struct imx415 *imx415 = to_imx415(sd);
	struct v4l2_mbus_framefmt *try_fmt =
				v4l2_subdev_get_try_format(sd, fh->pad, 0);
	const struct imx415_mode *def_mode = &supported_modes[0];

	mutex_lock(&imx415->mutex);
	/* Initialize try_fmt */
	try_fmt->width = def_mode->width;
	try_fmt->height = def_mode->height;
	try_fmt->code = def_mode->bus_fmt;
	try_fmt->field = V4L2_FIELD_NONE;

	mutex_unlock(&imx415->mutex);
	/* No crop or compose */

	return 0;
}
#endif

static int imx415_enum_frame_interval(struct v4l2_subdev *sd,
	struct v4l2_subdev_pad_config *cfg,
	struct v4l2_subdev_frame_interval_enum *fie)
{
	struct imx415 *imx415 = to_imx415(sd);

	if (fie->index >= imx415->cfg_num)
		return -EINVAL;

	fie->code = supported_modes[fie->index].bus_fmt;
	fie->width = supported_modes[fie->index].width;
	fie->height = supported_modes[fie->index].height;
	fie->interval = supported_modes[fie->index].max_fps;
	fie->reserved[0] = supported_modes[fie->index].hdr_mode;
	return 0;
}

#define CROP_START(SRC, DST) (((SRC) - (DST)) / 2 / 4 * 4)
#define DST_WIDTH_3840 3840
#define DST_HEIGHT_2160 2160
#define DST_WIDTH_1920 1920
#define DST_HEIGHT_1080 1080

/*
 * The resolution of the driver configuration needs to be exactly
 * the same as the current output resolution of the sensor,
 * the input width of the isp needs to be 16 aligned,
 * the input height of the isp needs to be 8 aligned.
 * Can be cropped to standard resolution by this function,
 * otherwise it will crop out strange resolution according
 * to the alignment rules.
 */
static int imx415_get_selection(struct v4l2_subdev *sd,
				struct v4l2_subdev_pad_config *cfg,
				struct v4l2_subdev_selection *sel)
{
	struct imx415 *imx415 = to_imx415(sd);

	if (sel->target == V4L2_SEL_TGT_CROP_BOUNDS) {
		if (imx415->cur_mode->width == 3864) {
			sel->r.left = CROP_START(imx415->cur_mode->width, DST_WIDTH_3840);
			sel->r.width = DST_WIDTH_3840;
			sel->r.top = CROP_START(imx415->cur_mode->height, DST_HEIGHT_2160);
			sel->r.height = DST_HEIGHT_2160;
		} else if (imx415->cur_mode->width == 1944) {
			sel->r.left = CROP_START(imx415->cur_mode->width, DST_WIDTH_1920);
			sel->r.width = DST_WIDTH_1920;
			sel->r.top = CROP_START(imx415->cur_mode->height, DST_HEIGHT_1080);
			sel->r.height = DST_HEIGHT_1080;
		} else {
			sel->r.left = CROP_START(imx415->cur_mode->width, imx415->cur_mode->width);
			sel->r.width = imx415->cur_mode->width;
			sel->r.top = CROP_START(imx415->cur_mode->height, imx415->cur_mode->height);
			sel->r.height = imx415->cur_mode->height;
		}
		return 0;
	}
	return -EINVAL;
}

static const struct dev_pm_ops imx415_pm_ops = {
	SET_RUNTIME_PM_OPS(imx415_runtime_suspend,
			   imx415_runtime_resume, NULL)
};

#ifdef CONFIG_VIDEO_V4L2_SUBDEV_API
static const struct v4l2_subdev_internal_ops imx415_internal_ops = {
	.open = imx415_open,
};
#endif

static const struct v4l2_subdev_core_ops imx415_core_ops = {
	.s_power = imx415_s_power,
	.ioctl = imx415_ioctl,
#ifdef CONFIG_COMPAT
	.compat_ioctl32 = imx415_compat_ioctl32,
#endif
};

static const struct v4l2_subdev_video_ops imx415_video_ops = {
	.s_stream = imx415_s_stream,
	.g_frame_interval = imx415_g_frame_interval,
};

static const struct v4l2_subdev_pad_ops imx415_pad_ops = {
	.enum_mbus_code = imx415_enum_mbus_code,
	.enum_frame_size = imx415_enum_frame_sizes,
	.enum_frame_interval = imx415_enum_frame_interval,
	.get_fmt = imx415_get_fmt,
	.set_fmt = imx415_set_fmt,
	.get_selection = imx415_get_selection,
	.get_mbus_config = imx415_g_mbus_config,
};

static const struct v4l2_subdev_ops imx415_subdev_ops = {
	.core	= &imx415_core_ops,
	.video	= &imx415_video_ops,
	.pad	= &imx415_pad_ops,
};
static int imx415_set_ctrl(struct v4l2_ctrl *ctrl)
{
	struct imx415 *imx415 = container_of(ctrl->handler,
					     struct imx415, ctrl_handler);
	struct i2c_client *client = imx415->client;
	s64 max;
	u32 vts = 0, val;
	int ret = 0;
	u32 shr0 = 0;

	/* Propagate change of current control to all related controls */
	switch (ctrl->id) {
	case V4L2_CID_VBLANK:
		if (imx415->cur_mode->hdr_mode == NO_HDR) {
			/* Update max exposure while meeting expected vblanking */
			max = imx415->cur_mode->height + ctrl->val - 8;
			__v4l2_ctrl_modify_range(imx415->exposure,
					 imx415->exposure->minimum, max,
					 imx415->exposure->step,
					 imx415->exposure->default_value);
		}
		break;
	}

	if (!pm_runtime_get_if_in_use(&client->dev))
		return 0;

	switch (ctrl->id) {
	case V4L2_CID_EXPOSURE:
		if (imx415->cur_mode->hdr_mode != NO_HDR)
			return ret;
		shr0 = imx415->cur_vts - ctrl->val;
		ret = imx415_write_reg(imx415->client, IMX415_LF_EXPO_REG_L,
				       IMX415_REG_VALUE_08BIT,
				       IMX415_FETCH_EXP_L(shr0));
		ret |= imx415_write_reg(imx415->client, IMX415_LF_EXPO_REG_M,
				       IMX415_REG_VALUE_08BIT,
				       IMX415_FETCH_EXP_M(shr0));
		ret |= imx415_write_reg(imx415->client, IMX415_LF_EXPO_REG_H,
				       IMX415_REG_VALUE_08BIT,
				       IMX415_FETCH_EXP_H(shr0));
		dev_dbg(&client->dev, "set exposure(shr0) %d = cur_vts(%d) - val(%d)\n",
			shr0, imx415->cur_vts, ctrl->val);
		break;
	case V4L2_CID_ANALOGUE_GAIN:
		if (imx415->cur_mode->hdr_mode != NO_HDR)
			return ret;
		ret = imx415_write_reg(imx415->client, IMX415_LF_GAIN_REG_H,
				       IMX415_REG_VALUE_08BIT,
				       IMX415_FETCH_GAIN_H(ctrl->val));
		ret |= imx415_write_reg(imx415->client, IMX415_LF_GAIN_REG_L,
				       IMX415_REG_VALUE_08BIT,
				       IMX415_FETCH_GAIN_L(ctrl->val));
		dev_dbg(&client->dev, "set analog gain 0x%x\n",
			ctrl->val);
		break;
	case V4L2_CID_VBLANK:
		vts = ctrl->val + imx415->cur_mode->height;
		/*
		 * vts of hdr mode is double to correct T-line calculation.
		 * Restore before write to reg.
		 */
		if (imx415->cur_mode->hdr_mode == HDR_X2) {
			vts = (vts + 3) / 4 * 4;
			imx415->cur_vts = vts;
			vts /= 2;
		} else if (imx415->cur_mode->hdr_mode == HDR_X3) {
			vts = (vts + 11) / 12 * 12;
			imx415->cur_vts = vts;
			vts /= 4;
		} else {
			imx415->cur_vts = vts;
		}
		ret = imx415_write_reg(imx415->client, IMX415_VTS_REG_L,
				       IMX415_REG_VALUE_08BIT,
				       IMX415_FETCH_VTS_L(vts));
		ret |= imx415_write_reg(imx415->client, IMX415_VTS_REG_M,
				       IMX415_REG_VALUE_08BIT,
				       IMX415_FETCH_VTS_M(vts));
		ret |= imx415_write_reg(imx415->client, IMX415_VTS_REG_H,
				       IMX415_REG_VALUE_08BIT,
				       IMX415_FETCH_VTS_H(vts));
		dev_dbg(&client->dev, "set vblank 0x%x vts %d\n",
			ctrl->val, vts);
		break;
	case V4L2_CID_HFLIP:
		ret = imx415_read_reg(imx415->client, IMX415_FLIP_REG,
				      IMX415_REG_VALUE_08BIT, &val);
		if (ret)
			break;
		if (ctrl->val)
			val |= IMX415_MIRROR_BIT_MASK;
		else
			val &= ~IMX415_MIRROR_BIT_MASK;
		ret = imx415_write_reg(imx415->client, IMX415_FLIP_REG,
				       IMX415_REG_VALUE_08BIT, val);
		break;
	case V4L2_CID_VFLIP:
		ret = imx415_read_reg(imx415->client, IMX415_FLIP_REG,
				      IMX415_REG_VALUE_08BIT, &val);
		if (ret)
			break;
		if (ctrl->val)
			val |= IMX415_FLIP_BIT_MASK;
		else
			val &= ~IMX415_FLIP_BIT_MASK;
		ret = imx415_write_reg(imx415->client, IMX415_FLIP_REG,
				       IMX415_REG_VALUE_08BIT, val);
		break;
	default:
		dev_warn(&client->dev, "%s Unhandled id:0x%x, val:0x%x\n",
			 __func__, ctrl->id, ctrl->val);
		break;
	}

	pm_runtime_put(&client->dev);

	return ret;
}
static const struct v4l2_ctrl_ops imx415_ctrl_ops = {
	.s_ctrl = imx415_set_ctrl,
};

static int imx415_initialize_controls(struct imx415 *imx415)
{
	const struct imx415_mode *mode;
	struct v4l2_ctrl_handler *handler;
	s64 exposure_max, vblank_def;
	u64 pixel_rate;
	u32 h_blank;
	int ret;

	handler = &imx415->ctrl_handler;
	mode = imx415->cur_mode;
	ret = v4l2_ctrl_handler_init(handler, 8);
	if (ret)
		return ret;
	handler->lock = &imx415->mutex;

	imx415->link_freq = v4l2_ctrl_new_int_menu(handler, NULL,
				V4L2_CID_LINK_FREQ,
				ARRAY_SIZE(link_freq_items) - 1, 0,
				link_freq_items);
	v4l2_ctrl_s_ctrl(imx415->link_freq, mode->mipi_freq_idx);

	/* pixel rate = link frequency * 2 * lanes / BITS_PER_SAMPLE */
	pixel_rate = (u32)link_freq_items[mode->mipi_freq_idx] / mode->bpp * 2 * IMX415_4LANES;
	imx415->pixel_rate = v4l2_ctrl_new_std(handler, NULL,
		V4L2_CID_PIXEL_RATE, 0, IMX415_MAX_PIXEL_RATE,
		1, pixel_rate);

	h_blank = mode->hts_def - mode->width;
	imx415->hblank = v4l2_ctrl_new_std(handler, NULL, V4L2_CID_HBLANK,
				h_blank, h_blank, 1, h_blank);
	if (imx415->hblank)
		imx415->hblank->flags |= V4L2_CTRL_FLAG_READ_ONLY;

	vblank_def = mode->vts_def - mode->height;
	imx415->vblank = v4l2_ctrl_new_std(handler, &imx415_ctrl_ops,
				V4L2_CID_VBLANK, vblank_def,
				IMX415_VTS_MAX - mode->height,
				1, vblank_def);
	imx415->cur_vts = mode->vts_def;

	exposure_max = mode->vts_def - 8;
	imx415->exposure = v4l2_ctrl_new_std(handler, &imx415_ctrl_ops,
				V4L2_CID_EXPOSURE, IMX415_EXPOSURE_MIN,
				exposure_max, IMX415_EXPOSURE_STEP,
				mode->exp_def);

	imx415->anal_a_gain = v4l2_ctrl_new_std(handler, &imx415_ctrl_ops,
				V4L2_CID_ANALOGUE_GAIN, IMX415_GAIN_MIN,
				IMX415_GAIN_MAX, IMX415_GAIN_STEP,
				IMX415_GAIN_DEFAULT);

	v4l2_ctrl_new_std(handler, &imx415_ctrl_ops, V4L2_CID_HFLIP, 0, 1, 1, 0);
	v4l2_ctrl_new_std(handler, &imx415_ctrl_ops, V4L2_CID_VFLIP, 0, 1, 1, 0);

	if (handler->error) {
		ret = handler->error;
		dev_err(&imx415->client->dev,
			"Failed to init controls(%d)\n", ret);
		goto err_free_handler;
	}

	imx415->subdev.ctrl_handler = handler;
	imx415->has_init_exp = false;

	return 0;

err_free_handler:
	v4l2_ctrl_handler_free(handler);

	return ret;
}

static int imx415_check_sensor_id(struct imx415 *imx415,
				  struct i2c_client *client)
{
	struct device *dev = &imx415->client->dev;
	u32 id = 1;
	int ret;

	if (imx415->is_thunderboot) {
		dev_info(dev, "Enable thunderboot mode, skip sensor id check\n");
		return 0;
	}

	ret = imx415_read_reg(client, IMX415_REG_CHIP_ID,
			      IMX415_REG_VALUE_08BIT, &id);
	if (id != CHIP_ID) {
		dev_err(dev, "Unexpected sensor id(%06x), ret(%d)\n", id, ret);
		return -ENODEV;
	}

	dev_info(dev, "Detected imx415 id %06x\n", CHIP_ID);

	return 0;
}

static int imx415_probe(struct i2c_client *client,
			const struct i2c_device_id *id)
{
	struct device *dev = &client->dev;
	struct device_node *node = dev->of_node;
	struct imx415 *imx415;
	struct v4l2_subdev *sd;
	char facing[2];
	int ret;
	u32 i, hdr_mode = 0;

	dev_info(dev, "driver version: %02x.%02x.%02x",
		DRIVER_VERSION >> 16,
		(DRIVER_VERSION & 0xff00) >> 8,
		DRIVER_VERSION & 0x00ff);

	imx415 = devm_kzalloc(dev, sizeof(*imx415), GFP_KERNEL);
	if (!imx415)
		return -ENOMEM;

	ret = of_property_read_u32(node, RKMODULE_CAMERA_MODULE_INDEX,
				   &imx415->module_index);
	ret |= of_property_read_string(node, RKMODULE_CAMERA_MODULE_FACING,
				       &imx415->module_facing);
	ret |= of_property_read_string(node, RKMODULE_CAMERA_MODULE_NAME,
				       &imx415->module_name);
	ret |= of_property_read_string(node, RKMODULE_CAMERA_LENS_NAME,
				       &imx415->len_name);
	if (ret) {
		dev_err(dev, "could not get module information!\n");
		return -EINVAL;
	}

	hdr_mode = NO_HDR;
	imx415->client = client;
	imx415->cfg_num = ARRAY_SIZE(supported_modes);
	for (i = 0; i < imx415->cfg_num; i++) {
		if (hdr_mode == supported_modes[i].hdr_mode) {
			imx415->cur_mode = &supported_modes[i];
			break;
		}
	}

	imx415->is_thunderboot = IS_ENABLED(CONFIG_VIDEO_ROCKCHIP_THUNDER_BOOT_ISP);

	imx415->xvclk = devm_clk_get(dev, "xvclk");
	if (IS_ERR(imx415->xvclk)) {
		dev_err(dev, "Failed to get xvclk\n");
		return -EINVAL;
	}

	imx415->reset_gpio = devm_gpiod_get(dev, "reset", GPIOD_ASIS);
	if (IS_ERR(imx415->reset_gpio))
		dev_warn(dev, "Failed to get reset-gpios\n");
	imx415->power_gpio = devm_gpiod_get(dev, "pwdn", GPIOD_ASIS);
	if (IS_ERR(imx415->power_gpio))
		dev_warn(dev, "Failed to get power-gpios\n");
	imx415->pinctrl = devm_pinctrl_get(dev);
	if (!IS_ERR(imx415->pinctrl)) {
		imx415->pins_default =
			pinctrl_lookup_state(imx415->pinctrl,
					     OF_CAMERA_PINCTRL_STATE_DEFAULT);
		if (IS_ERR(imx415->pins_default))
			dev_info(dev, "could not get default pinstate\n");
	} else {
		dev_info(dev, "no pinctrl\n");
	}

	mutex_init(&imx415->mutex);

	sd = &imx415->subdev;
	v4l2_i2c_subdev_init(sd, client, &imx415_subdev_ops);
	ret = imx415_initialize_controls(imx415);
	if (ret)
		goto err_destroy_mutex;

	ret = __imx415_power_on(imx415);
	if (ret)
		goto err_free_handler;

	ret = imx415_check_sensor_id(imx415, client);
	if (ret)
		goto err_power_off;

#ifdef CONFIG_VIDEO_V4L2_SUBDEV_API
	sd->internal_ops = &imx415_internal_ops;
	sd->flags |= V4L2_SUBDEV_FL_HAS_DEVNODE |
		     V4L2_SUBDEV_FL_HAS_EVENTS;
#endif
#if defined(CONFIG_MEDIA_CONTROLLER)
	imx415->pad.flags = MEDIA_PAD_FL_SOURCE;
	sd->entity.function = MEDIA_ENT_F_CAM_SENSOR;
	ret = media_entity_pads_init(&sd->entity, 1, &imx415->pad);
	if (ret < 0)
		goto err_power_off;
#endif

	memset(facing, 0, sizeof(facing));
	if (strcmp(imx415->module_facing, "back") == 0)
		facing[0] = 'b';
	else
		facing[0] = 'f';

	snprintf(sd->name, sizeof(sd->name), "m%02d_%s_%s %s",
		 imx415->module_index, facing,
		 IMX415_NAME, dev_name(sd->dev));
	dev_info(&imx415->client->dev, "%s: SD name(%s)", __func__, sd->name);
	ret = v4l2_async_register_subdev_sensor_common(sd);
	if (ret) {
		dev_err(dev, "v4l2 async register subdev failed\n");
		goto err_clean_entity;
	}

	pm_runtime_set_active(dev);
	pm_runtime_enable(dev);
	pm_runtime_idle(dev);

	return 0;

err_clean_entity:
#if defined(CONFIG_MEDIA_CONTROLLER)
	media_entity_cleanup(&sd->entity);
#endif
err_power_off:
	__imx415_power_off(imx415);
err_free_handler:
	v4l2_ctrl_handler_free(&imx415->ctrl_handler);
err_destroy_mutex:
	mutex_destroy(&imx415->mutex);

	return ret;
}

static int imx415_remove(struct i2c_client *client)
{
	struct v4l2_subdev *sd = i2c_get_clientdata(client);
	struct imx415 *imx415 = to_imx415(sd);

	v4l2_async_unregister_subdev(sd);
#if defined(CONFIG_MEDIA_CONTROLLER)
	media_entity_cleanup(&sd->entity);
#endif
	v4l2_ctrl_handler_free(&imx415->ctrl_handler);
	mutex_destroy(&imx415->mutex);

	pm_runtime_disable(&client->dev);
	if (!pm_runtime_status_suspended(&client->dev))
		__imx415_power_off(imx415);
	pm_runtime_set_suspended(&client->dev);

	return 0;
}

#if IS_ENABLED(CONFIG_OF)
static const struct of_device_id imx415_of_match[] = {
	{ .compatible = "sony,imx415" },
	{},
};
MODULE_DEVICE_TABLE(of, imx415_of_match);
#endif

static const struct i2c_device_id imx415_match_id[] = {
	{ "sony,imx415", 0 },
	{ },
};

static struct i2c_driver imx415_i2c_driver = {
	.driver = {
		.name = IMX415_NAME,
		.pm = &imx415_pm_ops,
		.of_match_table = of_match_ptr(imx415_of_match),
	},
	.probe		= &imx415_probe,
	.remove		= &imx415_remove,
	.id_table	= imx415_match_id,
};

static int __init sensor_mod_init(void)
{
	return i2c_add_driver(&imx415_i2c_driver);
}

static void __exit sensor_mod_exit(void)
{
	i2c_del_driver(&imx415_i2c_driver);
}

device_initcall_sync(sensor_mod_init);
module_exit(sensor_mod_exit);

MODULE_DESCRIPTION("Sony imx415 sensor driver");
MODULE_LICENSE("GPL v2");

And finally the full dmesg kernel log goes as follows:

khadas@Khadas:~$ dmesg
[    3.639301] Booting Linux on physical CPU 0x0000000000 [0x412fd050]
[    3.639327] Linux version 5.10.66 (karim@KarimLuxolis) (aarch64-none-linux-gnu-gcc (GNU Toolchain for the A-profile Architecture 10.3-2021.07 (arm-10.29)) 10.3.1 20210621, GNU ld (GNU Toolchain for the A-profile Architecture 10.3-2021.07 (arm-10.29)) 2.36.1.20210621) #1.4.2 SMP PREEMPT Wed Feb 1 13:55:17 EST 2023
[    3.649994] Machine model: Khadas Edge2
[    3.650089] earlycon: uart8250 at MMIO32 0x00000000feb50000 (options '')
[    3.654070] printk: bootconsole [uart8250] enabled
[    3.654570] efi: UEFI not found.
[    3.658473] OF: fdt: Reserved memory: failed to reserve memory for node 'drm-logo@00000000': base 0x0000000000000000, size 0 MiB
[    3.659522] OF: fdt: Reserved memory: failed to reserve memory for node 'drm-cubic-lut@00000000': base 0x0000000000000000, size 0 MiB
[    3.660668] Reserved memory: created CMA memory pool at 0x00000001ff800000, size 8 MiB
[    3.661380] OF: reserved mem: initialized node cma, compatible id shared-dma-pool
[    3.810394] Zone ranges:
[    3.810632]   DMA      [mem 0x0000000000200000-0x00000000ffffffff]
[    3.811196]   DMA32    empty
[    3.811464]   Normal   [mem 0x0000000100000000-0x00000001ffffffff]
[    3.812024] Movable zone start for each node
[    3.812411] Early memory node ranges
[    3.812737]   node   0: [mem 0x0000000000200000-0x00000000083fffff]
[    3.813302]   node   0: [mem 0x0000000009400000-0x00000000efffffff]
[    3.813871]   node   0: [mem 0x0000000100000000-0x00000001ffffffff]
[    3.814439] Initmem setup node 0 [mem 0x0000000000200000-0x00000001ffffffff]
[    3.815072] On node 0 totalpages: 2027008
[    3.815079]   DMA zone: 15288 pages used for memmap
[    3.815084]   DMA zone: 0 pages reserved
[    3.815090]   DMA zone: 978432 pages, LIFO batch:63
[    3.815096]   Normal zone: 16384 pages used for memmap
[    3.815101]   Normal zone: 1048576 pages, LIFO batch:63
[    3.859754] psci: probing for conduit method from DT.
[    3.860220] psci: PSCIv1.1 detected in firmware.
[    3.860637] psci: Using standard PSCI v0.2 function IDs
[    3.861110] psci: Trusted OS migration not required
[    3.861553] psci: SMC Calling Convention v1.2
[    3.862357] percpu: Embedded 32 pages/cpu s93672 r8192 d29208 u131072
[    3.862973] pcpu-alloc: s93672 r8192 d29208 u131072 alloc=32*4096
[    3.862983] pcpu-alloc: [0] 0 [0] 1 [0] 2 [0] 3 [0] 4 [0] 5 [0] 6 [0] 7 
[    3.863132] Detected VIPT I-cache on CPU0
[    3.863538] CPU features: detected: GIC system register CPU interface
[    3.864124] CPU features: detected: Virtualization Host Extensions
[    3.864688] CPU features: detected: ARM errata 1165522, 1319367, or 1530923
[    3.865323] alternatives: patching kernel code
[    3.866041] Built 1 zonelists, mobility grouping on.  Total pages: 1995336
[    3.866665] Kernel command line: root=UUID=7a1d128b-f474-484e-a59b-bed1745bef11 rootflags=data=writeback rw rootfstype=ext4 storagemedia=emmc androidboot.storagemedia=emmc androidboot.mode=normal  khadas_board=Edge2 earlycon=uart8250,mmio32,0xfeb50000 console=ttyFIQ0 console=tty0 irqchip.gicv3_pseudo_nmi=0 partition_type=vendor fan=auto 
[    3.870589] Dentry cache hash table entries: 1048576 (order: 11, 8388608 bytes, linear)
[    3.871699] Inode-cache hash table entries: 524288 (order: 10, 4194304 bytes, linear)
[    3.872407] mem auto-init: stack:off, heap alloc:off, heap free:off
[    3.879246] software IO TLB: mapped [mem 0x00000000ec000000-0x00000000f0000000] (64MB)
[    3.953162] Memory: 7836032K/8108032K available (14336K kernel code, 3068K rwdata, 5388K rodata, 6016K init, 806K bss, 263808K reserved, 8192K cma-reserved)
[    3.954568] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=8, Nodes=1
[    3.955190] ftrace: allocating 55192 entries in 216 pages
[    4.052984] ftrace: allocated 216 pages with 4 groups
[    4.053748] rcu: Preemptible hierarchical RCU implementation.
[    4.054270] rcu: 	RCU event tracing is enabled.
[    4.054680] 	Trampoline variant of Tasks RCU enabled.
[    4.055135] 	Rude variant of Tasks RCU enabled.
[    4.055546] 	Tracing variant of Tasks RCU enabled.
[    4.055979] rcu: RCU calculated value of scheduler-enlistment delay is 30 jiffies.
[    4.061731] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
[    4.065225] GICv3: GIC: Using split EOI/Deactivate mode
[    4.065701] GICv3: 480 SPIs implemented
[    4.066048] GICv3: 0 Extended SPIs implemented
[    4.066479] GICv3: Distributor has no Range Selector support
[    4.066993] GICv3: 16 PPIs implemented
[    4.067376] GICv3: CPU0: found redistributor 0 region 0:0x00000000fe680000
[    4.068133] ITS [mem 0xfe640000-0xfe65ffff]
[    4.068572] ITS@0x00000000fe640000: allocated 8192 Devices @1001d0000 (indirect, esz 8, psz 64K, shr 0)
[    4.069444] ITS@0x00000000fe640000: allocated 32768 Interrupt Collections @1001e0000 (flat, esz 2, psz 64K, shr 0)
[    4.070379] ITS: using cache flushing for cmd queue
[    4.070864] ITS [mem 0xfe660000-0xfe67ffff]
[    4.071296] ITS@0x00000000fe660000: allocated 8192 Devices @100200000 (indirect, esz 8, psz 64K, shr 0)
[    4.072167] ITS@0x00000000fe660000: allocated 32768 Interrupt Collections @100210000 (flat, esz 2, psz 64K, shr 0)
[    4.073100] ITS: using cache flushing for cmd queue
[    4.073781] GICv3: using LPI property table @0x0000000100220000
[    4.074477] GIC: using cache flushing for LPI property table
[    4.074992] GICv3: CPU0: using allocated LPI pending table @0x0000000100230000
[    4.075825] random: get_random_bytes called from start_kernel+0x3e0/0x5d8 with crng_init=0
[    4.208722] arch_timer: cp15 timer(s) running at 24.00MHz (phys).
[    4.210032] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x588fe9dc0, max_idle_ns: 440795202592 ns
[    4.211018] sched_clock: 56 bits at 24MHz, resolution 41ns, wraps every 4398046511097ns
[    4.213209] Console: colour dummy device 80x25
[    4.213620] printk: console [tty0] enabled
[    4.214005] printk: bootconsole [uart8250] disabled
[    4.214483] Calibrating delay loop (skipped), value calculated using timer frequency.. 48.00 BogoMIPS (lpj=80000)
[    4.214513] pid_max: default: 32768 minimum: 301
[    4.214637] LSM: Security Framework initializing
[    4.214731] Mount-cache hash table entries: 16384 (order: 5, 131072 bytes, linear)
[    4.214777] Mountpoint-cache hash table entries: 16384 (order: 5, 131072 bytes, linear)
[    4.217052] rcu: Hierarchical SRCU implementation.
[    4.217894] Platform MSI: msi-controller@fe640000 domain created
[    4.217930] Platform MSI: msi-controller@fe660000 domain created
[    4.218347] PCI/MSI: /interrupt-controller@fe600000/msi-controller@fe640000 domain created
[    4.218389] PCI/MSI: /interrupt-controller@fe600000/msi-controller@fe660000 domain created
[    4.218610] EFI services will not be available.
[    4.219025] smp: Bringing up secondary CPUs ...
[    4.220387] Detected VIPT I-cache on CPU1
[    4.220426] GICv3: CPU1: found redistributor 100 region 0:0x00000000fe6a0000
[    4.220445] GICv3: CPU1: using allocated LPI pending table @0x0000000100240000
[    4.220489] CPU1: Booted secondary processor 0x0000000100 [0x412fd050]
[    4.221914] Detected VIPT I-cache on CPU2
[    4.221946] GICv3: CPU2: found redistributor 200 region 0:0x00000000fe6c0000
[    4.221965] GICv3: CPU2: using allocated LPI pending table @0x0000000100250000
[    4.222006] CPU2: Booted secondary processor 0x0000000200 [0x412fd050]
[    4.223413] Detected VIPT I-cache on CPU3
[    4.223443] GICv3: CPU3: found redistributor 300 region 0:0x00000000fe6e0000
[    4.223460] GICv3: CPU3: using allocated LPI pending table @0x0000000100260000
[    4.223500] CPU3: Booted secondary processor 0x0000000300 [0x412fd050]
[    4.224878] CPU features: detected: Spectre-v4
[    4.224882] Detected PIPT I-cache on CPU4
[    4.224894] GICv3: CPU4: found redistributor 400 region 0:0x00000000fe700000
[    4.224903] GICv3: CPU4: using allocated LPI pending table @0x0000000100270000
[    4.224925] CPU4: Booted secondary processor 0x0000000400 [0x414fd0b0]
[    4.226240] Detected PIPT I-cache on CPU5
[    4.226254] GICv3: CPU5: found redistributor 500 region 0:0x00000000fe720000
[    4.226262] GICv3: CPU5: using allocated LPI pending table @0x0000000100280000
[    4.226285] CPU5: Booted secondary processor 0x0000000500 [0x414fd0b0]
[    4.227632] Detected PIPT I-cache on CPU6
[    4.227646] GICv3: CPU6: found redistributor 600 region 0:0x00000000fe740000
[    4.227655] GICv3: CPU6: using allocated LPI pending table @0x0000000100290000
[    4.227677] CPU6: Booted secondary processor 0x0000000600 [0x414fd0b0]
[    4.228984] Detected PIPT I-cache on CPU7
[    4.228997] GICv3: CPU7: found redistributor 700 region 0:0x00000000fe760000
[    4.229006] GICv3: CPU7: using allocated LPI pending table @0x00000001002a0000
[    4.229028] CPU7: Booted secondary processor 0x0000000700 [0x414fd0b0]
[    4.229110] smp: Brought up 1 node, 8 CPUs
[    4.229487] SMP: Total of 8 processors activated.
[    4.229504] CPU features: detected: Privileged Access Never
[    4.229520] CPU features: detected: User Access Override
[    4.229538] CPU features: detected: 32-bit EL0 Support
[    4.229554] CPU features: detected: Common not Private translations
[    4.229572] CPU features: detected: RAS Extension Support
[    4.229588] CPU features: detected: Data cache clean to the PoU not required for I/D coherence
[    4.229610] CPU features: detected: CRC32 instructions
[    4.229626] CPU features: detected: Speculative Store Bypassing Safe (SSBS)
[    4.229647] CPU features: detected: RCpc load-acquire (LDAPR)
[    4.229742] CPU: All CPU(s) started at EL2
[    4.231263] devtmpfs: initialized
[    4.243244] Registered cp15_barrier emulation handler
[    4.243257] Registered setend emulation handler
[    4.243340] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 6370867519511994 ns
[    4.243352] futex hash table entries: 2048 (order: 5, 131072 bytes, linear)
[    4.243532] pinctrl core: initialized pinctrl subsystem
[    4.243638] regulator-dummy: no parameters, enabled
[    4.243766] DMI not present or invalid.
[    4.243874] NET: Registered protocol family 16
[    4.244975] DMA: preallocated 1024 KiB GFP_KERNEL pool for atomic allocations
[    4.245026] DMA: preallocated 1024 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations
[    4.245059] audit: initializing netlink subsys (disabled)
[    4.245140] audit: type=2000 audit(0.033:1): state=initialized audit_enabled=0 res=1
[    4.245645] thermal_sys: Registered thermal governor 'fair_share'
[    4.245647] thermal_sys: Registered thermal governor 'step_wise'
[    4.245655] thermal_sys: Registered thermal governor 'user_space'
[    4.245660] thermal_sys: Registered thermal governor 'power_allocator'
[    4.245790] thermal thermal_zone1: power_allocator: sustainable_power will be estimated
[    4.245826] thermal thermal_zone2: power_allocator: sustainable_power will be estimated
[    4.245858] thermal thermal_zone3: power_allocator: sustainable_power will be estimated
[    4.245890] thermal thermal_zone4: power_allocator: sustainable_power will be estimated
[    4.245922] thermal thermal_zone5: power_allocator: sustainable_power will be estimated
[    4.245953] thermal thermal_zone6: power_allocator: sustainable_power will be estimated
[    4.245977] cpuidle: using governor menu
[    4.245988] Registered FIQ tty driver
[    4.246166] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
[    4.246293] ASID allocator initialised with 65536 entries
[    4.247749] printk: console [ramoops-1] enabled
[    4.247756] pstore: Registered ramoops as persistent store backend
[    4.247762] ramoops: using 0xf0000@0x110000, ecc: 0
[    4.291585] rockchip-gpio fd8a0000.gpio: probed /pinctrl/gpio@fd8a0000
[    4.291876] rockchip-gpio fec20000.gpio: probed /pinctrl/gpio@fec20000
[    4.292085] rockchip-gpio fec30000.gpio: probed /pinctrl/gpio@fec30000
[    4.292345] rockchip-gpio fec40000.gpio: probed /pinctrl/gpio@fec40000
[    4.292597] rockchip-gpio fec50000.gpio: probed /pinctrl/gpio@fec50000
[    4.292648] rockchip-pinctrl pinctrl: probed pinctrl
[    4.294706] hw_wdt enter probe
[    4.294722] hlm hw-gpios: 8.
[    4.294732] create_khadas_attrs
[    4.303343] fiq_debugger fiq_debugger.0: IRQ fiq not found
[    4.303357] fiq_debugger fiq_debugger.0: IRQ wakeup not found
[    4.303365] fiq_debugger_probe: could not install nmi irq handler
[    4.303595] printk: console [ttyFIQ0] enabled
[    4.303693] Registered fiq debugger ttyFIQ0
[    4.303895] vcc12v_dcin: 12000 mV, enabled
[    4.303967] reg-fixed-voltage vcc12v-dcin: vcc12v_dcin supplying 12000000uV
[    4.304009] reg-fixed-voltage vcc5v0-sys: Looking up vin-supply from device tree
[    4.304013] vcc5v0_sys: supplied by vcc12v_dcin
[    4.304022] vcc12v_dcin: could not add device link regulator.2: -ENOENT
[    4.304036] vcc5v0_sys: 5000 mV, enabled
[    4.304095] reg-fixed-voltage vcc5v0-sys: vcc5v0_sys supplying 5000000uV
[    4.304136] reg-fixed-voltage vcc-1v1-nldo-s3: Looking up vin-supply from device tree
[    4.304139] vcc_1v1_nldo_s3: supplied by vcc5v0_sys
[    4.304146] vcc5v0_sys: could not add device link regulator.3: -ENOENT
[    4.304160] vcc_1v1_nldo_s3: 1100 mV, enabled
[    4.304214] reg-fixed-voltage vcc-1v1-nldo-s3: vcc_1v1_nldo_s3 supplying 1100000uV
[    4.304251] reg-fixed-voltage vcc5v0-usbdcin: Looking up vin-supply from device tree
[    4.304255] vcc5v0_usbdcin: supplied by vcc12v_dcin
[    4.304262] vcc12v_dcin: could not add device link regulator.4: -ENOENT
[    4.304279] vcc5v0_usbdcin: 5000 mV, enabled
[    4.304330] reg-fixed-voltage vcc5v0-usbdcin: vcc5v0_usbdcin supplying 5000000uV
[    4.304367] reg-fixed-voltage vcc5v0-usb: Looking up vin-supply from device tree
[    4.304371] vcc5v0_usb: supplied by vcc5v0_usbdcin
[    4.304378] vcc5v0_usbdcin: could not add device link regulator.5: -ENOENT
[    4.304391] vcc5v0_usb: 5000 mV, enabled
[    4.304449] reg-fixed-voltage vcc5v0-usb: vcc5v0_usb supplying 5000000uV
[    4.304539] vbus5v0_typec: 5000 mV, disabled
[    4.304581] reg-fixed-voltage vbus5v0-typec: Looking up vin-supply from device tree
[    4.304584] vbus5v0_typec: supplied by vcc5v0_usb
[    4.304622] reg-fixed-voltage vbus5v0-typec: vbus5v0_typec supplying 5000000uV
[    4.304666] vcc3v3_pcie20: 3300 mV, disabled
[    4.304704] reg-fixed-voltage vcc3v3-pcie20: Looking up vin-supply from device tree
[    4.304708] vcc3v3_pcie20: supplied by vcc12v_dcin
[    4.304739] reg-fixed-voltage vcc3v3-pcie20: vcc3v3_pcie20 supplying 3300000uV
[    4.304809] reg-fixed-voltage vcc5v0-host: Looking up vin-supply from device tree
[    4.304812] vcc5v0_host: supplied by vcc5v0_usb
[    4.304820] vcc5v0_usb: could not add device link regulator.8: -ENOENT
[    4.304837] vcc5v0_host: 5000 mV, enabled
[    4.304897] reg-fixed-voltage vcc5v0-host: vcc5v0_host supplying 5000000uV
[    4.304948] vcc3v3_lcd1_en: 3300 mV, enabled
[    4.305003] reg-fixed-voltage vcc3v3-lcd1-en: vcc3v3_lcd1_en supplying 3300000uV
[    4.305049] vcc3v3_lcd2_en: 3300 mV, enabled
[    4.305106] reg-fixed-voltage vcc3v3-lcd2-en: vcc3v3_lcd2_en supplying 3300000uV
[    4.305334] iommu: Default domain type: Translated 
[    4.305414] rk_iommu fdab9000.iommu: version = 2
[    4.305696] rockchip-pm-domain fd8d8000.power-management:power-controller: Looking up vdpu-supply from device tree
[    4.305712] rockchip-pm-domain fd8d8000.power-management:power-controller: Looking up vdpu-supply property in node /power-management@fd8d8000/power-controller failed
[    4.305763] rk_iommu fdb50800.iommu: version = 2
[    4.305969] rockchip-pm-domain fd8d8000.power-management:power-controller: Looking up rga30-supply from device tree
[    4.305985] rockchip-pm-domain fd8d8000.power-management:power-controller: Looking up rga30-supply property in node /power-management@fd8d8000/power-controller failed
[    4.306010] rk_iommu fdb60f00.iommu: version = 2
[    4.306147] rockchip-pm-domain fd8d8000.power-management:power-controller: Looking up rga31-supply from device tree
[    4.306162] rockchip-pm-domain fd8d8000.power-management:power-controller: Looking up rga31-supply property in node /power-management@fd8d8000/power-controller failed
[    4.306190] rk_iommu fdb70f00.iommu: version = 2
[    4.306347] rk_iommu fdb90480.iommu: version = 2
[    4.306525] rk_iommu fdba0800.iommu: version = 2
[    4.306704] rk_iommu fdba4800.iommu: version = 2
[    4.306882] rk_iommu fdba8800.iommu: version = 2
[    4.307056] rk_iommu fdbac800.iommu: version = 2
[    4.307231] rk_iommu fdbb0800.iommu: version = 2
[    4.307365] rockchip-pm-domain fd8d8000.power-management:power-controller: Looking up venc0-supply from device tree
[    4.307380] rockchip-pm-domain fd8d8000.power-management:power-controller: Looking up venc0-supply property in node /power-management@fd8d8000/power-controller failed
[    4.307426] rk_iommu fdbdf000.iommu: version = 2
[    4.307521] rockchip-pm-domain fd8d8000.power-management:power-controller: Looking up vcodec-supply from device tree
[    4.307536] rockchip-pm-domain fd8d8000.power-management:power-controller: Looking up vcodec-supply property in node /power-management@fd8d8000/power-controller failed
[    4.307626] rockchip-pm-domain fd8d8000.power-management:power-controller: Looking up venc1-supply from device tree
[    4.307640] rockchip-pm-domain fd8d8000.power-management:power-controller: Looking up venc1-supply property in node /power-management@fd8d8000/power-controller failed
[    4.307689] rk_iommu fdbef000.iommu: version = 2
[    4.307896] rockchip-pm-domain fd8d8000.power-management:power-controller: Looking up rkvdec0-supply from device tree
[    4.307910] rockchip-pm-domain fd8d8000.power-management:power-controller: Looking up rkvdec0-supply property in node /power-management@fd8d8000/power-controller failed
[    4.307965] rk_iommu fdc38700.iommu: version = 2
[    4.308167] rockchip-pm-domain fd8d8000.power-management:power-controller: Looking up rkvdec1-supply from device tree
[    4.308181] rockchip-pm-domain fd8d8000.power-management:power-controller: Looking up rkvdec1-supply property in node /power-management@fd8d8000/power-controller failed
[    4.308235] rk_iommu fdc48700.iommu: version = 2
[    4.308386] rockchip-pm-domain fd8d8000.power-management:power-controller: Looking up vi-supply from device tree
[    4.308400] rockchip-pm-domain fd8d8000.power-management:power-controller: Looking up vi-supply property in node /power-management@fd8d8000/power-controller failed
[    4.308449] rockchip-pm-domain fd8d8000.power-management:power-controller: Looking up isp1-supply from device tree
[    4.308463] rockchip-pm-domain fd8d8000.power-management:power-controller: Looking up isp1-supply property in node /power-management@fd8d8000/power-controller failed
[    4.308506] rk_iommu fdcb7f00.rkisp-unite-mmu: version = 2
[    4.308712] rk_iommu fdce0800.iommu: version = 2
[    4.308821] rk_iommu fdd97e00.iommu: version = 2
[    4.309104] SCSI subsystem initialized
[    4.309197] usbcore: registered new interface driver usbfs
[    4.309215] usbcore: registered new interface driver hub
[    4.309231] usbcore: registered new device driver usb
[    4.309268] mc: Linux media interface: v0.10
[    4.309281] videodev: Linux video capture interface: v2.00
[    4.309308] pps_core: LinuxPPS API ver. 1 registered
[    4.309314] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    4.309326] PTP clock support registered
[    4.309570] arm-scmi firmware:scmi: SCMI Notifications - Core Enabled.
[    4.309607] arm-scmi firmware:scmi: SCMI Protocol v2.0 'rockchip:' Firmware version 0x0
[    4.310661] Advanced Linux Sound Architecture Driver Initialized.
[    4.312141] rockchip-cpuinfo cpuinfo: SoC		: 35880000
[    4.312150] rockchip-cpuinfo cpuinfo: Serial		: de7f30658c3b21a4
[    4.312534] clocksource: Switched to clocksource arch_sys_counter
[    4.628134] VFS: Disk quotas dquot_6.6.0
[    4.628172] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[    4.628218] FS-Cache: Loaded
[    4.628337] CacheFiles: Loaded
[    4.633140] NET: Registered protocol family 2
[    4.633368] IP idents hash table entries: 131072 (order: 8, 1048576 bytes, linear)
[    4.634958] tcp_listen_portaddr_hash hash table entries: 4096 (order: 5, 163840 bytes, linear)
[    4.635045] TCP established hash table entries: 65536 (order: 7, 524288 bytes, linear)
[    4.635318] TCP bind hash table entries: 65536 (order: 9, 2097152 bytes, linear)
[    4.636002] TCP: Hash tables configured (established 65536 bind 65536)
[    4.636074] UDP hash table entries: 4096 (order: 6, 393216 bytes, linear)
[    4.636214] UDP-Lite hash table entries: 4096 (order: 6, 393216 bytes, linear)
[    4.636411] NET: Registered protocol family 1
[    4.636760] RPC: Registered named UNIX socket transport module.
[    4.636771] RPC: Registered udp transport module.
[    4.636777] RPC: Registered tcp transport module.
[    4.636782] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    4.637211] PCI: CLS 0 bytes, default 64
[    4.637549] Trying to unpack rootfs image as initramfs...
[    4.862305] Freeing initrd memory: 10632K
[    4.863119] hw perfevents: enabled with armv8_pmuv3 PMU driver, 7 counters available
[    4.863614] kvm [1]: IPA Size Limit: 40 bits
[    4.863629] kvm [1]: GICv3: no GICV resource entry
[    4.863635] kvm [1]: disabling GICv2 emulation
[    4.863641] kvm [1]: GIC system register CPU interface enabled
[    4.863789] kvm [1]: vgic interrupt IRQ9
[    4.863965] kvm [1]: VHE mode initialized successfully
[    4.866685] Initialise system trusted keyrings
[    4.866790] workingset: timestamp_bits=46 max_order=21 bucket_order=0

[    4.869066] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    4.869161] FS-Cache: Netfs 'nfs' registered for caching
[    4.869404] NFS: Registering the id_resolver key type
[    4.869418] Key type id_resolver registered
[    4.869424] Key type id_legacy registered
[    4.869461] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[    4.869469] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering...
[    4.869651] Key type asymmetric registered
[    4.869659] Asymmetric key parser 'x509' registered
[    4.869675] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 242)
[    4.869804] io scheduler mq-deadline registered
[    4.869814] io scheduler kyber registered
[    4.870360] rockchip-csi2-dphy-hw fedc0000.csi2-dphy0-hw: csi2 dphy hw probe successfully!
[    4.870602] rockchip-csi2-dphy csi2-dphy0: csi2 dphy0 probe successfully!
[    4.871837] phy phy-fd5d0000.syscon:usb2-phy@0.0: Looking up phy-supply from device tree
[    4.871844] phy phy-fd5d0000.syscon:usb2-phy@0.0: Looking up phy-supply property in node /syscon@fd5d0000/usb2-phy@0/otg-port failed
[    4.871884] phy phy-fd5d0000.syscon:usb2-phy@0.0: Looking up vbus-supply from device tree
[    4.871890] phy phy-fd5d0000.syscon:usb2-phy@0.0: Looking up vbus-supply property in node /syscon@fd5d0000/usb2-phy@0/otg-port failed
[    4.873049] phy phy-fd5d8000.syscon:usb2-phy@8000.1: Looking up phy-supply from device tree
[    4.873126] vcc5v0_host: could not add device link phy-fd5d8000.syscon:usb2-phy@8000.1: -ENOENT
[    4.874222] phy phy-fd5dc000.syscon:usb2-phy@c000.2: Looking up phy-supply from device tree
[    4.874231] vcc5v0_host: could not add device link phy-fd5dc000.syscon:usb2-phy@c000.2: -ENOENT
[    4.875729] phy phy-fee00000.phy.3: Looking up phy-supply from device tree
[    4.875734] phy phy-fee00000.phy.3: Looking up phy-supply property in node /phy@fee00000 failed
[    4.875859] phy phy-fee20000.phy.4: Looking up phy-supply from device tree
[    4.875878] phy phy-fee20000.phy.4: Looking up phy-supply property in node /phy@fee20000 failed
[    4.876344] phy phy-feda0000.phy.5: Looking up phy-supply from device tree
[    4.876348] phy phy-feda0000.phy.5: Looking up phy-supply property in node /phy@feda0000 failed
[    4.876462] phy phy-fedb0000.phy.6: Looking up phy-supply from device tree
[    4.876466] phy phy-fedb0000.phy.6: Looking up phy-supply property in node /phy@fedb0000 failed
[    4.876820] phy phy-fed60000.hdmiphy.7: Looking up phy-supply from device tree
[    4.876825] phy phy-fed60000.hdmiphy.7: Looking up phy-supply property in node /hdmiphy@fed60000 failed
[    4.877314] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: hdptx phy init success
[    4.878143] phy phy-fed80000.phy.8: Looking up phy-supply from device tree
[    4.878149] phy phy-fed80000.phy.8: Looking up phy-supply property in node /phy@fed80000/dp-port failed
[    4.878177] phy phy-fed80000.phy.9: Looking up phy-supply from device tree
[    4.878181] phy phy-fed80000.phy.9: Looking up phy-supply property in node /phy@fed80000/u3-port failed
[    4.879346] rk-pcie fe190000.pcie: invalid prsnt-gpios property in node
[    4.879360] rk-pcie fe190000.pcie: Looking up vpcie3v3-supply from device tree
[    4.879552] pwm-backlight backlight-mipi0: Looking up power-supply from device tree
[    4.879743] mpp_service mpp-srv: bc6c63a66626 author: Ivan.li 2022-12-29 arm64: dts: IR: Edge2: Changes the representation of the remote key value
[    4.879755] mpp_service mpp-srv: probe start
[    4.881567] mpp_vdpu2 fdb50400.vdpu: Adding to iommu group 1
[    4.881769] mpp_vdpu2 fdb50400.vdpu: probe device
[    4.881870] mpp_vdpu2 fdb50400.vdpu: reset group is empty!
[    4.881877] vdpu_init:501: No aclk reset resource define
[    4.881884] mpp_vdpu2 fdb50400.vdpu: reset group is empty!
[    4.881890] vdpu_init:504: No hclk reset resource define
[    4.882019] mpp_vdpu2 fdb50400.vdpu: probing finish
[    4.882217] mpp_vepu2 jpege-ccu: probing start
[    4.882225] mpp_vepu2 jpege-ccu: probing finish
[    4.882346] mpp_vepu2 fdba0000.jpege-core: Adding to iommu group 5
[    4.882487] mpp_vepu2 fdba0000.jpege-core: probing start
[    4.882628] mpp_vepu2 fdba0000.jpege-core: attach ccu success
[    4.882750] mpp_vepu2 fdba0000.jpege-core: probing finish
[    4.882844] mpp_vepu2 fdba4000.jpege-core: Adding to iommu group 6
[    4.882981] mpp_vepu2 fdba4000.jpege-core: probing start
[    4.883081] mpp_vepu2 fdba4000.jpege-core: attach ccu success
[    4.883193] mpp_vepu2 fdba4000.jpege-core: probing finish
[    4.883295] mpp_vepu2 fdba8000.jpege-core: Adding to iommu group 7
[    4.883435] mpp_vepu2 fdba8000.jpege-core: probing start
[    4.883529] mpp_vepu2 fdba8000.jpege-core: attach ccu success
[    4.883669] mpp_vepu2 fdba8000.jpege-core: probing finish
[    4.883773] mpp_vepu2 fdbac000.jpege-core: Adding to iommu group 8
[    4.883913] mpp_vepu2 fdbac000.jpege-core: probing start
[    4.884008] mpp_vepu2 fdbac000.jpege-core: attach ccu success
[    4.884130] mpp_vepu2 fdbac000.jpege-core: probing finish
[    4.884400] mpp-iep2 fdbb0000.iep: Adding to iommu group 9
[    4.884546] mpp-iep2 fdbb0000.iep: probe device
[    4.884683] mpp-iep2 fdbb0000.iep: allocate roi buffer failed
[    4.884763] rk-pcie fe190000.pcie: missing legacy IRQ resource
[    4.884777] rk-pcie fe190000.pcie: IRQ msi not found
[    4.884784] rk-pcie fe190000.pcie: use outband MSI support
[    4.884790] rk-pcie fe190000.pcie: Missing *config* reg space
[    4.884797] mpp-iep2 fdbb0000.iep: probing finish
[    4.884801] rk-pcie fe190000.pcie: host bridge /pcie@fe190000 ranges:
[    4.884819] rk-pcie fe190000.pcie:      err 0x00f4000000..0x00f40fffff -> 0x00f4000000
[    4.884831] rk-pcie fe190000.pcie:       IO 0x00f4100000..0x00f41fffff -> 0x00f4100000
[    4.884843] rk-pcie fe190000.pcie:      MEM 0x00f4200000..0x00f4ffffff -> 0x00f4200000
[    4.884854] rk-pcie fe190000.pcie:      MEM 0x0a00000000..0x0a3fffffff -> 0x0a00000000
[    4.884881] rk-pcie fe190000.pcie: Missing *config* reg space
[    4.884905] rk-pcie fe190000.pcie: invalid resource
[    4.885017] mpp_jpgdec fdb90000.jpegd: Adding to iommu group 4
[    4.885224] mpp_jpgdec fdb90000.jpegd: probe device
[    4.885454] mpp_jpgdec fdb90000.jpegd: probing finish
[    4.885785] mpp_rkvdec2 fdc30000.rkvdec-ccu: rkvdec-ccu, probing start
[    4.885841] mpp_rkvdec2 fdc30000.rkvdec-ccu: probing finish
[    4.885945] mpp_rkvdec2 fdc38100.rkvdec-core: Adding to iommu group 12
[    4.886191] mpp_rkvdec2 fdc38100.rkvdec-core: rkvdec-core, probing start
[    4.886300] mpp_rkvdec2 fdc38100.rkvdec-core: shared_niu_a is not found!
[    4.886308] rkvdec2_init:697: No niu aclk reset resource define
[    4.886315] mpp_rkvdec2 fdc38100.rkvdec-core: shared_niu_h is not found!
[    4.886321] rkvdec2_init:700: No niu hclk reset resource define
[    4.886384] mpp_rkvdec2 fdc38100.rkvdec-core: core_mask=00010001
[    4.886390] mpp_rkvdec2 fdc38100.rkvdec-core: attach ccu as core 0
[    4.886610] mpp_rkvdec2 fdc38100.rkvdec-core: sram_start 0x00000000fd601000
[    4.886617] mpp_rkvdec2 fdc38100.rkvdec-core: rcb_iova 0x0000000010000000
[    4.886624] mpp_rkvdec2 fdc38100.rkvdec-core: sram_size 491520
[    4.886630] mpp_rkvdec2 fdc38100.rkvdec-core: rcb_size 1048576
[    4.886637] mpp_rkvdec2 fdc38100.rkvdec-core: min_width 512
[    4.886668] mpp_rkvdec2 fdc38100.rkvdec-core: probing finish
[    4.886751] mpp_rkvdec2 fdc48100.rkvdec-core: Adding to iommu group 13
[    4.886974] mpp_rkvdec2 fdc48100.rkvdec-core: rkvdec-core, probing start
[    4.887082] mpp_rkvdec2 fdc48100.rkvdec-core: shared_niu_a is not found!
[    4.887090] rkvdec2_init:697: No niu aclk reset resource define
[    4.887097] mpp_rkvdec2 fdc48100.rkvdec-core: shared_niu_h is not found!
[    4.887103] rkvdec2_init:700: No niu hclk reset resource define
[    4.887156] mpp_rkvdec2 fdc48100.rkvdec-core: core_mask=00020002
[    4.887175] mpp_rkvdec2 fdc48100.rkvdec-core: attach ccu as core 1
[    4.887430] mpp_rkvdec2 fdc48100.rkvdec-core: sram_start 0x00000000fd679000
[    4.887437] mpp_rkvdec2 fdc48100.rkvdec-core: rcb_iova 0x0000000010100000
[    4.887444] mpp_rkvdec2 fdc48100.rkvdec-core: sram_size 487424
[    4.887450] mpp_rkvdec2 fdc48100.rkvdec-core: rcb_size 1048576
[    4.887457] mpp_rkvdec2 fdc48100.rkvdec-core: min_width 512
[    4.887489] mpp_rkvdec2 fdc48100.rkvdec-core: probing finish
[    4.887670] mpp_rkvenc2 rkvenc-ccu: probing start
[    4.887678] mpp_rkvenc2 rkvenc-ccu: probing finish
[    4.887791] mpp_rkvenc2 fdbd0000.rkvenc-core: Adding to iommu group 10
[    4.887956] mpp_rkvenc2 fdbd0000.rkvenc-core: probing start
[    4.887975] mpp_rkvenc2 fdbd0000.rkvenc-core: link mode task capacity 8
[    4.888116] mpp_rkvenc2 fdbd0000.rkvenc-core: attach ccu as core 0
[    4.888248] mpp_rkvenc2 fdbd0000.rkvenc-core: probing finish
[    4.888317] mpp_rkvenc2 fdbe0000.rkvenc-core: Adding to iommu group 11
[    4.888534] mpp_rkvenc2 fdbe0000.rkvenc-core: probing start
[    4.888552] mpp_rkvenc2 fdbe0000.rkvenc-core: link mode task capacity 8
[    4.888714] mpp_rkvenc2 fdbe0000.rkvenc-core: attach ccu as core 1
[    4.888840] mpp_rkvenc2 fdbe0000.rkvenc-core: probing finish
[    4.889063] rockchip-pm-domain fd8d8000.power-management:power-controller: Looking up av1-supply from device tree
[    4.889083] rockchip-pm-domain fd8d8000.power-management:power-controller: Looking up av1-supply property in node /power-management@fd8d8000/power-controller failed
[    4.889363] mpp_av1dec: Adding child /av1d@fdc70000
[    4.889587] mpp_av1dec: register device av1d-master
[    4.889608] mpp_av1dec av1d-master: av1_iommu_of_xlate,784
[    4.889630] av1_iommu_probe_device,736, consumer : av1d-master, supplier : fdca0000.iommu
[    4.889642] mpp_av1dec av1d-master: Adding to iommu group 17
[    4.889852] mpp_av1dec av1d-master: probing start
[    4.890099] mpp_av1dec av1d-master: probing finish
[    4.890136] mpp_service mpp-srv: probe success
[    4.897063] dma-pl330 fea10000.dma-controller: Loaded driver for PL330 DMAC-241330
[    4.897077] dma-pl330 fea10000.dma-controller: 	DBUFF-128x8bytes Num_Chans-8 Num_Peri-32 Num_Events-16
[    4.897889] dma-pl330 fea30000.dma-controller: Loaded driver for PL330 DMAC-241330
[    4.897902] dma-pl330 fea30000.dma-controller: 	DBUFF-128x8bytes Num_Chans-8 Num_Peri-32 Num_Events-16
[    4.898707] dma-pl330 fed10000.dma-controller: Loaded driver for PL330 DMAC-241330
[    4.898720] dma-pl330 fed10000.dma-controller: 	DBUFF-128x8bytes Num_Chans-8 Num_Peri-32 Num_Events-16
[    4.899799] rockchip-pvtm fda40000.pvtm: pvtm@0 probed
[    4.899861] rockchip-pvtm fda50000.pvtm: pvtm@1 probed
[    4.899918] rockchip-pvtm fda60000.pvtm: pvtm@2 probed
[    4.899972] rockchip-pvtm fdaf0000.pvtm: pvtm@3 probed
[    4.900022] rockchip-pvtm fdb30000.pvtm: pvtm@4 probed
[    4.900524] rockchip-system-monitor rockchip-system-monitor: system monitor probe
[    4.901329] Serial: 8250/16550 driver, 10 ports, IRQ sharing disabled
[    4.901800] febc0000.serial: ttyS9 at MMIO 0xfebc0000 (irq = 100, base_baud = 1500000) is a 16550A
[    4.903056] random: fast init done
[    4.903175] random: crng init done
[    4.903730] rockchip-vop2 fdd90000.vop: Adding to iommu group 16
[    4.910365] rockchip-vop2 fdd90000.vop: [drm:vop2_bind] vp0 assign plane mask: 0x5, primary plane phy id: 2
[    4.910384] rockchip-vop2 fdd90000.vop: [drm:vop2_bind] vp1 assign plane mask: 0xa, primary plane phy id: 3
[    4.910409] rockchip-vop2 fdd90000.vop: [drm:vop2_bind] vp2 assign plane mask: 0x140, primary plane phy id: 8
[    4.910424] rockchip-vop2 fdd90000.vop: [drm:vop2_bind] vp3 assign plane mask: 0x280, primary plane phy id: 9
[    4.910443] rockchip-vop2 fdd90000.vop: failed to get hdmi1_phy_pll: -2
[    4.910633] [drm] failed to init overlay plane Cluster0-win1
[    4.910665] [drm] failed to init overlay plane Cluster1-win1
[    4.910694] [drm] failed to init overlay plane Cluster2-win1
[    4.910723] [drm] failed to init overlay plane Cluster3-win1
[    4.919622] rockchip-drm display-subsystem: bound fdd90000.vop (ops 0xffffffc010efc498)
[    4.920470] dwhdmi-rockchip fde80000.hdmi: registered ddc I2C bus driver
[    4.920647] rockchip-drm display-subsystem: bound fde80000.hdmi (ops 0xffffffc010f041f8)
[    4.920712] rockchip-drm display-subsystem: bound fde50000.dp (ops 0xffffffc010f06508)
[    4.921289] rockchip-drm display-subsystem: failed to parse loader memory
[    5.140986] dwhdmi-rockchip fde80000.hdmi: use tmds mode
[    5.141021] rockchip-vop2 fdd90000.vop: [drm:vop2_crtc_atomic_enable] Update mode to 1920x1080p60, type: 11(if:800) for vp0 dclk: 148500000
[    5.141165] rockchip-vop2 fdd90000.vop: [drm:vop2_crtc_atomic_enable] dclk_out0 div: 0 dclk_core0 div: 2
[    5.141181] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: hdptx_ropll_cmn_config bus_width:16a8c8 rate:1485000
[    5.141455] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: hdptx phy pll locked!
[    5.141461] rockchip-vop2 fdd90000.vop: [drm:vop2_crtc_atomic_enable] set dclk_vop0 to 148500000, get 148500000
[    5.141480] dwhdmi-rockchip fde80000.hdmi: final tmdsclk = 148500000
[    5.141483] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: bus_width:0x16a8c8,bit_rate:1485000
[    5.141677] rockchip-hdptx-phy-hdmi fed60000.hdmiphy: hdptx phy lane locked!
[    5.141697] dwhdmi-rockchip fde80000.hdmi: don't use dsc mode
[    5.145873] rk-pcie fe190000.pcie: PCIe Link up, LTSSM is 0x30011
[    5.145939] rk-pcie fe190000.pcie: PCI host bridge to bus 0004:40
[    5.145944] pci_bus 0004:40: root bus resource [bus 40-4f]
[    5.145948] pci_bus 0004:40: root bus resource [??? 0xf4000000-0xf40fffff flags 0x0]
[    5.145952] pci_bus 0004:40: root bus resource [io  0x0000-0xfffff] (bus address [0xf4100000-0xf41fffff])
[    5.145954] pci_bus 0004:40: root bus resource [mem 0xf4200000-0xf4ffffff]
[    5.145957] pci_bus 0004:40: root bus resource [mem 0xa00000000-0xa3fffffff pref]
[    5.145980] pci 0004:40:00.0: [1d87:3588] type 01 class 0x060400
[    5.145996] pci 0004:40:00.0: reg 0x38: [mem 0x00000000-0x0000ffff pref]
[    5.146042] pci 0004:40:00.0: supports D1 D2
[    5.146044] pci 0004:40:00.0: PME# supported from D0 D1 D3hot
[    5.150855] pci 0004:40:00.0: Primary bus is hard wired to 0
[    5.150858] pci 0004:40:00.0: bridge configuration invalid ([bus 01-ff]), reconfiguring
[    5.151031] pci 0004:41:00.0: [14e4:449d] type 00 class 0x028000
[    5.151115] pci 0004:41:00.0: reg 0x10: [mem 0x00000000-0x0000ffff 64bit]
[    5.151165] pci 0004:41:00.0: reg 0x18: [mem 0x00000000-0x003fffff 64bit]
[    5.151679] pci 0004:41:00.0: supports D1 D2
[    5.151682] pci 0004:41:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[    5.163878] pci_bus 0004:41: busn_res: [bus 41-4f] end is updated to 41
[    5.163891] pci 0004:40:00.0: BAR 8: assigned [mem 0xf4200000-0xf47fffff]
[    5.163895] pci 0004:40:00.0: BAR 6: assigned [mem 0xf4800000-0xf480ffff pref]
[    5.163901] pci 0004:41:00.0: BAR 2: assigned [mem 0xf4400000-0xf47fffff 64bit]
[    5.163941] pci 0004:41:00.0: BAR 0: assigned [mem 0xf4200000-0xf420ffff 64bit]
[    5.163981] pci 0004:40:00.0: PCI bridge to [bus 41]
[    5.163985] pci 0004:40:00.0:   bridge window [mem 0xf4200000-0xf47fffff]
[    5.165230] pcieport 0004:40:00.0: PME: Signaling with IRQ 126
[    5.345871] dwhdmi-rockchip fde80000.hdmi: dw hdmi qp use tmds mode
[    5.358229] dwhdmi-rockchip fde80000.hdmi: use tmds mode
[    5.481188] dwhdmi-rockchip fde80000.hdmi: use tmds mode
[    5.491540] dwhdmi-rockchip fde80000.hdmi: use tmds mode
[    5.514820] Console: switching to colour frame buffer device 240x67
[    5.514844] dwhdmi-rockchip fde80000.hdmi: use tmds mode
[    5.533069] rockchip-drm display-subsystem: [drm] fb0: rockchipdrmfb frame buffer device
[    5.535304] [drm] Initialized rockchip 3.0.0 20140818 for display-subsystem on minor 0
[    5.543402] brd: module loaded
[    5.548698] loop: module loaded
[    5.550575] lkdtm: No crash points registered, enable through debugfs
[    5.552470] system_heap: orders[0] = 6
[    5.554185] system_heap: orders[1] = 4
[    5.555866] system_heap: orders[2] = 0
[    5.559497] rockchip-spi feb20000.spi: no high_speed pinctrl state
[    5.562574] rk806 spi2.0: chip id: RK806,ver:0x2, 0x1
[    5.564365] rk806 spi2.0: ON: 0x10 OFF:0x0
[    5.567722] rk806-regulator rk806-regulator.6.auto: Looking up vcc1-supply from device tree
[    5.567731] vdd_gpu_s0: supplied by vcc5v0_sys
[    5.569357] vcc5v0_sys: could not add device link regulator.11: -ENOENT
[    5.570097] vdd_gpu_s0: 550 <--> 950 mV at 750 mV, enabled
[    5.570489] rk806-regulator rk806-regulator.6.auto: Looking up vcc2-supply from device tree
[    5.570495] vdd_cpu_lit_s0: supplied by vcc5v0_sys
[    5.572095] vcc5v0_sys: could not add device link regulator.12: -ENOENT
[    5.572319] vdd_cpu_lit_s0: 550 <--> 950 mV at 750 mV, enabled
[    5.573133] rk806-regulator rk806-regulator.6.auto: Looking up vcc3-supply from device tree
[    5.573139] vdd_log_s0: supplied by vcc5v0_sys
[    5.574750] vcc5v0_sys: could not add device link regulator.13: -ENOENT
[    5.574984] vdd_log_s0: 675 <--> 750 mV at 750 mV, enabled
[    5.575663] rk806-regulator rk806-regulator.6.auto: Looking up vcc4-supply from device tree
[    5.575668] vdd_vdenc_s0: supplied by vcc5v0_sys
[    5.577307] vcc5v0_sys: could not add device link regulator.14: -ENOENT
[    5.577529] vdd_vdenc_s0: 550 <--> 950 mV at 750 mV, enabled
[    5.578343] rk806-regulator rk806-regulator.6.auto: Looking up vcc5-supply from device tree
[    5.578348] vdd_ddr_s0: supplied by vcc5v0_sys
[    5.579992] vcc5v0_sys: could not add device link regulator.15: -ENOENT
[    5.580220] vdd_ddr_s0: 675 <--> 900 mV at 850 mV, enabled
[    5.580409] rk806-regulator rk806-regulator.6.auto: Looking up vcc6-supply from device tree
[    5.580414] vdd2_ddr_s3: supplied by vcc5v0_sys
[    5.582039] vcc5v0_sys: could not add device link regulator.16: -ENOENT
[    5.582324] vdd2_ddr_s3: at 500 mV, enabled
[    5.582666] vdd_2v0_pldo_s3: Bringing 1975000uV into 2000000-2000000uV
[    5.584420] vdd_2v0_pldo_s3: ramp_delay not set
[    5.584552] rk806-regulator rk806-regulator.6.auto: Looking up vcc7-supply from device tree
[    5.584557] vdd_2v0_pldo_s3: supplied by vcc5v0_sys
[    5.586172] vcc5v0_sys: could not add device link regulator.17: -ENOENT
[    5.586392] vdd_2v0_pldo_s3: 2000 mV, enabled
[    5.586715] vcc_3v3_s3: Bringing 3275000uV into 3300000-3300000uV
[    5.588449] vcc_3v3_s3: ramp_delay not set
[    5.588580] rk806-regulator rk806-regulator.6.auto: Looking up vcc8-supply from device tree
[    5.588586] vcc_3v3_s3: supplied by vcc5v0_sys
[    5.590176] vcc5v0_sys: could not add device link regulator.18: -ENOENT
[    5.590395] vcc_3v3_s3: 3300 mV, enabled
[    5.590824] rk806-regulator rk806-regulator.6.auto: Looking up vcc9-supply from device tree
[    5.590829] vddq_ddr_s0: supplied by vcc5v0_sys
[    5.592398] vcc5v0_sys: could not add device link regulator.19: -ENOENT
[    5.592680] vddq_ddr_s0: at 500 mV, enabled
[    5.593002] vcc_1v8_s3: Bringing 1775000uV into 1800000-1800000uV
[    5.594696] vcc_1v8_s3: ramp_delay not set
[    5.594827] rk806-regulator rk806-regulator.6.auto: Looking up vcc10-supply from device tree
[    5.594833] vcc_1v8_s3: supplied by vcc5v0_sys
[    5.596385] vcc5v0_sys: could not add device link regulator.20: -ENOENT
[    5.596604] vcc_1v8_s3: 1800 mV, enabled
[    5.597067] rk806-regulator rk806-regulator.6.auto: Looking up vcc13-supply from device tree
[    5.597073] vdd_0v75_s3: supplied by vcc_1v1_nldo_s3
[    5.598613] vcc_1v1_nldo_s3: could not add device link regulator.21: -ENOENT
[    5.598832] vdd_0v75_s3: 750 mV, enabled
[    5.599413] rk806-regulator rk806-regulator.6.auto: Looking up vcc13-supply from device tree
[    5.599419] vdd_ddr_pll_s0: supplied by vcc_1v1_nldo_s3
[    5.600924] vcc_1v1_nldo_s3: could not add device link regulator.22: -ENOENT
[    5.601143] vdd_ddr_pll_s0: 850 mV, enabled
[    5.601566] rk806-regulator rk806-regulator.6.auto: Looking up vcc13-supply from device tree
[    5.601571] avdd_0v75_s0: supplied by vcc_1v1_nldo_s3
[    5.603074] vcc_1v1_nldo_s3: could not add device link regulator.23: -ENOENT
[    5.603295] avdd_0v75_s0: 750 mV, enabled
[    5.603724] rk806-regulator rk806-regulator.6.auto: Looking up vcc14-supply from device tree
[    5.603729] vdd_0v85_s0: supplied by vcc_1v1_nldo_s3
[    5.605207] vcc_1v1_nldo_s3: could not add device link regulator.24: -ENOENT
[    5.605432] vdd_0v85_s0: 850 mV, enabled
[    5.605854] rk806-regulator rk806-regulator.6.auto: Looking up vcc14-supply from device tree
[    5.605869] vdd_0v75_s0: supplied by vcc_1v1_nldo_s3
[    5.607327] vcc_1v1_nldo_s3: could not add device link regulator.25: -ENOENT
[    5.607547] vdd_0v75_s0: 750 mV, enabled
[    5.608150] rk806-regulator rk806-regulator.6.auto: Looking up vcc11-supply from device tree
[    5.608185] vcc_1v8_s0: supplied by vdd_2v0_pldo_s3
[    5.609635] vdd_2v0_pldo_s3: could not add device link regulator.26: -ENOENT
[    5.609923] vcc_1v8_s0: 1800 mV, enabled
[    5.610354] rk806-regulator rk806-regulator.6.auto: Looking up vcc11-supply from device tree
[    5.610362] avcc_1v8_s0: supplied by vdd_2v0_pldo_s3
[    5.611779] vdd_2v0_pldo_s3: could not add device link regulator.27: -ENOENT
[    5.612064] avcc_1v8_s0: 1800 mV, enabled
[    5.612491] rk806-regulator rk806-regulator.6.auto: Looking up vcc11-supply from device tree
[    5.612498] avdd_1v2_s0: supplied by vdd_2v0_pldo_s3
[    5.613894] vdd_2v0_pldo_s3: could not add device link regulator.28: -ENOENT
[    5.614180] avdd_1v2_s0: 1200 mV, enabled
[    5.614636] rk806-regulator rk806-regulator.6.auto: Looking up vcc12-supply from device tree
[    5.614641] vcc_3v3_s0: supplied by vcc5v0_sys
[    5.616036] vcc5v0_sys: could not add device link regulator.29: -ENOENT
[    5.616263] vcc_3v3_s0: 3300 mV, enabled
[    5.616691] rk806-regulator rk806-regulator.6.auto: Looking up vcc12-supply from device tree
[    5.616696] vccio_sd_s0: supplied by vcc5v0_sys
[    5.618073] vcc5v0_sys: could not add device link regulator.30: -ENOENT
[    5.618293] vccio_sd_s0: 1800 <--> 3300 mV at 3300 mV, enabled
[    5.618752] rk806-regulator rk806-regulator.6.auto: Looking up vcca-supply from device tree
[    5.618757] pldo6_s3: supplied by vcc5v0_sys
[    5.620132] vcc5v0_sys: could not add device link regulator.31: -ENOENT
[    5.620352] pldo6_s3: 1800 mV, enabled
[    5.620651] rk806 spi2.0: no sleep-setting state
[    5.622027] rk806 spi2.0: no reset-setting pinctrl state
[    5.623395] rk806 spi2.0: no dvs-setting pinctrl state
[    5.628969] libphy: Fixed MDIO Bus: probed
[    5.638761] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    5.640163] ehci-pci: EHCI PCI platform driver
[    5.641551] ehci-platform: EHCI generic platform driver
[    5.645332] ehci-platform fc800000.usb: EHCI Host Controller
[    5.646716] ehci-platform fc800000.usb: new USB bus registered, assigned bus number 1
[    5.648142] ehci-platform fc800000.usb: irq 19, io mem 0xfc800000
[    5.662544] ehci-platform fc800000.usb: USB 2.0 started, EHCI 1.00
[    5.664005] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.10
[    5.665396] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    5.666783] usb usb1: Product: EHCI Host Controller
[    5.668158] usb usb1: Manufacturer: Linux 5.10.66 ehci_hcd
[    5.669556] usb usb1: SerialNumber: fc800000.usb
[    5.671267] hub 1-0:1.0: USB hub found
[    5.672705] hub 1-0:1.0: 1 port detected
[    5.676606] ehci-platform fc880000.usb: EHCI Host Controller
[    5.677990] ehci-platform fc880000.usb: new USB bus registered, assigned bus number 2
[    5.679447] ehci-platform fc880000.usb: irq 21, io mem 0xfc880000
[    5.692546] ehci-platform fc880000.usb: USB 2.0 started, EHCI 1.00
[    5.694040] usb usb2: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.10
[    5.695473] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    5.696915] usb usb2: Product: EHCI Host Controller
[    5.698334] usb usb2: Manufacturer: Linux 5.10.66 ehci_hcd
[    5.699753] usb usb2: SerialNumber: fc880000.usb
[    5.701440] hub 2-0:1.0: USB hub found
[    5.702887] hub 2-0:1.0: 1 port detected
[    5.704638] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    5.706102] ohci-platform: OHCI generic platform driver
[    5.707689] ohci-platform fc840000.usb: Generic Platform OHCI controller
[    5.709129] ohci-platform fc840000.usb: new USB bus registered, assigned bus number 3
[    5.710608] ohci-platform fc840000.usb: irq 20, io mem 0xfc840000
[    5.769957] usb usb3: New USB device found, idVendor=1d6b, idProduct=0001, bcdDevice= 5.10
[    5.771400] usb usb3: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    5.772838] usb usb3: Product: Generic Platform OHCI controller
[    5.774263] usb usb3: Manufacturer: Linux 5.10.66 ohci_hcd
[    5.775700] usb usb3: SerialNumber: fc840000.usb
[    5.777395] hub 3-0:1.0: USB hub found
[    5.778845] hub 3-0:1.0: 1 port detected
[    5.780520] ohci-platform fc8c0000.usb: Generic Platform OHCI controller
[    5.781981] ohci-platform fc8c0000.usb: new USB bus registered, assigned bus number 4
[    5.783493] ohci-platform fc8c0000.usb: irq 22, io mem 0xfc8c0000
[    5.843288] usb usb4: New USB device found, idVendor=1d6b, idProduct=0001, bcdDevice= 5.10
[    5.844774] usb usb4: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    5.846267] usb usb4: Product: Generic Platform OHCI controller
[    5.847756] usb usb4: Manufacturer: Linux 5.10.66 ohci_hcd
[    5.849251] usb usb4: SerialNumber: fc8c0000.usb
[    5.850912] hub 4-0:1.0: USB hub found
[    5.852400] hub 4-0:1.0: 1 port detected
[    5.854407] xhci-hcd xhci-hcd.7.auto: xHCI Host Controller
[    5.855899] xhci-hcd xhci-hcd.7.auto: new USB bus registered, assigned bus number 5
[    5.857452] xhci-hcd xhci-hcd.7.auto: hcc params 0x0220fe64 hci version 0x110 quirks 0x0000000002010010
[    5.858966] xhci-hcd xhci-hcd.7.auto: irq 132, io mem 0xfcd00000
[    5.860597] usb usb5: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.10
[    5.862116] usb usb5: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    5.863643] usb usb5: Product: xHCI Host Controller
[    5.865152] usb usb5: Manufacturer: Linux 5.10.66 xhci-hcd
[    5.866666] usb usb5: SerialNumber: xhci-hcd.7.auto
[    5.868363] hub 5-0:1.0: USB hub found
[    5.869901] hub 5-0:1.0: 1 port detected
[    5.871533] xhci-hcd xhci-hcd.7.auto: xHCI Host Controller
[    5.873076] xhci-hcd xhci-hcd.7.auto: new USB bus registered, assigned bus number 6
[    5.874622] xhci-hcd xhci-hcd.7.auto: Host supports USB 3.0 SuperSpeed
[    5.876193] usb usb6: We don't know the algorithms for LPM for this host, disabling LPM.
[    5.877807] usb usb6: New USB device found, idVendor=1d6b, idProduct=0003, bcdDevice= 5.10
[    5.879394] usb usb6: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    5.880982] usb usb6: Product: xHCI Host Controller
[    5.882575] usb usb6: Manufacturer: Linux 5.10.66 xhci-hcd
[    5.884164] usb usb6: SerialNumber: xhci-hcd.7.auto
[    5.885924] hub 6-0:1.0: USB hub found
[    5.887502] hub 6-0:1.0: 1 port detected
[    5.889298] usbcore: registered new interface driver uas
[    5.890912] usbcore: registered new interface driver usb-storage
[    5.892580] mousedev: PS/2 mouse device common for all mice
[    5.894672] .. rk pwm remotectl v2.0 init
[    5.896347] input: fd8b0030.pwm as /devices/platform/fd8b0030.pwm/input/input0
[    5.898048] remotectl-pwm fd8b0030.pwm: pwm version is 0x2130000
[    5.899650] remotectl-pwm fd8b0030.pwm: Controller support pwrkey capture
[    5.902431] input: rk805 pwrkey as /devices/platform/feb20000.spi/spi_master/spi2/spi2.0/rk805-pwrkey.5.auto/input/input1
[    5.904279] i2c /dev entries driver
[    5.908771] rk860-regulator 0-0042: Looking up vin-supply from device tree
[    5.908833] vdd_cpu_big0_s0: supplied by vcc5v0_sys
[    5.910479] vcc5v0_sys: could not add device link regulator.32: -ENOENT
[    5.914574] vdd_cpu_big0_s0: 550 <--> 1050 mV at 1000 mV, enabled
[    5.918411] rk860-regulator 0-0043: Looking up vin-supply from device tree
[    5.918416] vdd_cpu_big1_s0: supplied by vcc5v0_sys
[    5.920055] vcc5v0_sys: could not add device link regulator.33: -ENOENT
[    5.922584] usb 1-1: new high-speed USB device number 2 using ehci-platform
[    5.924144] vdd_cpu_big1_s0: 550 <--> 1050 mV at 1000 mV, enabled
[    5.933518] rk860-regulator 2-0042: Looking up vin-supply from device tree
[    5.933525] vdd_npu_s0: supplied by vcc5v0_sys
[    5.935164] vcc5v0_sys: could not add device link regulator.34: -ENOENT
[    5.939256] vdd_npu_s0: 550 <--> 950 mV at 812 mV, enabled
[    5.941289] typec_fusb302 2-0022: Looking up vbus-supply from device tree
[    5.952599] usb 2-1: new high-speed USB device number 2 using ehci-platform
[    5.968381] rtc-hym8563 2-0051: rtc information is valid
[    5.975345] rtc-hym8563 2-0051: registered as rtc0
[    5.977990] rtc-hym8563 2-0051: setting system clock to 2023-02-01T19:26:43 UTC (1675279603)
[    5.981106] mcu_probe
[    5.983088] create mcu attribute poweroff fail
[    5.984726] create mcu attribute rst fail
[    5.987681] gsensor_kxtj3 3-000e: sensor_register_device: kxtj9, id = 11
[    5.989352] i2c i2c-3: sensor_probe: gs_kxtj3,00000000fc45fcb4
[    5.991515] gsensor_kxtj3 3-000e: sensor_chip_init:gs_kxtj3:devid=0x35,ops=0x0000000085c50ec6
[    5.994709] input: gsensor as /devices/platform/feab0000.i2c/i2c-3/3-000e/input/input2
[    5.996472] gsensor_kxtj3 3-000e: sensor_irq_init:use polling,delay=30 ms
[    5.998224] gsensor_kxtj3 3-000e: sensor_misc_device_register:miscdevice: accel
[    5.999936] gsensor_kxtj3 3-000e: sensor_probe:initialized ok,sensor name:kxtj9,type:2,id=11
[    6.005753] edt_ft5x06 6-0038: probing for EDT FT5x06 I2C
[    6.076573] usb 1-1: New USB device found, idVendor=1a40, idProduct=0101, bcdDevice= 1.11
[    6.083645] usb 1-1: New USB device strings: Mfr=0, Product=1, SerialNumber=0
[    6.090729] usb 1-1: Product: USB 2.0 Hub
[    6.098366] hub 1-1:1.0: USB hub found
[    6.105569] hub 1-1:1.0: 4 ports detected
[    6.119899] usb 2-1: New USB device found, idVendor=1a40, idProduct=0101, bcdDevice= 1.11
[    6.127018] usb 2-1: New USB device strings: Mfr=0, Product=1, SerialNumber=0
[    6.134124] usb 2-1: Product: USB 2.0 Hub
[    6.141815] hub 2-1:1.0: USB hub found
[    6.149023] hub 2-1:1.0: 4 ports detected
[    6.342691] edt_ft5x06 6-0038: touchscreen probe failed
[    6.345845] dw9714 3-000c: probing...
[    6.347544] dw9714 3-000c: could not get module rockchip,vcm-max-current from dts!
[    6.349259] dw9714 3-000c: could not get module rockchip,vcm-dlc-enable from dts!
[    6.350958] dw9714 3-000c: could not get module rockchip,vcm-mclk from dts!
[    6.352659] dw9714 3-000c: could not get module rockchip,vcm-t-src from dts!
[    6.354374] dw9714 3-000c: probing successful
[    6.356120] dw9714 4-000c: probing...
[    6.357773] dw9714 4-000c: could not get module rockchip,vcm-max-current from dts!
[    6.359445] dw9714 4-000c: could not get module rockchip,vcm-dlc-enable from dts!
[    6.361086] dw9714 4-000c: could not get module rockchip,vcm-mclk from dts!
[    6.362716] dw9714 4-000c: could not get module rockchip,vcm-t-src from dts!
[    6.364343] dw9714 4-000c: probing successful
[    6.366009] dw9714 8-000c: probing...
[    6.367600] dw9714 8-000c: could not get module rockchip,vcm-max-current from dts!
[    6.369224] dw9714 8-000c: could not get module rockchip,vcm-dlc-enable from dts!
[    6.370841] dw9714 8-000c: could not get module rockchip,vcm-mclk from dts!
[    6.372444] dw9714 8-000c: could not get module rockchip,vcm-t-src from dts!
[    6.374058] dw9714 8-000c: probing successful
[    6.376404] rkcifhw fdce0000.rkcif: Adding to iommu group 15
[    6.378278] rkcifhw fdce0000.rkcif: No reserved memory region assign to CIF
[    6.379967] rkcif rkcif-mipi-lvds: Adding to iommu group 15
[    6.381546] rkcif rkcif-mipi-lvds: rkcif driver version: v00.01.0a
[    6.383170] rkcif rkcif-mipi-lvds: attach to cif hw node
[    6.384726] rkcif rkcif-mipi-lvds: rkcif wait line 0
[    6.386281] : terminal subdev does not exist
[    6.387824] : terminal subdev does not exist
[    6.389364] : terminal subdev does not exist
[    6.390881] : terminal subdev does not exist
[    6.392394] : get_remote_sensor: video pad[0] is null
[    6.393909] : rkcif_update_sensor_info: stream[0] get remote sensor_sd failed!
[    6.395439] : get_remote_sensor: video pad[0] is null
[    6.396960] : rkcif_update_sensor_info: stream[0] get remote sensor_sd failed!
[    6.398488] : get_remote_sensor: video pad[0] is null
[    6.400022] : rkcif_update_sensor_info: stream[0] get remote sensor_sd failed!
[    6.401545] : get_remote_sensor: video pad[0] is null
[    6.403044] : rkcif_update_sensor_info: stream[0] get remote sensor_sd failed!
[    6.405114] rkcif rkcif-mipi-lvds1: Adding to iommu group 15
[    6.406679] rkcif rkcif-mipi-lvds1: rkcif driver version: v00.01.0a
[    6.408249] rkcif rkcif-mipi-lvds1: attach to cif hw node
[    6.409765] rkcif rkcif-mipi-lvds1: rkcif wait line 0
[    6.411252] : terminal subdev does not exist
[    6.412729] : terminal subdev does not exist
[    6.414191] : terminal subdev does not exist
[    6.415628] : terminal subdev does not exist
[    6.417034] : get_remote_sensor: video pad[0] is null
[    6.418443] : rkcif_update_sensor_info: stream[0] get remote sensor_sd failed!
[    6.419889] : get_remote_sensor: video pad[0] is null
[    6.421321] : rkcif_update_sensor_info: stream[0] get remote sensor_sd failed!
[    6.422773] : get_remote_sensor: video pad[0] is null
[    6.424201] : rkcif_update_sensor_info: stream[0] get remote sensor_sd failed!
[    6.425633] : get_remote_sensor: video pad[0] is null
[    6.427055] : rkcif_update_sensor_info: stream[0] get remote sensor_sd failed!
[    6.429040] rkcif rkcif-mipi-lvds2: Adding to iommu group 15
[    6.430505] rkcif rkcif-mipi-lvds2: rkcif driver version: v00.01.0a
[    6.431973] rkcif rkcif-mipi-lvds2: attach to cif hw node
[    6.433393] rkcif rkcif-mipi-lvds2: rkcif wait line 0
[    6.434780] : terminal subdev does not exist
[    6.436160] : terminal subdev does not exist
[    6.437511] : terminal subdev does not exist
[    6.438852] : terminal subdev does not exist
[    6.440190] : get_remote_sensor: video pad[0] is null
[    6.441513] : rkcif_update_sensor_info: stream[0] get remote sensor_sd failed!
[    6.442856] : get_remote_sensor: video pad[0] is null
[    6.444187] : rkcif_update_sensor_info: stream[0] get remote sensor_sd failed!
[    6.445544] : get_remote_sensor: video pad[0] is null
[    6.446914] : rkcif_update_sensor_info: stream[0] get remote sensor_sd failed!
[    6.448299] : get_remote_sensor: video pad[0] is null
[    6.449684] : rkcif_update_sensor_info: stream[0] get remote sensor_sd failed!
[    6.452498] rkcif rkcif-mipi-lvds: Entity type for entity rockchip-mipi-csi2 was not initialized!
[    6.453956] rockchip-mipi-csi2: Async registered subdev
[    6.455408] rockchip-mipi-csi2: probe success, v4l2_dev:rkcif-mipi-lvds!
[    6.456996] rkcif rkcif-mipi-lvds1: Entity type for entity rockchip-mipi-csi2 was not initialized!
[    6.458484] rockchip-mipi-csi2: Async registered subdev
[    6.459995] rockchip-mipi-csi2: probe success, v4l2_dev:rkcif-mipi-lvds1!
[    6.461599] rkcif rkcif-mipi-lvds2: Entity type for entity rockchip-mipi-csi2 was not initialized!
[    6.463145] rockchip-mipi-csi2: Async registered subdev
[    6.464700] rockchip-mipi-csi2: probe success, v4l2_dev:rkcif-mipi-lvds2!
[    6.466742] rkisp_hw fdcb0000.rkisp-unite: Adding to iommu group 14
[    6.468525] rkisp_hw fdcb0000.rkisp-unite: is_thunderboot: 0
[    6.470104] rkisp_hw fdcb0000.rkisp-unite: max input:0x0@0fps
[    6.471653] rkisp_hw fdcb0000.rkisp-unite: Missing rockchip,grf property
[    6.473220] rkisp_hw fdcb0000.rkisp-unite: can't request region for resource [mem 0xfdcb0000-0xfdcbffff]
[    6.474815] rkisp_hw fdcb0000.rkisp-unite: can't request region for resource [mem 0xfdcc0000-0xfdccffff]
[    6.476502] rkisp_hw fdcb0000.rkisp-unite: no find phandle sram
[    6.478421] rkisp rkisp0-vir0: rkisp driver version: v01.09.00
[    6.480096] rkisp rkisp0-vir0: No memory-region-thunderboot specified
[    6.481731] rkisp rkisp0-vir0: Entity type for entity rkisp-isp-subdev was not initialized!
[    6.484625] usbcore: registered new interface driver uvcvideo
[    6.486231] USB Video Class driver (1.1.1)
[    6.488999] rockchip-thermal fec00000.tsadc: Missing rockchip,grf property
[    6.491151] rockchip-thermal fec00000.tsadc: tsadc is probed successfully!
[    6.493330] cpu cpu0: leakage=8
[    6.494972] cpu cpu0: Looking up cpu-supply from device tree
[    6.495895] usb 1-1.1: new high-speed USB device number 3 using ehci-platform
[    6.496471] cpu cpu0: pvtm=1427
[    6.502045] cpu cpu0: pvtm-volt-sel=1
[    6.503753] cpu cpu0: Looking up cpu-supply from device tree
[    6.503882] cpu cpu0: Looking up mem-supply from device tree
[    6.504241] cpu cpu4: leakage=7
[    6.505915] cpu cpu4: Looking up cpu-supply from device tree
[    6.512446] cpu cpu4: pvtm=1655
[    6.517639] cpu cpu4: pvtm-volt-sel=3
[    6.519295] cpu cpu4: Looking up cpu-supply from device tree
[    6.519797] cpu cpu4: Looking up mem-supply from device tree
[    6.520529] cpu cpu6: leakage=7
[    6.522127] cpu cpu6: Looking up cpu-supply from device tree
[    6.528654] cpu cpu6: pvtm=1724
[    6.534224] cpu cpu6: pvtm-volt-sel=5
[    6.535788] cpu cpu6: Looking up cpu-supply from device tree
[    6.536288] cpu cpu6: Looking up mem-supply from device tree
[    6.537396] cpu cpu0: avs=0
[    6.539631] cpu cpu4: avs=0
[    6.541807] cpu cpu6: avs=0
[    6.543412] cpu cpu0: EM: hertz/watts ratio non-monotonically decreasing: em_perf_state 3 >= em_perf_state2
[    6.543507] cpu cpu0: EM: created perf domain
[    6.545038] cpu cpu0: l=10000 h=85000 hyst=5000 l_limit=0 h_limit=1608000000 h_table=0
[    6.547035] cpu cpu4: EM: hertz/watts ratio non-monotonically decreasing: em_perf_state 2 >= em_perf_state1
[    6.547040] cpu cpu4: EM: hertz/watts ratio non-monotonically decreasing: em_perf_state 3 >= em_perf_state2
[    6.547166] cpu cpu4: EM: created perf domain
[    6.548726] cpu cpu4: l=10000 h=85000 hyst=5000 l_limit=0 h_limit=2208000000 h_table=0
[    6.552720] usb 2-1.4: new full-speed USB device number 3 using ehci-platform
[    6.570392] cpu cpu6: EM: hertz/watts ratio non-monotonically decreasing: em_perf_state 2 >= em_perf_state1
[    6.570399] cpu cpu6: EM: hertz/watts ratio non-monotonically decreasing: em_perf_state 3 >= em_perf_state2
[    6.570582] cpu cpu6: EM: created perf domain
[    6.573611] cpu cpu6: l=10000 h=85000 hyst=5000 l_limit=0 h_limit=2208000000 h_table=0
[    6.589071] sdhci: Secure Digital Host Controller Interface driver
[    6.591637] sdhci: Copyright(c) Pierre Ossman
[    6.594101] Synopsys Designware Multimedia Card Interface Driver
[    6.597241] sdhci-pltfm: SDHCI platform and OF driver helper
[    6.601728] sdhci-dwcmshc fe2e0000.mmc: Looking up vmmc-supply from device tree
[    6.601758] sdhci-dwcmshc fe2e0000.mmc: Looking up vmmc-supply property in node /mmc@fe2e0000 failed
[    6.601880] arm-scmi firmware:scmi: Failed. SCMI protocol 17 not active.
[    6.604449] SMCCC: SOC_ID: ARCH_SOC_ID not implemented, skipping ....
[    6.607864] cryptodev: driver 1.12 loaded.
[    6.608115] sdhci-dwcmshc fe2e0000.mmc: Looking up vqmmc-supply from device tree
[    6.610311] sdhci-dwcmshc fe2e0000.mmc: Looking up vqmmc-supply property in node /mmc@fe2e0000 failed
[    6.610314] hid: raw HID events driver (C) Jiri Kosina
[    6.610489] usbcore: registered new interface driver usbhid
[    6.617562] usbhid: USB HID core driver
[    6.622339] rockchip-saradc fec10000.saradc: Looking up vref-supply from device tree
[    6.633341] optee: probing for conduit method.
[    6.634275] optee: revision 3.13 (8e053a88)
[    6.634422] optee: initialized driver
[    6.636500] usbcore: registered new interface driver snd-usb-audio
[    6.639719] rockchip-pm-domain fd8d8000.power-management:power-controller: Looking up audio-supply from device tree
[    6.639734] rockchip-pm-domain fd8d8000.power-management:power-controller: Looking up audio-supply property in node /power-management@fd8d8000/power-controller failed
[    6.640403] Unable to handle kernel NULL pointer dereference at virtual address 0000000000000090
[    6.643056] debugfs: File 'Capture' in directory 'dapm' already present!
[    6.646355] Mem abort info:
[    6.653304]   ESR = 0x96000005
[    6.658557]   EC = 0x25: DABT (current EL), IL = 32 bits
[    6.663996]   SET = 0, FnV = 0
[    6.669179]   EA = 0, S1PTW = 0
[    6.674317] Data abort info:
[    6.679372]   ISV = 0, ISS = 0x00000005
[    6.684476]   CM = 0, WnR = 0
[    6.689412] [0000000000000090] user address but active_mm is swapper
[    6.694663] Internal error: Oops: 96000005 [#1] PREEMPT SMP
[    6.699846] Modules linked in:
[    6.704739] CPU: 4 PID: 191 Comm: irq/135-es8316 Not tainted 5.10.66 #1.4.2
[    6.709996] Hardware name: Khadas Edge2 (DT)
[    6.714855] usb 1-1.1: New USB device found, idVendor=0781, idProduct=5581, bcdDevice= 1.00
[    6.715008] pstate: 00c00009 (nzcv daif +PAN +UAO -TCO BTYPE=--)
[    6.718946] usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[    6.724106] pc : __ll_sc__cmpxchg_case_acq_64+0x8/0x28
[    6.724118] lr : mutex_lock+0x2c/0x48
[    6.727960] usb 1-1.1: Product:  SanDisk 3.2Gen1
[    6.733078] sp : ffffffc0140cbd20
[    6.733084] x29: ffffffc0140cbd20 x28: 0000000000000000 
[    6.736600] usb 1-1.1: Manufacturer:  USB

[    6.741707] x27: 0000000000000001 x26: ffffff8105622640 
[    6.745211] usb 1-1.1: SerialNumber: 04019828326baeab9cfd96c9c4422375dd4c466935f9a03aeba8a3e0c12ea85a554600000000000000000000d2f49bd3ff036d1881558107bf2a8382

[    6.750348] x25: ffffff8100ed8658 x24: ffffff810139bab0 
[    6.754767] usb-storage 1-1.1:1.0: USB Mass Storage device detected

[    6.758675] x23: ffffffc0100e125c x22: 0000000000000090 
[    6.758686] x21: 00000000000000c0 x20: 0000000000000022 
[    6.762555] mmc0: SDHCI controller on fe2e0000.mmc [fe2e0000.mmc] using ADMA
[    6.763574] scsi host0: usb-storage 1-1.1:1.0
[    6.768527] x19: 0000000000000090 x18: 0000000000000000 
[    6.768537] x17: 0000000000000000 x16: 0000000000000000 
[    6.768548] x15: 0000000000000000 x14: ffffff8100878f00 
[    6.790308] usb 2-1.4: New USB device found, idVendor=046d, idProduct=c52b, bcdDevice=12.11
[    6.794631] x13: ffffffc1ed262000 x12: 000000003464d91d 
[    6.794641] x11: 0000000000000000 x10: 0000000000000ac0 
[    6.798430] usb 2-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=0

[    6.803883] x9 : ffffffc010b6136c x8 : ffffff8105603820 
[    6.807566] usb 2-1.4: Product: USB Receiver
[    6.808125] mmc0: new HS400 Enhanced strobe MMC card at address 0001
[    6.809002] mmcblk0: mmc0:0001 BJTD4R 29.1 GiB 
[    6.809296] mmcblk0boot0: mmc0:0001 BJTD4R partition 1 4.00 MiB
[    6.809560] mmcblk0boot1: mmc0:0001 BJTD4R partition 2 4.00 MiB
[    6.809875] mmcblk0rpmb: mmc0:0001 BJTD4R partition 3 4.00 MiB, chardev (237:0)
[    6.812876] x7 : 0000000000000004 x6 : 0000000000000004 
[    6.813103]  mmcblk0: p1 p2 p4 p5 p6 p7
[    6.816673] usb 2-1.4: Manufacturer: Logitech
[    6.821966] x5 : 0000000001000100 x4 : 0000000001000100 
[    6.821978] x3 : ffffffc012335004 
[    6.829367] input: Logitech USB Receiver as /devices/platform/fc880000.usb/usb2/2-1/2-1.4/2-1.4:1.0/0003:046D:C52B.0001/input/input5
[    6.831581] x2 : ffffff8105602d00 
[    6.890151] hid-generic 0003:046D:C52B.0001: input,hidraw0: USB HID v1.11 Keyboard [Logitech USB Receiver] on usb-fc880000.usb-1.4/input0

[    6.899006] input: Logitech USB Receiver Mouse as /devices/platform/fc880000.usb/usb2/2-1/2-1.4/2-1.4:1.1/0003:046D:C52B.0002/input/input6
[    6.901482] x1 : 0000000000000000 x0 : 0000000000000090 
[    6.901493] Call trace:
[    6.901506]  __ll_sc__cmpxchg_case_acq_64+0x8/0x28
[    6.906200] input: Logitech USB Receiver Consumer Control as /devices/platform/fc880000.usb/usb2/2-1/2-1.4/2-1.4:1.1/0003:046D:C52B.0002/input/input7
[    6.910765]  snd_soc_component_write+0x38/0x6c
[    6.910777]  es8316_irq+0x88/0x238
[    6.910789]  irq_thread_fn+0x38/0x80
[    6.969669] input: Logitech USB Receiver System Control as /devices/platform/fc880000.usb/usb2/2-1/2-1.4/2-1.4:1.1/0003:046D:C52B.0002/input/input8
[    6.970515]  irq_thread+0xec/0x198
[    6.975610] hid-generic 0003:046D:C52B.0002: input,hiddev96,hidraw1: USB HID v1.11 Mouse [Logitech USB Receiver] on usb-fc880000.usb-1.4/input1
[    6.980862]  kthread+0x118/0x128
[    6.980872]  ret_from_fork+0x10/0x30
[    6.980878] 
               PC: 0xffffffc0100d13ec:
[    6.988657] hid-generic 0003:046D:C52B.0003: hiddev97,hidraw2: USB HID v1.11 Device [Logitech USB Receiver] on usb-fc880000.usb-1.4/input2
[    6.992315] 13ec  91122033 b9401262 7100005f 540001cd b9448821 6a01001f 54000160 94346705
[    7.037768] 140c  b000c3c2 91002261 91266042 12800000 9410b4ce f9400bf3 a8c27bfd d50323bf
[    7.044970] 142c  d65f03c0 943466fb 17fffffb d503245f aa1e03e9 d503201f b000dbc3 91122062
[    7.052189] 144c  b9401044 7100009f 5400018d b9448863 6a03003f 54000120 d503233f a9bf7bfd
[    7.059441] 146c  91002041 910003fd 97ff7a4f a8c17bfd d50323bf d65f03c0 d65f03c0 d503245f
[    7.066689] 148c  aa1e03e9 d503201f b000dbc3 91122062 d503233f b9401044 7100009f 540001ad
[    7.073940] 14ac  b9448863 6a03003f 54000140 52800801 91002042 1ac10c01 937d7c21 f8616841
[    7.081179] 14cc  9ac02420 12000000 d50323bf d65f03c0 52800020 17fffffd d503233f f9800011
[    7.088403] 14ec  c85ffc03 ca010064 b5000064 c8047c02 35ffff84 aa0303e0 d50323bf d65f03c0
[    7.095624] 150c  d503245f aa1e03e9 d503201f f9400000 d503233f d50323bf f27df01f 1a9f07e0
[    7.102844] 152c  d65f03c0 aa1e03e9 d503201f f9400443 d503233f f9000441 a9000c22 f9000061
[    7.110066] 154c  f9401402 eb02003f 540000c1 f9800011 c85f7c01 b2400021 c8027c01 35ffffa2
[    7.117327] 156c  d50323bf d65f03c0 d503245f aa1e03e9 d503201f d503233f a9be7bfd 52800043
[    7.124629] 158c  910003fd f9000bf3 aa0003f3 f800841f b000dbc2 f0008601 91127042 9124dc21
[    7.131991] 15ac  94000c61 9100a260 f9001660 b900227f f9001a60 f9400bf3 a8c27bfd d50323bf
[    7.139375] 15cc  d65f03c0 d503233f a9bd7bfd 910003fd a90153f3 aa0003f4 f9400013 f90013f5
[    7.146806] 
               LR: 0xffffffc010dede98:
[    7.160353] de98  d5384102 f9000bf3 aa0003f3 97cb8d90 b40000e0 aa1303e0 97ffffe9 f9400bf3
[    7.167590] deb8  a8c27bfd d50323bf d65f03c0 52800000 17fffffb aa1e03e9 d503201f d503233f
[    7.174861] ded8  a9bf7bfd d2800021 910003fd 97ffff3f a8c17bfd d50323bf d65f03c0 d503245f
[    7.182137] def8  aa1e03e9 d503201f d503233f a9be7bfd d2800001 910003fd d5384102 f9000bf3
[    7.189429] df18  aa0003f3 97cb8d72 b40000e0 aa1303e0 97ffffe9 f9400bf3 a8c27bfd d50323bf
[    7.196757] df38  d65f03c0 52800000 17fffffb aa1e03e9 d503201f d503233f a9bf7bfd d2800041
[    7.204137] df58  910003fd 97ffff21 a8c17bfd d50323bf d65f03c0 d503245f aa1e03e9 d503201f
[    7.211518] df78  d503233f a9be7bfd d2800001 910003fd d5384102 f9000bf3 aa0003f3 97cb8d54
[    7.218905] df98  b4000060 aa1303e0 97ffffe9 f9400bf3 a8c27bfd d50323bf d65f03c0 d503245f
[    7.226323] dfb8  aa1e03e9 d503201f d503233f a9be7bfd 910003fd a90153f3 aa0003f4 97cb1569
[    7.233824] dfd8  2a0003f3 aa1403e0 97ffffe3 2a1303e0 97cb157a a94153f3 a8c27bfd d50323bf
[    7.241386] dff8  d65f03c0 aa1e03e9 d503201f d503233f a9b87bfd 910003fd a90153f3 aa0003f3
[    7.248928] e018  d5384100 a9025bf5 aa0203f4 a90363f7 aa0103f7 a9046bf9 f942c001 f9003fe1
[    7.256454] e038  d2800001 b40000e2 f9401e60 eb00005f 54001e60 b9401040 35000040 7900285f
[    7.264039] e058  52800020 97caf9ec aa1303e0 97cb8d7a 72001c1f 540005e1 aa1303e0 97cb8e02
[    7.271621] e078  34000240 91008275 aa1503e0 97cb9469 72001c1f 540001a0 aa1303e0 97cb8d4f
[    7.279156] 
               SP: 0xffffffc0140cbc20:
[    7.293033] bc20  00000ac0 00000000 00000000 00000000 3464d91d 00000000 ed262000 ffffffc1
[    7.300609] bc40  00878f00 ffffff81 00000000 00000000 00000000 00000000 00000000 00000000
[    7.308173] bc60  00000000 00000000 00000090 00000000 00000022 00000000 000000c0 00000000
[    7.315709] bc80  00000090 00000000 100e125c ffffffc0 0139bab0 ffffff81 00ed8658 ffffff81
[    7.323310] bca0  05622640 ffffff81 00000001 00000000 00000000 00000000 140cbd20 ffffffc0
[    7.330914] bcc0  10dedf98 ffffffc0 140cbd20 ffffffc0 100d14ec ffffffc0 00c00009 00000000
[    7.338516] bce0  140cbd20 ffffffc0 10548418 ffffffc0 ffffffff ffffffff 11ae30a0 ffffffc0
[    7.346123] bd00  140cbd20 ffffffc0 100d14ec ffffffc0 100e125c ffffffc0 00000000 00000000
[    7.353737] bd20  140cbd40 ffffffc0 10b6136c ffffffc0 00000000 00000000 00000001 00000000
[    7.361327] bd40  140cbd70 ffffffc0 10b6ceb8 ffffffc0 0139b880 ffffff81 00000001 00000000
[    7.368902] bd60  00000000 00000000 05602d00 ffffff81 140cbdb0 ffffffc0 100e1328 ffffffc0
[    7.376396] bd80  0139ba00 ffffff81 05622600 ffffff81 100e12f0 ffffffc0 00000000 00000000
[    7.383792] bda0  140cbdc0 ffffffc0 13e1cf00 37d2f551 140cbde0 ffffffc0 100e0dac ffffffc0
[    7.391093] bdc0  05622600 ffffff81 0139ba00 ffffff81 100e12f0 ffffffc0 13e1cf00 37d2f551
[    7.398301] bde0  140cbe60 ffffffc0 100a0200 ffffffc0 05622780 ffffff81 00ed8600 ffffff81
[    7.405412] be00  05602d00 ffffff81 11d5b988 ffffffc0 100e0cc0 ffffffc0 05622600 ffffff81
[    7.412417] 
               X1: 0xffffffffffffff00:
[    7.425223] ff00  ******** ******** ******** ******** ******** ******** ******** ********
[    7.432185] ff20  ******** ******** ******** ******** ******** ******** ******** ********
[    7.438974] ff40  ******** ******** ******** ******** ******** ******** ******** ********
[    7.445725] ff60  ******** ******** ******** ******** ******** ******** ******** ********
[    7.452452] ff80  ******** ******** ******** ******** ******** ******** ******** ********
[    7.459015] ffa0  ******** ******** ******** ******** ******** ******** ******** ********
[    7.465408] ffc0  ******** ******** ******** ******** ******** ******** ******** ********
[    7.471644] ffe0  ******** ******** ******** ******** ******** ******** ******** ********
[    7.477716] 0000  ******** ******** ******** ******** ******** ******** ******** ********
[    7.483770] 0020  ******** ******** ******** ******** ******** ******** ******** ********
[    7.489801] 0040  ******** ******** ******** ******** ******** ******** ******** ********
[    7.495810] 0060  ******** ******** ******** ******** ******** ******** ******** ********
[    7.501662] 0080  ******** ******** ******** ******** ******** ******** ******** ********
[    7.507364] 00a0  ******** ******** ******** ******** ******** ******** ******** ********
[    7.512974] 00c0  ******** ******** ******** ******** ******** ******** ******** ********
[    7.518498] 00e0  ******** ******** ******** ******** ******** ******** ******** ********
[    7.523933] 
               X2: 0xffffff8105602c00:
[    7.533501] 2c00  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    7.538897] 2c20  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    7.544209] 2c40  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    7.549449] 2c60  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    7.554603] 2c80  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    7.559706] 2ca0  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    7.564730] 2cc0  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    7.569667] 2ce0  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    7.574515] 2d00  00000028 00000000 ffffffff ffffffff 00000001 00000001 00000000 00000000
[    7.579322] 2d20  140c8000 ffffffc0 00000002 00208040 00000000 00000001 00000000 00000000
[    7.584092] 2d40  00000030 00000000 00000004 00000004 fffea348 00000000 00823c00 ffffff81
[    7.588825] 2d60  00000007 00000004 00000001 00000031 00000078 00000031 00000032 00000000
[    7.593580] 2d80  112d5d20 ffffffc0 00000000 00000000 00000000 00000000 00000000 00000000
[    7.598279] 2da0  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    7.602918] 2dc0  00100000 00000000 00400000 00000000 00000001 00000000 00000000 00000000
[    7.607492] 2de0  00000000 00000000 05602de8 ffffff81 05602de8 ffffff81 00000000 00000000
[    7.612027] 
               X3: 0xffffffc012334f04:
[    7.619802] 4f04  ******** ******** ******** ******** ******** ******** ******** ********
[    7.624317] 4f24  ******** ******** ******** ******** ******** ******** ******** ********
[    7.628749] 4f44  ******** ******** ******** ******** ******** ******** ******** ********
[    7.633098] 4f64  ******** ******** ******** ******** ******** ******** ******** ********
[    7.637367] 4f84  ******** ******** ******** ******** ******** ******** ******** ********
[    7.641558] 4fa4  ******** ******** ******** ******** ******** ******** ******** ********
[    7.645673] 4fc4  ******** ******** ******** ******** ******** ******** ******** ********
[    7.649704] 4fe4  ******** ******** ******** ******** ******** ******** ******** 00000243
[    7.653659] 5004  00000100 00000243 00000100 0000ffff 0000ffff 0000dfff 0000f7ff 00000000
[    7.657621] 5024  00000000 00000000 00000000 00000000 00000800 00000000 00000000 00000000
[    7.661576] 5044  00000000 00000001 00000000 00000000 00000000 00a80d10 00000000 00000000
[    7.665451] 5064  00000000 00000000 00000000 df57f2ef 00000000 0101157c 00000000 00000000
[    7.669326] 5084  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    7.673127] 50a4  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    7.676877] 50c4  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    7.680600] 50e4  00000000 00000000 00000000 00000000 00000000 00000000 00000000 0000ffff
[    7.684268] 
               X8: 0xffffff8105603720:
[    7.690315] 3720  0000c350 00000000 0000c350 00000000 ffffffff ffffffff 00000000 00000000
[    7.693983] 3740  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    7.697636] 3760  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    7.701256] 3780  00000000 00000000 00000000 00000000 00000001 00000000 00000000 00000000
[    7.704853] 37a0  05622800 ffffff81 00000001 00000000 00000000 00000000 00000000 00000000
[    7.708407] 37c0  03d9ad00 ffffff81 05602d00 ffffff81 00000000 00000000 00000000 00000000
[    7.711935] 37e0  11c48840 ffffffc0 1194b3b0 ffffffc0 00000001 00000000 112d5e00 ffffffc0
[    7.715453] 3800  056033b8 ffffff81 00000001 00000000 140cb780 ffffffc0 140cb780 ffffffc0
[    7.718978] 3820  10017e48 ffffffc0 00000000 00000000 00000000 00000000 00000000 00000000
[    7.722502] 3840  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    7.725999] 3860  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    7.729401] 3880  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    7.732781] 38a0  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    7.736064] 38c0  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    7.739344] 38e0  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    7.742624] 3900  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    7.745906] 
               X9: 0xffffffc010b6126c:
[    7.751417] 126c  f94013f5 a8c37bfd d50323bf d65f03c0 d503245f aa1e03e9 d503201f d503233f
[    7.754907] 128c  a9be7bfd 910003fd a90153f3 2a0203f3 2a0303f4 97ffffde 0a330013 2a140273
[    7.758472] 12ac  6b00027f 1a9f07e0 a94153f3 a8c27bfd d50323bf d65f03c0 aa1e03e9 d503201f
[    7.762108] 12cc  d503233f a9be7bfd 910003fd f9000bf3 aa0003f3 f9404003 b40001a3 aa0303e0
[    7.765827] 12ec  97f1c85f 2a0003e2 d0002361 913bd421 9101b421 aa1303e0 97ffff3c f9400bf3
[    7.769633] 130c  a8c27bfd d50323bf d65f03c0 f9403003 f9403063 b4000063 d63f0060 17fffff2
[    7.773523] 132c  12800082 17fffff1 d503245f aa1e03e9 d503201f d503233f a9bd7bfd 910003fd
[    7.777498] 134c  a9025bf5 91024016 2a0203f5 a90153f3 aa0003f3 2a0103f4 aa1603e0 940a3301
[    7.781557] 136c  2a1503e2 2a1403e1 aa1303e0 97ffffd3 2a0003f3 aa1603e0 940a31f1 2a1303e0
[    7.784136] scsi 0:0:0:0: Direct-Access      USB      SanDisk 3.2Gen1 1.00 PQ: 0 ANSI: 6
[    7.785693] 138c  a94153f3 a9425bf5 a8c37bfd d50323bf d65f03c0 aa1e03e9 d503201f d503233f
[    7.790812] sd 0:0:0:0: [sda] 60088320 512-byte logical blocks: (30.8 GB/28.7 GiB)
[    7.792934] 13ac  a9bc7bfd 910003fd a90363f7 91024018 2a0203f7 a90153f3 2a0303f3 aa0003f4
[    7.797309] sd 0:0:0:0: [sda] Write Protect is off
[    7.800247] 13cc  aa1803e0 a9025bf5 aa0403f6 2a0103f5 940a32e4 2a1503e1 aa1403e0 97ffff60
[    7.803101] sd 0:0:0:0: [sda] Mode Sense: 43 00 00 00
[    7.804434] sd 0:0:0:0: [sda] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA

[    7.807562] 13ec  4a130013 6a170262 1a9f07e1 390002c1 54000280 4a020002 2a1503e1 aa1403e0
[    7.824203] 140c  97ffffae 2a0003f3 aa1803e0 940a31cc d0002361 913bd421 2a1303e2 91022421
[    7.829160] 142c  aa1403e0 97fffef1 a94153f3 a9425bf5 a94363f7 a8c47bfd d50323bf d65f03c0
[    7.834170] 144c  52800013 17fffff1 d503245f aa1e03e9 d503201f d503233f a9bd7bfd d5384104
[    7.839217] 
               X11: 0xffffffffffffff00:
[    7.848104] ff00  ******** ******** ******** ******** ******** ******** ******** ********
[    7.853226] ff20  ******** ******** ******** ******** ******** ******** ******** ********
[    7.858327] ff40  ******** ******** ******** ******** ******** ******** ******** ********
[    7.863420] ff60  ******** ******** ******** ******** ******** ******** ******** ********
[    7.868472] ff80  ******** ******** ******** ******** ******** ******** ******** ********
[    7.873424] ffa0  ******** ******** ******** ******** ******** ******** ******** ********
[    7.878357] ffc0  ******** ******** ******** ******** ******** ******** ******** ********
[    7.883193] ffe0  ******** ******** ******** ******** ******** ******** ******** ********
[    7.888030] 0000  ******** ******** ******** ******** ******** ******** ******** ********
[    7.892868] 0020  ******** ******** ******** ******** ******** ******** ******** ********
[    7.897707] 0040  ******** ******** ******** ******** ******** ******** ******** ********
[    7.902546] 0060  ******** ******** ******** ******** ******** ******** ******** ********
[    7.907386] 0080  ******** ******** ******** ******** ******** ******** ******** ********
[    7.912226] 00a0  ******** ******** ******** ******** ******** ******** ******** ********
[    7.917057] 00c0  ******** ******** ******** ******** ******** ******** ******** ********
[    7.921795] 00e0  ******** ******** ******** ******** ******** ******** ******** ********
[    7.926507] 
               X13: 0xffffffc1ed261f00:
[    7.934829] 1f00  ******** ******** ******** ******** ******** ******** ******** ********
[    7.939698] 1f20  ******** ******** ******** ******** ******** ******** ******** ********
[    7.944565] 1f40  ******** ******** ******** ******** ******** ******** ******** ********
[    7.949436] 1f60  ******** ******** ******** ******** ******** ******** ******** ********
[    7.954298] 1f80  ******** ******** ******** ******** ******** ******** ******** ********
[    7.959069] 1fa0  ******** ******** ******** ******** ******** ******** ******** ********
[    7.963817] 1fc0  ******** ******** ******** ******** ******** ******** ******** ********
[    7.968468] 1fe0  ******** ******** ******** ******** ******** ******** ******** ********
[    7.973087] 2000  ******** ******** ******** ******** ******** ******** ******** ********
[    7.977713] 2020  ******** ******** ******** ******** ******** ******** ******** ********
[    7.982334] 2040  ******** ******** ******** ******** ******** ******** ******** ********
[    7.986934] 2060  ******** ******** ******** ******** ******** ******** ******** ********
[    7.991503] 2080  ******** ******** ******** ******** ******** ******** ******** ********
[    7.996025] 20a0  ******** ******** ******** ******** ******** ******** ******** ********
[    8.000476] 20c0  ******** ******** ******** ******** ******** ******** ******** ********
[    8.004880] 20e0  ******** ******** ******** ******** ******** ******** ******** ********
[    8.009262] 
               X14: 0xffffff8100878e00:
[    8.016975] 8e00  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    8.021563] 8e20  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    8.026153] 8e40  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    8.030744] 8e60  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    8.035334] 8e80  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    8.039829] 8ea0  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    8.044302] 8ec0  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    8.048679] 8ee0  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    8.052978] 8f00  00000008 00000000 ffffffff ffffffff 00000002 00000001 00000000 00000000
[    8.057236] 8f20  11f30000 ffffffc0 00000001 00200042 00000000 00000000 00000000 00000000
[    8.061454] 8f40  00000030 00000000 00000004 00000010 fffea227 00000000 0080da00 ffffff81
[    8.065641] 8f60  00000004 00000004 00000001 00000078 00000078 00000078 00000000 00000000
[    8.069785] 8f80  112d5b60 ffffffc0 00000000 00000000 00000000 00000000 00000000 00000000
[    8.073875] 8fa0  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    8.077904] 8fc0  00100000 00000000 00400000 00000000 00000001 00000000 00000000 00000000
[    8.081863] 8fe0  00000000 00000000 00878fe8 ffffff81 00878fe8 ffffff81 00000000 00000000
[    8.085774] 
               X15: 0xffffffffffffff00:
[    8.092263] ff00  ******** ******** ******** ******** ******** ******** ******** ********
[    8.096104] ff20  ******** ******** ******** ******** ******** ******** ******** ********
[    8.099848] ff40  ******** ******** ******** ******** ******** ******** ******** ********
[    8.103495] ff60  ******** ******** ******** ******** ******** ******** ******** ********
[    8.107050] ff80  ******** ******** ******** ******** ******** ******** ******** ********
[    8.110519] ffa0  ******** ******** ******** ******** ******** ******** ******** ********
[    8.113882] ffc0  ******** ******** ******** ******** ******** ******** ******** ********
[    8.117152] ffe0  ******** ******** ******** ******** ******** ******** ******** ********
[    8.120341] 0000  ******** ******** ******** ******** ******** ******** ******** ********
[    8.123448] 0020  ******** ******** ******** ******** ******** ******** ******** ********
[    8.126474] 0040  ******** ******** ******** ******** ******** ******** ******** ********
[    8.129406] 0060  ******** ******** ******** ******** ******** ******** ******** ********
[    8.132314] 0080  ******** ******** ******** ******** ******** ******** ******** ********
[    8.135127] 00a0  ******** ******** ******** ******** ******** ******** ******** ********
[    8.137938] 00c0  ******** ******** ******** ******** ******** ******** ******** ********
[    8.140748] 00e0  ******** ******** ******** ******** ******** ******** ******** ********
[    8.143558] 
               X16: 0xffffffffffffff00:
[    8.148123] ff00  ******** ******** ******** ******** ******** ******** ******** ********
[    8.151142] ff20  ******** ******** ******** ******** ******** ******** ******** ********
[    8.154162] ff40  ******** ******** ******** ******** ******** ******** ******** ********
[    8.157176] ff60  ******** ******** ******** ******** ******** ******** ******** ********
[    8.160189] ff80  ******** ******** ******** ******** ******** ******** ******** ********
[    8.163203] ffa0  ******** ******** ******** ******** ******** ******** ******** ********
[    8.166215] ffc0  ******** ******** ******** ******** ******** ******** ******** ********
[    8.169225] ffe0  ******** ******** ******** ******** ******** ******** ******** ********
[    8.172235] 0000  ******** ******** ******** ******** ******** ******** ******** ********
[    8.175248] 0020  ******** ******** ******** ******** ******** ******** ******** ********
[    8.178258] 0040  ******** ******** ******** ******** ******** ******** ******** ********
[    8.181172] 0060  ******** ******** ******** ******** ******** ******** ******** ********
[    8.184065] 0080  ******** ******** ******** ******** ******** ******** ******** ********
[    8.186861] 00a0  ******** ******** ******** ******** ******** ******** ******** ********
[    8.189654] 00c0  ******** ******** ******** ******** ******** ******** ******** ********
[    8.192447] 00e0  ******** ******** ******** ******** ******** ******** ******** ********
[    8.195243] 
               X17: 0xffffffffffffff00:
[    8.199781] ff00  ******** ******** ******** ******** ******** ******** ******** ********
[    8.202784] ff20  ******** ******** ******** ******** ******** ******** ******** ********
[    8.205789] ff40  ******** ******** ******** ******** ******** ******** ******** ********
[    8.208785] ff60  ******** ******** ******** ******** ******** ******** ******** ********
[    8.211781] ff80  ******** ******** ******** ******** ******** ******** ******** ********
[    8.214777] ffa0  ******** ******** ******** ******** ******** ******** ******** ********
[    8.217773] ffc0  ******** ******** ******** ******** ******** ******** ******** ********
[    8.220765] ffe0  ******** ******** ******** ******** ******** ******** ******** ********
[    8.223759] 0000  ******** ******** ******** ******** ******** ******** ******** ********
[    8.226749] 0020  ******** ******** ******** ******** ******** ******** ******** ********
[    8.229736] 0040  ******** ******** ******** ******** ******** ******** ******** ********
[    8.232630] 0060  ******** ******** ******** ******** ******** ******** ******** ********
[    8.235502] 0080  ******** ******** ******** ******** ******** ******** ******** ********
[    8.238278] 00a0  ******** ******** ******** ******** ******** ******** ******** ********
[    8.241054] 00c0  ******** ******** ******** ******** ******** ******** ******** ********
[    8.243830] 00e0  ******** ******** ******** ******** ******** ******** ******** ********
[    8.246606] 
               X18: 0xffffffffffffff00:
[    8.251108] ff00  ******** ******** ******** ******** ******** ******** ******** ********
[    8.254096] ff20  ******** ******** ******** ******** ******** ******** ******** ********
[    8.257085] ff40  ******** ******** ******** ******** ******** ******** ******** ********
[    8.260040] ff60  ******** ******** ******** ******** ******** ******** ******** ********
[    8.262953] ff80  ******** ******** ******** ******** ******** ******** ******** ********
[    8.265809] ffa0  ******** ******** ******** ******** ******** ******** ******** ********
[    8.268624] ffc0  ******** ******** ******** ******** ******** ******** ******** ********
[    8.271401] ffe0  ******** ******** ******** ******** ******** ******** ******** ********
[    8.274160] 0000  ******** ******** ******** ******** ******** ******** ******** ********
[    8.276917] 0020  ******** ******** ******** ******** ******** ******** ******** ********
[    8.279628] 0040  ******** ******** ******** ******** ******** ******** ******** ********
[    8.282247] 0060  ******** ******** ******** ******** ******** ******** ******** ********
[    8.284843] 0080  ******** ******** ******** ******** ******** ******** ******** ********
[    8.287343] 00a0  ******** ******** ******** ******** ******** ******** ******** ********
[    8.289839] 00c0  ******** ******** ******** ******** ******** ******** ******** ********
[    8.292336] 00e0  ******** ******** ******** ******** ******** ******** ******** ********
[    8.294834] 
               X23: 0xffffffc0100e115c:
[    8.298770] 115c  940011df aa1503e0 94343d99 aa1303e0 97fffcff a94153f3 f94013f5 a8c37bfd
[    8.301471] 117c  d50323bf d65f03c0 d503245f aa1e03e9 d503201f d503233f a9bd7bfd 910003fd
[    8.304246] 119c  a90153f3 aa0003f3 aa0103f4 52804000 f90013f5 97ff2d97 f000e020 52801401
[    8.307102] 11bc  b94fc400 7100001f 52800c00 1a81d000 92401c00 d50342df b9403a80 f9400681
[    8.310035] 11dc  f9401282 d63f0040 2a0003f5 7100041f 540000e1 91029262 f9800051 885f7c40
[    8.313051] 11fc  11000400 88017c40 35ffffa1 aa1303e0 aa1403e1 97ffffaa d2801c00 d50342ff
[    8.316149] 121c  9000e040 b9407000 7100001f 5400004d d5033f9f d503249f 52804001 90000000
[    8.319325] 123c  9108c000 97fe87f1 2a1503e0 a94153f3 f94013f5 a8c37bfd d50323bf d65f03c0
[    8.322586] 125c  d503245f aa1e03e9 d503201f d503233f a9be7bfd 910003fd a90153f3 d5384114
[    8.325931] 127c  b9402e80 371000c0 d4210000 a94153f3 a8c27bfd d50323bf d65f03c0 aa1403e0
[    8.329356] 129c  97fef80c aa0003f3 b9457a82 911d4281 900085a0 913a2800 b9403a63 943374ce
[    8.332774] 12bc  b9403a60 97fff6fd aa0003f4 91010261 52800000 97fffc44 34000060 aa1403e0
[    8.336253] 12dc  97fffe4d aa1303e1 aa1403e0 97ffff74 17ffffe7 d503245f aa1e03e9 d503201f
[    8.339721] 12fc  d503233f a9bd7bfd 910003fd a90153f3 aa0003f3 aa0103f4 b9403820 f90013f5
[    8.343275] 131c  f9401022 f9400421 d63f0040 2a0003f5 7100041f 540000e1 91029262 f9800051
[    8.346913] 133c  885f7c40 11000400 88017c40 35ffffa1 aa1403e1 aa1303e0 97ffff59 2a1503e0
[    8.350634] 
               X24: 0xffffff810139b9b0:
[    8.357036] b9b0  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    8.360969] b9d0  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    8.364906] b9f0  00000000 00000000 00000000 00000000 00400203 00000000 00000000 00000000
[    8.368846] ba10  00000000 00000000 ffffffff ffffffff 00000000 00000000 00000000 00000000
[    8.372817] ba30  08000000 00000087 0000001b 00000000 0139ba00 ffffff81 010954b0 ffffff81
[    8.376856] ba50  01042800 ffffff81 00000000 00000000 01095420 ffffff81 d2d1341c 0000003c
[    8.380942] ba70  100e57c8 ffffffc0 05622600 ffffff81 00000003 00000020 00000000 00000000
[    8.385100] ba90  00000001 00000000 00000000 00000000 00000000 00000000 80000000 00000000
[    8.389305] bab0  00000000 dead4ead ffffffff 00000000 ffffffff ffffffff 00000000 00000000
[    8.393559] bad0  00000000 00000000 00000000 00000000 00000000 00000000 00000001 00000000
[    8.397859] baf0  00000001 00000000 00000000 dead4ead ffffffff 00000000 ffffffff ffffffff
[    8.402109] bb10  0139bb10 ffffff81 0139bb10 ffffff81 00000001 00000000 00000000 00000000
[    8.406417] bb30  056ae000 ffffff81 00000000 00000000 00000000 00000000 05622500 ffffff81
[    8.410679] bb50  0139bb50 ffffff81 0139bb50 ffffff81 00dd7000 ffffff81 00000000 00000000
[    8.415006] bb70  11a49e20 ffffffc0 05621200 ffffff81 00000001 00000003 00000000 00000000
[    8.419373] bb90  00000000 dead4ead ffffffff 00000000 ffffffff ffffffff 00000000 00000000
[    8.423814] 
               X25: 0xffffff8100ed8558:
[    8.431658] 8558  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    8.436315] 8578  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    8.440972] 8598  047b98c8 ffffff81 047b98e0 ffffff81 047b98e0 ffffff81 00000001 00000000
[    8.445691] 85b8  00ed85b8 ffffff81 00ed85b8 ffffff81 00000000 00000000 00000000 00000000
[    8.450453] 85d8  046a1410 ffffff81 00000000 00000000 00000000 00000000 00000000 00000000
[    8.455247] 85f8  00000000 00000000 00000000 00000000 00000000 00000000 100e0cc0 ffffffc0
[    8.460080] 8618  05622600 ffffff81 00000000 00000000 00000000 00000000 00000000 dead4ead
[    8.464952] 8638  ffffffff 00000000 ffffffff ffffffff 00ed8648 ffffff81 00ed8648 ffffff81
[    8.469913] 8658  00000000 00000000 00000000 dead4ead ffffffff 00000000 ffffffff ffffffff
[    8.474940] 8678  00ed8678 ffffff81 00ed8678 ffffff81 00000000 00000000 00000000 00000000
[    8.480044] 8698  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    8.485094] 86b8  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    8.490119] 86d8  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    8.495051] 86f8  00000000 00000000 00f18980 ffffff81 00000015 00000000 056c9510 ffffff81
[    8.500026] 8718  11b359d8 ffffffc0 00000000 dead4ead ffffffff 00000000 ffffffff ffffffff
[    8.505071] 8738  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    8.510184] 
               X26: 0xffffff8105622540:
[    8.519369] 2540  05622580 ffffff81 5f6b6c63 65726170 0000746e 00000000 00000000 00000000
[    8.524696] 2560  00000001 00000000 00000000 dead4ead ffffffff ffffffc0 ffffffff ffffffff
[    8.530109] 2580  00353331 70616d2d 10e86700 ffffffc0 00e18800 ffffff81 ffffffff ffffffff
[    8.535573] 25a0  10ec6169 ffffffc0 056225a8 ffffff81 056225a8 ffffff81 056224e0 ffffff81
[    8.541101] 25c0  05622600 ffffff81 056225c8 ffffff81 056225c8 ffffff81 00000000 00000000
[    8.546670] 25e0  0562b408 ffffff81 00400008 00000002 00000000 00000000 f6240a68 ffffff81
[    8.552307] 2600  100e044c ffffffc0 0139b880 ffffff81 00000000 00000000 00000000 00000000
[    8.558003] 2620  10b6ce30 ffffffc0 05602d00 ffffff81 00000000 00000000 00000087 00002003
[    8.563729] 2640  00000000 00000000 00000001 00000000 112bad09 ffffffc0 056ae800 ffffff81
[    8.569538] 2660  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    8.575390] 2680  6f697067 36353a31 73617000 68742d73 05007572 ffffff81 05621a08 ffffff81
[    8.581230] 26a0  056226a0 ffffff81 056226a0 ffffff81 00000000 00000000 0562b6d8 ffffff81
[    8.587113] 26c0  05622500 ffffff81 00000000 00000000 f644a9b8 ffffff81 055cc870 ffffff81
[    8.592957] 26e0  49537af6 00000009 056226f8 ffffff81 0562b840 ffffff81 6b6c6364 74756f5f
[    8.598806] 2700  6f697067 39353a31 73617000 68742d73 ff007572 00000000 00000000 dead4ead
[    8.604660] 2720  ffffffff 00000000 ffffffff ffffffff 0000000e 00000000 10e867c0 ffffffc0
[    8.610519] 
               X28: 0xffffffffffffff00:
[    8.620950] ff00  ******** ******** ******** ******** ******** ******** ******** ********
[    8.626783] ff20  ******** ******** ******** ******** ******** ******** ******** ********
[    8.632534] ff40  ******** ******** ******** ******** ******** ******** ******** ********
[    8.638201] ff60  ******** ******** ******** ******** ******** ******** ******** ********
[    8.643790] ff80  ******** ******** ******** ******** ******** ******** ******** ********
[    8.649291] ffa0  ******** ******** ******** ******** ******** ******** ******** ********
[    8.654708] ffc0  ******** ******** ******** ******** ******** ******** ******** ********
[    8.660044] ffe0  ******** ******** ******** ******** ******** ******** ******** ********
[    8.665296] 0000  ******** ******** ******** ******** ******** ******** ******** ********
[    8.670467] 0020  ******** ******** ******** ******** ******** ******** ******** ********
[    8.675559] 0040  ******** ******** ******** ******** ******** ******** ******** ********
[    8.680556] 0060  ******** ******** ******** ******** ******** ******** ******** ********
[    8.685530] 0080  ******** ******** ******** ******** ******** ******** ******** ********
[    8.690407] 00a0  ******** ******** ******** ******** ******** ******** ******** ********
[    8.695284] 00c0  ******** ******** ******** ******** ******** ******** ******** ********
[    8.700156] 00e0  ******** ******** ******** ******** ******** ******** ******** ********
[    8.705002] 
               X29: 0xffffffc0140cbc20:
[    8.713455] bc20  00000ac0 00000000 00000000 00000000 3464d91d 00000000 ed262000 ffffffc1
[    8.718321] bc40  00878f00 ffffff81 00000000 00000000 00000000 00000000 00000000 00000000
[    8.723190] bc60  00000000 00000000 00000090 00000000 00000022 00000000 000000c0 00000000
[    8.728036] bc80  00000090 00000000 100e125c ffffffc0 0139bab0 ffffff81 00ed8658 ffffff81
[    8.732897] bca0  05622640 ffffff81 00000001 00000000 00000000 00000000 140cbd20 ffffffc0
[    8.737790] bcc0  10dedf98 ffffffc0 140cbd20 ffffffc0 100d14ec ffffffc0 00c00009 00000000
[    8.742682] bce0  140cbd20 ffffffc0 10548418 ffffffc0 ffffffff ffffffff 11ae30a0 ffffffc0
[    8.747580] bd00  140cbd20 ffffffc0 100d14ec ffffffc0 100e125c ffffffc0 00000000 00000000
[    8.752456] bd20  140cbd40 ffffffc0 10b6136c ffffffc0 00000000 00000000 00000001 00000000
[    8.757325] bd40  140cbd70 ffffffc0 10b6ceb8 ffffffc0 0139b880 ffffff81 00000001 00000000
[    8.762156] bd60  00000000 00000000 05602d00 ffffff81 140cbdb0 ffffffc0 100e1328 ffffffc0
[    8.766958] bd80  0139ba00 ffffff81 05622600 ffffff81 100e12f0 ffffffc0 00000000 00000000
[    8.771788] bda0  140cbdc0 ffffffc0 13e1cf00 37d2f551 140cbde0 ffffffc0 100e0dac ffffffc0
[    8.776580] bdc0  05622600 ffffff81 0139ba00 ffffff81 100e12f0 ffffffc0 13e1cf00 37d2f551
[    8.781433] bde0  140cbe60 ffffffc0 100a0200 ffffffc0 05622780 ffffff81 00ed8600 ffffff81
[    8.786278] be00  05602d00 ffffff81 11d5b988 ffffffc0 100e0cc0 ffffffc0 05622600 ffffff81
[    8.791134] Code: 52800020 17fffffd d503233f f9800011 (c85ffc03) 
[    8.795801] ---[ end trace 7956a0deb0a277cd ]---
[    8.808125] sched: RT throttling activated
[    8.814460] input: rockchip,dp0 rockchip,dp0 as /devices/platform/dp0-sound/sound/card0/input4
[    8.821835] NET: Registered protocol family 17
[    8.822345]  sda: sda1
[    8.826728] [BT_RFKILL]: Enter rfkill_rk_init
[    8.829202] [WLAN_RFKILL]: Enter rfkill_wlan_init
[    8.830554] sd 0:0:0:0: [sda] Attached SCSI removable disk
[    8.831059] [WLAN_RFKILL]: Enter rfkill_wlan_probe
[    8.833867] [WLAN_RFKILL]: can't find rockchip,grf property
[    8.835616] [WLAN_RFKILL]: wlan_platdata_parse_dt: wifi_chip_type = ap6275p
[    8.837493] [WLAN_RFKILL]: wlan_platdata_parse_dt: enable wifi power control.
[    8.839363] [WLAN_RFKILL]: wlan_platdata_parse_dt: wifi power controled by gpio.
[    8.841447] [WLAN_RFKILL]: wlan_platdata_parse_dt: WIFI,host_wake_irq = 0, flags = 0.
[    8.843832] [WLAN_RFKILL]: wlan_platdata_parse_dt: The ref_wifi_clk not found !
[    8.846144] [WLAN_RFKILL]: rfkill_wlan_probe: init gpio
[    8.848264] [WLAN_RFKILL]: rfkill_set_wifi_bt_power: 1
[    8.850368] [WLAN_RFKILL]: Exit rfkill_wlan_probe
[    8.852892] [BT_RFKILL]: bluetooth_platdata_parse_dt: get property: uart_rts_gpios = 122.
[    8.855294] [BT_RFKILL]: bluetooth_platdata_parse_dt: get property: BT,reset_gpio = 28.
[    8.857671] [BT_RFKILL]: bluetooth_platdata_parse_dt: get property: BT,wake_gpio = 27.
[    8.860023] [BT_RFKILL]: bluetooth_platdata_parse_dt: get property: BT,wake_host_irq = 29.
[    8.863191] [BT_RFKILL]: Request irq for bt wakeup host
[    8.864976] [BT_RFKILL]: ** disable irq
[    8.866650] [BT_RFKILL]: rfkill_rk_set_power: set bt wake_host high!
[    8.919413] [BT_RFKILL]: ENABLE UART_RTS
[    9.026115] [BT_RFKILL]: DISABLE UART_RTS
[    9.028602] [BT_RFKILL]: bt turn on power
[    9.030921] [BT_RFKILL]: Request irq for bt wakeup host
[    9.033334] [BT_RFKILL]: ** disable irq
[    9.035567] [BT_RFKILL]: bt_default device registered.
[    9.038029] Key type dns_resolver registered
[    9.042929] registered taskstats version 1
[    9.046537] Loading compiled-in X.509 certificates
[    9.050209] Key type ._fscrypt registered
[    9.053843] Key type .fscrypt registered
[    9.057480] Key type fscrypt-provisioning registered
[    9.061411] pstore: Using crash dump compression: deflate
[    9.065016] rga3_core0 fdb60000.rga: Adding to iommu group 2
[    9.068627] rga: rga3_core0_irq, irq = 34, match scheduler
[    9.073209] rga: rga3_core0 driver loaded successfully ver:3.0.76831
[    9.077544] rga: rga3_core0 probe successfully
[    9.081289] rga3_core1 fdb70000.rga: Adding to iommu group 3
[    9.084838] rga: rga3_core1_irq, irq = 35, match scheduler
[    9.088794] rga: rga3_core1 driver loaded successfully ver:3.0.76831
[    9.092708] rga: rga3_core1 probe successfully
[    9.096994] rga: rga2_irq, irq = 36, match scheduler
[    9.101509] rga: rga2 driver loaded successfully ver:3.2.63318
[    9.104301] rga: rga2 probe successfully
[    9.107323] rga: Module initialized. v1.2.13
[    9.116169] vendor storage:20190527 ret = 0
[    9.140855] rockchip-pm-domain fd8d8000.power-management:power-controller: Looking up gpu-supply from device tree
[    9.141013] reg-fixed-voltage combophy-avdd0v85: Looking up vin-supply from device tree
[    9.147485] rockchip-pm-domain fd8d8000.power-management:power-controller: Looking up gpu-supply property in node /power-management@fd8d8000/power-controller failed
[    9.153868] combophy_avdd0v85: supplied by vdd_0v85_s0
[    9.162358] genirq: exiting task "irq/135-es8316" (191) is an active IRQ thread (irq 135)
[    9.162827] mali fb000000.gpu: Kernel DDK version g11p0-01eac0
[    9.162865] mali fb000000.gpu: Looking up mali-supply from device tree
[    9.166926] vdd_0v85_s0: could not add device link regulator.35: -ENOENT
[    9.170384] mali fb000000.gpu: Looking up mem-supply from device tree
[    9.170521] mali fb000000.gpu: Looking up mali-supply from device tree
[    9.173404] vdd_gpu_s0: could not add device link fb000000.gpu: -EEXIST
[    9.204402] vdd_gpu_s0: Failed to create debugfs directory
[    9.209686] mali fb000000.gpu: Looking up mem-supply from device tree
[    9.220300] combophy_avdd0v85: 850 mV, enabled
[    9.220391] vdd_gpu_s0: could not add device link fb000000.gpu: -EEXIST
[    9.227041] vdd_gpu_s0: Failed to create debugfs directory
[    9.228666] mali fb000000.gpu: leakage=11
[    9.229917] mali fb000000.gpu: Looking up mali-supply from device tree
[    9.233204] vdd_gpu_s0: could not add device link fb000000.gpu: -EEXIST
[    9.235051] vdd_gpu_s0: Failed to create debugfs directory
[    9.238564] reg-fixed-voltage combophy-avdd0v85: combophy_avdd0v85 supplying 850000uV
[    9.240308] mali fb000000.gpu: pvtm=841
[    9.244405] reg-fixed-voltage combophy-avdd1v8: Looking up vin-supply from device tree
[    9.249228] mali fb000000.gpu: pvtm-volt-sel=2
[    9.251513] combophy_avdd1v8: supplied by avcc_1v8_s0
[    9.253952] mali fb000000.gpu: avs=0
[    9.257196] avcc_1v8_s0: could not add device link regulator.36: -ENOENT
[    9.259938] W : [File] : drivers/gpu/arm/bifrost/platform/rk/mali_kbase_config_rk.c; [Line] : 136; [Func] : kbase_platform_rk_init(); power-off-delay-ms not available.
[    9.264035] combophy_avdd1v8: 1800 mV, enabled
[    9.274794] mali fb000000.gpu: r0p0 status 5 is unknown; treating as r0p0 status 0
[    9.275040] reg-fixed-voltage combophy-avdd1v8: combophy_avdd1v8 supplying 1800000uV
[    9.277200] mali fb000000.gpu: GPU identified as 0x7 arch 10.8.6 r0p0 status 0
[    9.283894] reg-fixed-voltage vcc-sd: Looking up vin-supply from device tree
[    9.285627] mali fb000000.gpu: No priority control manager is configured
[    9.291720] vcc_sd: supplied by vcc_3v3_s3
[    9.293979] mali fb000000.gpu: No memory group manager is configured
[    9.299802] vcc_3v3_s3: could not add device link regulator.37: -ENOENT
[    9.302136] mali fb000000.gpu: Protected memory allocator not available
[    9.311643] mali fb000000.gpu: l=10000 h=85000 hyst=5000 l_limit=0 h_limit=800000000 h_table=0
[    9.311971] vcc_sd: 3300 mV, enabled
[    9.319592] reg-fixed-voltage vcc-sd: vcc_sd supplying 3300000uV
[    9.322977] rockchip-csi2-dphy csi2-dcphy0: csi2 dphy0 probe successfully!
[    9.326133] rockchip-csi2-dphy csi2-dcphy1: csi2 dphy1 probe successfully!
[    9.329330] input: adc-keys as /devices/platform/adc-keys/input/input10
[    9.330322] mali fb000000.gpu: Probed as mali0
[    9.338155] es8316 3-0010: ASoC: error at soc_component_write_no_lock on es8316.3-0010: -6
[    9.346269] es8316 3-0010: ASoC: error at soc_component_write_no_lock on es8316.3-0010: -6
[    9.386336] es8316 3-0010: ASoC: error at soc_component_write_no_lock on es8316.3-0010: -6
[    9.396679] es8316 3-0010: ASoC: error at soc_component_write_no_lock on es8316.3-0010: -6
[    9.404643] es8316 3-0010: ASoC: error at soc_component_read_no_lock on es8316.3-0010: -6
[    9.410030] es8316 3-0010: ASoC: error at soc_component_read_no_lock on es8316.3-0010: -6
[    9.415354] es8316 3-0010: ASoC: error at soc_component_read_no_lock on es8316.3-0010: -6
[    9.420718] es8316 3-0010: ASoC: error at soc_component_read_no_lock on es8316.3-0010: -6
[    9.427383] es8316 3-0010: ASoC: error at soc_component_read_no_lock on es8316.3-0010: -6
[    9.434043] es8316 3-0010: ASoC: error at soc_component_read_no_lock on es8316.3-0010: -6
[    9.439949] es8316 3-0010: ASoC: error at soc_component_read_no_lock on es8316.3-0010: -6
[    9.445766] es8316 3-0010: ASoC: error at soc_component_read_no_lock on es8316.3-0010: -6
[    9.451541] es8316 3-0010: ASoC: error at soc_component_read_no_lock on es8316.3-0010: -6
[    9.456685] es8316 3-0010: ASoC: error at soc_component_read_no_lock on es8316.3-0010: -6
[    9.462088] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[    9.467336] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[    9.473765] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[    9.477039] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[    9.481811] es8316 3-0010: ASoC: error at soc_component_read_no_lock on es8316.3-0010: -6
[    9.485079] es8316 3-0010: ASoC: error at soc_component_read_no_lock on es8316.3-0010: -6
[    9.488380] es8316 3-0010: ASoC: error at soc_component_read_no_lock on es8316.3-0010: -6
[    9.491723] es8316 3-0010: ASoC: error at soc_component_read_no_lock on es8316.3-0010: -6
[    9.494972] es8316 3-0010: ASoC: error at soc_component_read_no_lock on es8316.3-0010: -6
[    9.498123] es8316 3-0010: ASoC: error at soc_component_read_no_lock on es8316.3-0010: -6
[    9.501217] es8316 3-0010: ASoC: error at soc_component_read_no_lock on es8316.3-0010: -6
[    9.504119] es8316 3-0010: ASoC: error at soc_component_read_no_lock on es8316.3-0010: -6
[    9.506911] es8316 3-0010: ASoC: error at soc_component_read_no_lock on es8316.3-0010: -6
[    9.509636] es8316 3-0010: ASoC: error at soc_component_read_no_lock on es8316.3-0010: -6
[    9.512319] es8316 3-0010: ASoC: error at soc_component_read_no_lock on es8316.3-0010: -6
[    9.515165] es8316 3-0010: ASoC: error at soc_component_read_no_lock on es8316.3-0010: -6
[    9.517569] es8316 3-0010: ASoC: error at soc_component_read_no_lock on es8316.3-0010: -6
[    9.519899] es8316 3-0010: ASoC: error at soc_component_read_no_lock on es8316.3-0010: -6
[    9.522178] es8316 3-0010: ASoC: error at soc_component_read_no_lock on es8316.3-0010: -6
[    9.524437] es8316 3-0010: ASoC: error at soc_component_read_no_lock on es8316.3-0010: -6
[    9.526673] es8316 3-0010: ASoC: error at soc_component_read_no_lock on es8316.3-0010: -6
[    9.528879] es8316 3-0010: ASoC: error at soc_component_read_no_lock on es8316.3-0010: -6
[    9.531068] es8316 3-0010: ASoC: error at soc_component_read_no_lock on es8316.3-0010: -6
[    9.533238] es8316 3-0010: ASoC: error at soc_component_read_no_lock on es8316.3-0010: -6
[    9.535381] es8316 3-0010: ASoC: error at soc_component_read_no_lock on es8316.3-0010: -6
[    9.537488] es8316 3-0010: ASoC: error at soc_component_read_no_lock on es8316.3-0010: -6
[    9.539702] es8316 3-0010: ASoC: error at soc_component_read_no_lock on es8316.3-0010: -6
[    9.541854] es8316 3-0010: ASoC: error at soc_component_read_no_lock on es8316.3-0010: -6
[    9.543969] es8316 3-0010: ASoC: error at soc_component_read_no_lock on es8316.3-0010: -6
[    9.546154] es8316 3-0010: ASoC: error at soc_component_read_no_lock on es8316.3-0010: -6
[    9.548371] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[    9.550579] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[    9.552758] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[    9.554790] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[    9.556902] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[    9.558858] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[    9.562586] dwmmc_rockchip fe2c0000.mmc: IDMAC supports 32-bit address mode.
[    9.563702] rkcif rkcif-mipi-lvds: clear unready subdev num: 1
[    9.564133] dwmmc_rockchip fe2c0000.mmc: Using internal DMA controller.
[    9.565472] rockchip-csi2-dphy0: No link between dphy and sensor
[    9.566927] dwmmc_rockchip fe2c0000.mmc: Version ID is 270a
[    9.568370] rockchip-pm-domain fd8d8000.power-management:power-controller: Looking up sdio-supply from device tree
[    9.569609] dwmmc_rockchip fe2c0000.mmc: DW MMC controller at irq 87,32 bit host data width,256 deep fifo
[    9.571345] rockchip-pm-domain fd8d8000.power-management:power-controller: Looking up sdio-supply property in node /power-management@fd8d8000/power-controller failed
[    9.573084] dwmmc_rockchip fe2c0000.mmc: Looking up vmmc-supply from device tree
[    9.575547] rockchip-csi2-dphy0: No link between dphy and sensor
[    9.578267] rkcif-mipi-lvds: rkcif_update_sensor_info: stream[0] get remote terminal sensor failed!
[    9.579985] rkcif-mipi-lvds: Async subdev notifier completed
[    9.581274] rockchip-csi2-dphy0: No link between dphy and sensor
[    9.582603] rkcif-mipi-lvds: rkcif_update_sensor_info: stream[0] get remote terminal sensor failed!
[    9.584229] rkcif-mipi-lvds: There is not terminal subdev, not synchronized with ISP
[    9.585734] rkcif rkcif-mipi-lvds1: clear unready subdev num: 1
[    9.587127] rockchip-pm-domain fd8d8000.power-management:power-controller: Looking up pcie-supply from device tree
[    9.587346] dwmmc_rockchip fe2c0000.mmc: Looking up vqmmc-supply from device tree
[    9.588905] rockchip-pm-domain fd8d8000.power-management:power-controller: Looking up pcie-supply property in node /power-management@fd8d8000/power-controller failed
[    9.592773] rockchip-csi2-dphy1: No link between dphy and sensor
[    9.594919] rockchip-csi2-dphy1: No link between dphy and sensor
[    9.595508] rockchip-pm-domain fd8d8000.power-management:power-controller: Looking up gmac-supply from device tree
[    9.598930] rkcif-mipi-lvds1: rkcif_update_sensor_info: stream[0] get remote terminal sensor failed!
[    9.600798] rockchip-pm-domain fd8d8000.power-management:power-controller: Looking up gmac-supply property in node /power-management@fd8d8000/power-controller failed
[    9.605251] rkcif-mipi-lvds1: Async subdev notifier completed
[    9.610094] rockchip-pm-domain fd8d8000.power-management:power-controller: Looking up npu-supply from device tree
[    9.612101] rockchip-csi2-dphy1: No link between dphy and sensor
[    9.614154] rockchip-pm-domain fd8d8000.power-management:power-controller: Looking up npu-supply property in node /power-management@fd8d8000/power-controller failed
[    9.618667] mmc_host mmc1: Bus speed (slot 0) = 400000Hz (slot req 400000Hz, actual 400000HZ div = 0)
[    9.618915] rkcif-mipi-lvds1: rkcif_update_sensor_info: stream[0] get remote terminal sensor failed!
[    9.631617] rkcif-mipi-lvds1: There is not terminal subdev, not synchronized with ISP
[    9.635690] rkcif rkcif-mipi-lvds2: clear unready subdev num: 1
[    9.639503] rockchip-csi2-dphy0: No link between dphy and sensor
[    9.644121] rockchip-csi2-dphy0: No link between dphy and sensor
[    9.648044] rkcif-mipi-lvds2: rkcif_update_sensor_info: stream[0] get remote terminal sensor failed!
[    9.652225] rkcif-mipi-lvds2: Async subdev notifier completed
[    9.656143] rockchip-csi2-dphy0: No link between dphy and sensor
[    9.660130] rkcif-mipi-lvds2: rkcif_update_sensor_info: stream[0] get remote terminal sensor failed!
[    9.664481] rkcif-mipi-lvds2: There is not terminal subdev, not synchronized with ISP
[    9.670369] RKNPU fdab0000.npu: Adding to iommu group 0
[    9.674710] RKNPU fdab0000.npu: RKNPU: rknpu iommu is enabled, using iommu mode
[    9.679207] RKNPU fdab0000.npu: Looking up rknpu-supply from device tree
[    9.686740] RKNPU fdab0000.npu: Looking up mem-supply from device tree
[    9.693783] RKNPU fdab0000.npu: can't request region for resource [mem 0xfdab0000-0xfdabffff]
[    9.700351] RKNPU fdab0000.npu: can't request region for resource [mem 0xfdac0000-0xfdacffff]
[    9.703090] RKNPU fdab0000.npu: can't request region for resource [mem 0xfdad0000-0xfdadffff]
[    9.706492] [drm] Initialized rknpu 0.7.2 20220428 for fdab0000.npu on minor 1
[    9.709413] rockchip-pm-domain fd8d8000.power-management:power-controller: Looking up nputop-supply from device tree
[    9.712336] rockchip-pm-domain fd8d8000.power-management:power-controller: Looking up nputop-supply property in node /power-management@fd8d8000/power-controller failed
[    9.715749] rockchip-pm-domain fd8d8000.power-management:power-controller: Looking up npu1-supply from device tree
[    9.718716] rockchip-pm-domain fd8d8000.power-management:power-controller: Looking up npu1-supply property in node /power-management@fd8d8000/power-controller failed
[    9.722155] rockchip-pm-domain fd8d8000.power-management:power-controller: Looking up npu2-supply from device tree
[    9.725177] rockchip-pm-domain fd8d8000.power-management:power-controller: Looking up npu2-supply property in node /power-management@fd8d8000/power-controller failed
[    9.728736] RKNPU fdab0000.npu: Looking up rknpu-supply from device tree
[    9.731333] vdd_npu_s0: could not add device link fdab0000.npu: -EEXIST
[    9.733767] vdd_npu_s0: Failed to create debugfs directory
[    9.736741] RKNPU fdab0000.npu: Looking up mem-supply from device tree
[    9.739303] vdd_npu_s0: could not add device link fdab0000.npu: -EEXIST
[    9.741802] vdd_npu_s0: Failed to create debugfs directory
[    9.745191] RKNPU fdab0000.npu: leakage=6
[    9.747478] RKNPU fdab0000.npu: Looking up rknpu-supply from device tree
[    9.749940] vdd_npu_s0: could not add device link fdab0000.npu: -EEXIST
[    9.752382] vdd_npu_s0: Failed to create debugfs directory
[    9.762950] RKNPU fdab0000.npu: pvtm=869
[    9.769766] RKNPU fdab0000.npu: pvtm-volt-sel=3
[    9.772545] RKNPU fdab0000.npu: avs=0
[    9.774863] RKNPU fdab0000.npu: l=10000 h=85000 hyst=5000 l_limit=0 h_limit=800000000 h_table=0
[    9.801609] RKNPU fdab0000.npu: failed to find power_model node
[    9.805096] RKNPU fdab0000.npu: RKNPU: failed to initialize power model
[    9.808574] RKNPU fdab0000.npu: RKNPU: failed to get dynamic-coefficient
[    9.812978] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[    9.829801] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[    9.834088] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2
[    9.838439] cfg80211: failed to load regulatory.db
[    9.843424] rockchip-pm rockchip-suspend: not set pwm-regulator-config
[    9.847950] I : [File] : drivers/gpu/arm/mali400/mali/linux/mali_kernel_linux.c; [Line] : 405; [Func] : mali_module_init(); svn_rev_string_from_arm of this mali_ko is '', rk_ko_ver is '5', built at '13:50:56', on 'Feb  1 2023'.
[    9.852985] Mali: 
[    9.852989] Mali device driver loaded
[    9.859278] rkisp rkisp0-vir0: clear unready subdev num: 3
[    9.863150] rkisp-unite: Async subdev notifier completed
[    9.867896] ALSA device list:
[    9.870509]   #0: rockchip,dp0
[    9.873095]   #1: rockchip,hdmi0
[    9.875642]   #2: rockchip,sound-micarray
[    9.878229]   #3: rockchip,es8316-codec
[    9.883795] Freeing unused kernel memory: 6016K
[    9.886235] Run /init as init process
[    9.888369]   with arguments:
[    9.890254]     /init
[    9.892009]   with environment:
[    9.893784]     HOME=/
[    9.895444]     TERM=linux
[    9.897113]     storagemedia=emmc
[    9.898804]     khadas_board=Edge2
[    9.900470]     partition_type=vendor
[    9.902116]     fan=auto
[   10.432474] logitech-djreceiver 0003:046D:C52B.0003: hiddev96,hidraw0: USB HID v1.11 Device [Logitech USB Receiver] on usb-fc880000.usb-1.4/input2
[   10.553080] input: Logitech Wireless Device PID:408c Keyboard as /devices/platform/fc880000.usb/usb2/2-1/2-1.4/2-1.4:1.2/0003:046D:C52B.0003/0003:046D:408C.0004/input/input11
[   10.562966] input: Logitech Wireless Device PID:408c Consumer Control as /devices/platform/fc880000.usb/usb2/2-1/2-1.4/2-1.4:1.2/0003:046D:C52B.0003/0003:046D:408C.0004/input/input12
[   10.572103] input: Logitech Wireless Device PID:408c System Control as /devices/platform/fc880000.usb/usb2/2-1/2-1.4/2-1.4:1.2/0003:046D:C52B.0003/0003:046D:408C.0004/input/input13
[   10.581593] hid-generic 0003:046D:408C.0004: input,hidraw1: USB HID v1.11 Keyboard [Logitech Wireless Device PID:408c] on usb-fc880000.usb-1.4/input2:1
[   10.753170] input: Logitech K580 as /devices/platform/fc880000.usb/usb2/2-1/2-1.4/2-1.4:1.2/0003:046D:C52B.0003/0003:046D:408C.0004/input/input17
[   10.775611] logitech-hidpp-device 0003:046D:408C.0004: input,hidraw1: USB HID v1.11 Keyboard [Logitech K580] on usb-fc880000.usb-1.4/input2:1
[   10.966113] raid6: neonx8   gen()  2951 MB/s
[   11.029358] raid6: neonx8   xor()  1328 MB/s
[   11.089276] raid6: neonx4   gen()  1683 MB/s
[   11.149247] raid6: neonx4   xor()  1348 MB/s
[   11.209247] raid6: neonx2   gen()  1629 MB/s
[   11.269248] raid6: neonx2   xor()  1287 MB/s
[   11.329393] raid6: neonx1   gen()  1390 MB/s
[   11.389218] raid6: neonx1   xor()  1099 MB/s
[   11.449257] raid6: int64x8  gen()   447 MB/s
[   11.509233] raid6: int64x8  xor()   289 MB/s
[   11.569270] raid6: int64x4  gen()   573 MB/s
[   11.629221] raid6: int64x4  xor()   319 MB/s
[   11.689211] raid6: int64x2  gen()   656 MB/s
[   11.749225] raid6: int64x2  xor()   436 MB/s
[   11.809225] raid6: int64x1  gen()   657 MB/s
[   11.869230] raid6: int64x1  xor()   357 MB/s
[   11.874692] raid6: using algorithm neonx8 gen() 2951 MB/s
[   11.880264] raid6: .... xor() 1328 MB/s, rmw enabled
[   11.885785] raid6: using neon recovery algorithm
[   11.894807] xor: measuring software checksum speed
[   11.905080]    8regs           :  2067 MB/sec
[   11.914083]    32regs          :  2752 MB/sec
[   11.923145]    arm64_neon      :  2673 MB/sec
[   11.928528] xor: using function: 32regs (2752 MB/sec)
[   11.985099] Btrfs loaded, crc32c=crc32c-generic, assert=on, ref-verify=on
[   12.280578] EXT4-fs (mmcblk0p7): recovery complete
[   12.285991] EXT4-fs (mmcblk0p7): mounted filesystem with writeback data mode. Opts: data=writeback
[   12.546932] NET: Registered protocol family 10
[   12.554612] Segment Routing with IPv6
[   12.581970] systemd[1]: systemd 249.11-0ubuntu3.6 running in system mode (+PAM +AUDIT +SELINUX +APPARMOR +IMA +SMACK +SECCOMP +GCRYPT +GNUTLS +OPENSSL +ACL +BLKID +CURL +ELFUTILS +FIDO2 +IDN2 -IDN +IPTC +KMOD +LIBCRYPTSETUP +LIBFDISK +PCRE2 -PWQUALITY -P11KIT -QRENCODE +BZIP2 +LZ4 +XZ +ZLIB +ZSTD -XKBCOMMON +UTMP +SYSVINIT default-hierarchy=unified)
[   12.598851] systemd[1]: Detected architecture arm64.
[   12.621338] systemd[1]: Hostname set to <Khadas>.
[   13.023535] systemd[1]: Queued start job for default target Graphical Interface.
[   13.031077] systemd[1]: Created slice Slice /system/modprobe.
[   13.038651] systemd[1]: Created slice Slice /system/serial-getty.
[   13.044343] systemd[1]: Created slice User and Session Slice.
[   13.049271] systemd[1]: Started Forward Password Requests to Wall Directory Watch.
[   13.053908] systemd[1]: Condition check resulted in Arbitrary Executable File Formats File System Automount Point being skipped.
[   13.057025] systemd[1]: Reached target Remote File Systems.
[   13.061696] systemd[1]: Reached target Slice Units.
[   13.066345] systemd[1]: Reached target Swaps.
[   13.070557] systemd[1]: Reached target System Time Set.
[   13.074580] systemd[1]: Reached target Local Verity Protected Volumes.
[   13.078531] systemd[1]: Listening on Syslog Socket.
[   13.082109] systemd[1]: Listening on fsck to fsckd communication Socket.
[   13.085632] systemd[1]: Listening on initctl Compatibility Named Pipe.
[   13.089239] systemd[1]: Listening on Journal Audit Socket.
[   13.092596] systemd[1]: Listening on Journal Socket (/dev/log).
[   13.095970] systemd[1]: Listening on Journal Socket.
[   13.100313] systemd[1]: Listening on udev Control Socket.
[   13.103508] systemd[1]: Listening on udev Kernel Socket.
[   13.106578] systemd[1]: Reached target Socket Units.
[   13.109577] systemd[1]: Condition check resulted in Huge Pages File System being skipped.
[   13.112626] systemd[1]: Mounting POSIX Message Queue File System...
[   13.116617] systemd[1]: Mounting Kernel Debug File System...
[   13.120514] systemd[1]: Mounting Kernel Trace File System...
[   13.125182] systemd[1]: Starting Journal Service...
[   13.129606] systemd[1]: Starting Restore / save the current clock...
[   13.134073] systemd[1]: Starting Set the console keyboard layout...
[   13.138495] systemd[1]: Starting Create List of Static Device Nodes...
[   13.143308] systemd[1]: Starting Load Kernel Module chromeos_pstore...
[   13.149217] systemd[1]: Starting Load Kernel Module configfs...
[   13.157957] systemd[1]: Starting Load Kernel Module drm...
[   13.162740] systemd[1]: Starting Load Kernel Module efi_pstore...
[   13.167073] systemd[1]: Starting Load Kernel Module fuse...
[   13.171563] systemd[1]: Starting Load Kernel Module pstore_blk...
[   13.175804] fuse: init (API version 7.32)
[   13.176079] systemd[1]: Starting Load Kernel Module pstore_zone...
[   13.181573] systemd[1]: Starting Load Kernel Module ramoops...
[   13.185641] systemd[1]: Started Nameserver information manager.
[   13.188701] systemd[1]: Reached target Preparation for Network.
[   13.191640] systemd[1]: Condition check resulted in File System Check on Root Device being skipped.
[   13.195209] systemd[1]: Starting Load Kernel Modules...
[   13.198996] systemd[1]: Starting Remount Root and Kernel File Systems...
[   13.202762] systemd[1]: Starting Coldplug All udev Devices...
[   13.207417] systemd[1]: Mounted POSIX Message Queue File System.
[   13.210341] systemd[1]: Mounted Kernel Debug File System.
[   13.213174] systemd[1]: Mounted Kernel Trace File System.
[   13.213902] EXT4-fs (mmcblk0p7): re-mounted. Opts: commit=600,errors=remount-ro
[   13.221914] systemd[1]: Finished Restore / save the current clock.
[   13.225338] systemd[1]: Finished Create List of Static Device Nodes.
[   13.228601] systemd[1]: modprobe@chromeos_pstore.service: Deactivated successfully.
[   13.230689] systemd[1]: Finished Load Kernel Module chromeos_pstore.
[   13.231160] [dhd] _dhd_module_init: in Dongle Host Driver, version 101.10.361.11 (wlan=r892223-20210630-1)
               drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd compiled on Feb  1 2023 at 13:52:03

[   13.246852] [dhd] ======== dhd_wlan_init_plat_data ========
[   13.246856] [WLAN_RFKILL]: rockchip_wifi_get_oob_irq: Enter
[   13.253274] [dhd] dhd_wlan_init_gpio: WL_HOST_WAKE=-1, oob_irq=137, oob_irq_flags=0x411
[   13.253278] [dhd] dhd_wlan_init_gpio: WL_REG_ON=-1
[   13.253281] [dhd] dhd_wifi_platform_load: Enter
[   13.253582] [dhd] dhdpcie_pci_probe : no mutex held. set lock
[   13.260005] [dhd] PCI_PROBE:  bus 41, slot 0,vendor 14E4, device 449D(good PCI location)
[   13.260009] [dhd] dhdpcie_init: found adapter info 'DHD generic adapter'
[   13.260066] pcieh 0004:41:00.0: enabling device (0000 -> 0002)
[   13.260396] [dhd] Disable CTO
[   13.261069] [dhd] ******** Perform FLR ********
[   13.269922] systemd[1]: Started Journal Service.
[   13.305269] systemd-journald[330]: Received client request to flush runtime journal.
[   13.335924] [dhd] read_config: reg=0x88 read val=0xb080
[   13.337925] [dhd] read_config: reg=0x88 read val=0x8080
[   13.340225] [dhd] ******** FLR Succedeed ********
[   13.342173] [dhd] DHD: dongle ram size is set to 1310720(orig 1310720) at 0x170000
[   13.344280] [dhd] dhdpcie_bar1_window_switch_enab: bar1_switch_enab=0 ramstart=0x170000 ramend=0x2affff bar1_size=0x0
[   13.346698] [dhd] dhd_conf_set_chiprev : devid=0x449d, chip=0xaae8, chiprev=2, svid=0x14e4, ssid=0xaae8
[   13.350254] [dhd] dhd_pktid_map_init:2458: pktid_audit init succeeded 1025
[   13.350273] [dhd] dhd_pktid_map_init:2458: pktid_audit init succeeded 4097
[   13.350375] [dhd] dhd_pktid_map_init:2458: pktid_audit init succeeded 36865
[   13.351237] [dhd] dhd_attach(): thread:dhd_watchdog_thread:177 started
[   13.357983] [dhd] dhd_deferred_work_init: work queue initialized
[   13.359698] [dhd] dhd_tcpack_suppress_set: TCP ACK Suppress mode 0 -> mode 3
[   13.359706] [dhd] dhd_cpumasks_init CPU masks primary(big)=0x0 secondary(little)=0xfe
[   13.360125] [dhd] dhd_get_memdump_info: MEMDUMP ENABLED = 3
[   13.360131] [dhd] dhdpcie_bus_attach: making DHD_BUS_DOWN
[   13.360135] [dhd] dhdpcie_init: rc_dev from dev->bus->self (1d87:3588) is 000000001e1eb037
[   13.360423] [dhd] dhdpcie_init: rc_ep_aspm_cap: 1 rc_ep_l1ss_cap: 1
[   13.360431] [dhd] dhdpcie_request_irq: INTx enabled
[   13.360454] [dhd] dhdpcie_bar1_window_switch_enab: bar1_switch_enab=0 ramstart=0x170000 ramend=0x2affff bar1_size=0x400000
[   13.360473] [dhd] Dongle Host Driver, version 101.10.361.11 (wlan=r892223-20210630-1)
               drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd compiled on Feb  1 2023 at 13:52:03

[   13.360690] [dhd] Register interface [wlan0]  MAC: 00:90:4c:21:0b:27

[   13.381850] [dhd] dhd_tcpack_suppress_set: TCP ACK Suppress mode 3 -> mode 0
[   13.383559] [dhd][wlan0] wl_android_wifi_off : in g_wifi_on=1, on_failure=1
[   13.383561] [dhd] dhd_rtt_deinit: ENTER
[   13.383562] [dhd] dhd_rtt_deinit: EXIT, err = 0
[   13.383565] [dhd] dhd_bus_devreset: == Power OFF ==
[   13.383576] [dhd] dhdpcie_oob_intr_unregister: irq is not registered
[   13.383578] [dhd] dhd_dpc_kill: tasklet disabled
[   13.386736] [dhd] dhd_bus_devreset:  WLAN OFF Done
[   13.393744] [dhd] wifi_platform_set_power = 0, delay: 0 msec
[   13.393746] [dhd] ======== PULL WL_REG_ON(-1) LOW! ========
[   13.393748] [WLAN_RFKILL]: rockchip_wifi_power: 0
[   13.393750] [WLAN_RFKILL]: rockchip_wifi_power: toggle = false
[   13.393752] [WLAN_RFKILL]: wifi shut off power [GPIO-1-1]
[   13.393754] [dhd][wlan0] wl_android_wifi_off : out
[   13.393757] [dhd] dhdpcie_pci_probe : the lock is released.
[   13.394086] [dhd] _dhd_module_init: Exit err=0
[   13.472556] zram: Added device: zram0
[   13.472755] zram: Added device: zram1
[   13.472915] zram: Added device: zram2
[   13.473090] zram: Added device: zram3
[   13.473246] zram: Added device: zram4
[   13.473426] zram: Added device: zram5
[   13.488443] zram1: detected capacity change from 0 to 268435456
[   13.519565] Adding 262140k swap on /dev/zram1.  Priority:5 extents:1 across:262140k SS
[   13.523170] zram2: detected capacity change from 0 to 268435456
[   13.562921] Adding 262140k swap on /dev/zram2.  Priority:5 extents:1 across:262140k SS
[   13.563786] zram3: detected capacity change from 0 to 268435456
[   13.602705] Adding 262140k swap on /dev/zram3.  Priority:5 extents:1 across:262140k SS
[   13.605096] zram4: detected capacity change from 0 to 268435456
[   13.642741] Adding 262140k swap on /dev/zram4.  Priority:5 extents:1 across:262140k SS
[   13.783300] imx415 3-0057: driver version: 00.01.07
[   13.790964] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[   13.795071] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[   13.795370] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[   13.795564] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[   13.795990] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[   13.803309] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[   13.810077] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[   13.810328] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[   13.810557] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[   13.810755] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[   13.824412] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[   13.826733] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[   13.826911] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[   13.827141] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[   13.828338] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[   13.834213] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[   13.836754] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[   13.839746] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[   13.841833] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[   13.844472] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[   13.846158] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[   13.849041] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[   13.850994] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[   13.854081] imx415 3-0057: Detected imx415 id 000000
[   13.854091] imx415 3-0057: imx415_probe: SD name(m01_f_imx415 3-0057)
[   13.854978] imx415 4-0057: driver version: 00.01.07
[   13.856092] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[   13.861113] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[   13.863492] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[   13.865120] es8316 3-0010: ASoC: error at soc_component_read_no_lock on es8316.3-0010: -6
[   13.867853] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[   13.868849] rockchip-csi2-dphy0: No link between dphy and sensor
[   13.869697] es8316 3-0010: ASoC: Differential Mux DAPM update failed: -6
[   13.870124] rkcif-mipi-lvds: rkcif_update_sensor_info: stream[0] get remote terminal sensor failed!
[   13.871127] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[   13.871594] rockchip-csi2-dphy0: No link between dphy and sensor
[   13.871601] rkcif-mipi-lvds: rkcif_update_sensor_info: stream[1] get remote terminal sensor failed!
[   13.871602] stream_cif_mipi_id1: update sensor info failed -19
[   13.873183] stream_cif_mipi_id0: update sensor info failed -19
[   13.873552] rockchip-csi2-dphy0: No link between dphy and sensor
[   13.873563] rkcif-mipi-lvds: rkcif_update_sensor_info: stream[0] get remote terminal sensor failed!
[   13.873565] rkcif_scale_ch0: update sensor info failed -19
[   13.876060] rockchip-csi2-dphy0: No link between dphy and sensor
[   13.876767] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[   13.878112] rkcif-mipi-lvds: rkcif_update_sensor_info: stream[3] get remote terminal sensor failed!
[   13.878890] rockchip-csi2-dphy0: No link between dphy and sensor
[   13.878897] rkcif-mipi-lvds: rkcif_update_sensor_info: stream[2] get remote terminal sensor failed!
[   13.878899] stream_cif_mipi_id2: update sensor info failed -19
[   13.879603] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[   13.880053] rockchip-csi2-dphy0: No link between dphy and sensor
[   13.880059] rkcif-mipi-lvds: rkcif_update_sensor_info: stream[1] get remote terminal sensor failed!
[   13.880061] rkcif_scale_ch1: update sensor info failed -19
[   13.880888] rockchip-csi2-dphy0: No link between dphy and sensor
[   13.884134] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[   13.884193] stream_cif_mipi_id3: update sensor info failed -19
[   13.887799] rkcif-mipi-lvds: rkcif_update_sensor_info: stream[2] get remote terminal sensor failed!
[   13.888805] rockchip-csi2-dphy1: No link between dphy and sensor
[   13.888821] rkcif-mipi-lvds1: rkcif_update_sensor_info: stream[1] get remote terminal sensor failed!
[   13.888823] rkcif_scale_ch1: update sensor info failed -19
[   13.889694] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[   13.890180] rkcif_scale_ch2: update sensor info failed -19
[   13.890390] rockchip-csi2-dphy0: No link between dphy and sensor
[   13.890405] rkcif-mipi-lvds2: rkcif_update_sensor_info: stream[1] get remote terminal sensor failed!
[   13.890407] stream_cif_mipi_id1: update sensor info failed -19
[   13.890685] rockchip-csi2-dphy0: No link between dphy and sensor
[   13.890706] rkcif-mipi-lvds2: rkcif_update_sensor_info: stream[2] get remote terminal sensor failed!
[   13.890709] stream_cif_mipi_id2: update sensor info failed -19
[   13.892215] rockchip-csi2-dphy1: No link between dphy and sensor
[   13.892230] rkcif-mipi-lvds1: rkcif_update_sensor_info: stream[1] get remote terminal sensor failed!
[   13.892231] stream_cif_mipi_id1: update sensor info failed -19
[   13.894423] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[   13.894897] rockchip-csi2-dphy0: No link between dphy and sensor
[   13.894913] rkcif-mipi-lvds2: rkcif_update_sensor_info: stream[3] get remote terminal sensor failed!
[   13.894915] stream_cif_mipi_id3: update sensor info failed -19
[   13.895730] rockchip-csi2-dphy1: No link between dphy and sensor
[   13.896048] rockchip-csi2-dphy1: No link between dphy and sensor
[   13.896063] rkcif-mipi-lvds1: rkcif_update_sensor_info: stream[3] get remote terminal sensor failed!
[   13.896064] stream_cif_mipi_id3: update sensor info failed -19
[   13.896071] rockchip-csi2-dphy1: No link between dphy and sensor
[   13.896077] rkcif-mipi-lvds1: rkcif_update_sensor_info: stream[2] get remote terminal sensor failed!
[   13.896079] rkcif_scale_ch2: update sensor info failed -19
[   13.896650] rockchip-csi2-dphy0: No link between dphy and sensor
[   13.896662] rkcif-mipi-lvds: rkcif_update_sensor_info: stream[3] get remote terminal sensor failed!
[   13.896663] rkcif_scale_ch3: update sensor info failed -19
[   13.897983] rockchip-csi2-dphy1: No link between dphy and sensor
[   13.897994] rkcif-mipi-lvds1: rkcif_update_sensor_info: stream[0] get remote terminal sensor failed!
[   13.897995] rkcif_scale_ch0: update sensor info failed -19
[   13.898673] rockchip-csi2-dphy1: No link between dphy and sensor
[   13.898975] rockchip-csi2-dphy0: No link between dphy and sensor
[   13.898990] rkcif-mipi-lvds2: rkcif_update_sensor_info: stream[3] get remote terminal sensor failed!
[   13.898991] rkcif_scale_ch3: update sensor info failed -19
[   13.900952] rockchip-csi2-dphy0: No link between dphy and sensor
[   13.901066] rockchip-csi2-dphy0: No link between dphy and sensor
[   13.901080] rkcif-mipi-lvds2: rkcif_update_sensor_info: stream[0] get remote terminal sensor failed!
[   13.901081] rkcif_scale_ch0: update sensor info failed -19
[   13.901389] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[   13.901495] rkcif-mipi-lvds1: rkcif_update_sensor_info: stream[3] get remote terminal sensor failed!
[   13.901545] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[   13.901701] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[   13.902608] es8316 3-0010: ASoC: error at soc_component_read_no_lock on es8316.3-0010: -6
[   13.902780] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[   13.902782] es8316 3-0010: ASoC: Digital Mic Mux DAPM update failed: -6
[   13.902973] es8316 3-0010: ASoC: error at soc_component_read_no_lock on es8316.3-0010: -6
[   13.903097] rkcif-mipi-lvds2: rkcif_update_sensor_info: stream[0] get remote terminal sensor failed!
[   13.905322] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[   13.907379] rockchip-csi2-dphy1: No link between dphy and sensor
[   13.908615] rockchip-csi2-dphy0: No link between dphy and sensor
[   13.908630] rkcif-mipi-lvds2: rkcif_update_sensor_info: stream[1] get remote terminal sensor failed!
[   13.908631] rkcif_scale_ch1: update sensor info failed -19
[   13.909320] rockchip-csi2-dphy0: No link between dphy and sensor
[   13.909332] rkcif-mipi-lvds2: rkcif_update_sensor_info: stream[2] get remote terminal sensor failed!
[   13.909334] rkcif_scale_ch2: update sensor info failed -19
[   13.910123] es8316 3-0010: ASoC: DAC Source Mux DAPM update failed: -6
[   13.911460] rkcif-mipi-lvds1: rkcif_update_sensor_info: stream[0] get remote terminal sensor failed!
[   13.912925] rkcif_scale_ch3: update sensor info failed -19
[   13.913050] rkcif-mipi-lvds1: rkcif_update_sensor_info: stream[2] get remote terminal sensor failed!
[   13.913052] stream_cif_mipi_id2: update sensor info failed -19
[   13.916721] es8316 3-0010: ASoC: error at soc_component_read_no_lock on es8316.3-0010: -6
[   13.917450] stream_cif_mipi_id0: update sensor info failed -19
[   13.921420] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[   13.926627] imx415 4-0057: Unexpected sensor id(000001), ret(-5)
[   13.926843] imx415 8-0057: driver version: 00.01.07
[   13.932015] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[   13.937329] stream_cif_mipi_id0: update sensor info failed -19
[   13.941460] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[   14.010060] imx415 8-0057: Unexpected sensor id(000001), ret(-5)
[   14.015149] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[   14.059125] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[   14.059275] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[   14.059421] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[   14.059564] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[   14.059706] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[   14.059852] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[   14.059854] es8316 3-0010: ASoC: Left Headphone Mux DAPM update failed: -6
[   14.060074] es8316 3-0010: ASoC: error at soc_component_read_no_lock on es8316.3-0010: -6
[   14.060223] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[   14.060225] es8316 3-0010: ASoC: Right Headphone Mux DAPM update failed: -6
[   14.060377] es8316 3-0010: ASoC: error at soc_component_read_no_lock on es8316.3-0010: -6
[   14.060528] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[   14.084385] es8316 3-0010: ASoC: Left Headphone Mixer DAPM update failed: -6
[   14.084577] es8316 3-0010: ASoC: error at soc_component_read_no_lock on es8316.3-0010: -6
[   14.084749] es8316 3-0010: ASoC: error at soc_component_read_no_lock on es8316.3-0010: -6
[   14.084895] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[   14.084898] es8316 3-0010: ASoC: Right Headphone Mixer DAPM update failed: -6
[   14.085049] es8316 3-0010: ASoC: error at soc_component_read_no_lock on es8316.3-0010: -6
[   14.150270] [dhd] dhd_query_bus_erros: Dongle Reset occurred, cannot proceed
[   14.150275] [dhd] [Repeats 0 times]
[   14.150282] [dhd] CFG80211-ERROR) wl_cfg80211_dump_station : WLC_GET_ASSOCLIST error -19
[   14.310573] [dhd][wlan0] dhd_open : Enter
[   14.312094] [dhd] Dongle Host Driver, version 101.10.361.11 (wlan=r892223-20210630-1)
               drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd compiled on Feb  1 2023 at 13:52:03

[   14.312096] [dhd] dhd_open : no mutex held. set lock
[   14.312100] [dhd] dhd_open: ######### called for ifidx=0 #########
[   14.312105] [dhd][wlan0] wl_android_wifi_on : in g_wifi_on=0
[   14.313807] [dhd] wifi_platform_set_power = 1, delay: 200 msec
[   14.313809] [dhd] ======== PULL WL_REG_ON(-1) HIGH! ========
[   14.313813] [WLAN_RFKILL]: rockchip_wifi_power: 1
[   14.313816] [WLAN_RFKILL]: rockchip_wifi_power: toggle = false
[   14.313818] [WLAN_RFKILL]: wifi turn on power [GPIO-1-0]
[   14.619202] [dhd] dhd_bus_devreset: == Power ON ==
[   14.619205] [dhd] dhd_bus_devreset: dhdpcie_bus_start_host_dev OK
[   14.619595] [dhd] Disable CTO
[   14.620369] [dhd] DHD: dongle ram size is set to 1310720(orig 1310720) at 0x170000
[   14.620371] [dhd] dhdpcie_bar1_window_switch_enab: bar1_switch_enab=0 ramstart=0x170000 ramend=0x2affff bar1_size=0x400000
[   14.620407] [dhd] dhdpcie_request_irq: INTx enabled
[   14.620423] [dhd] dhd_bus_download_firmware: firmware path=/lib/firmware/brcm/fw_bcmdhd.bin, nvram path=/lib/firmware/brcm/nvram.txt
[   14.620426] [dhd] dhdpcie_dump_resource: BAR0(VA): 0x0000000000000000, BAR0(PA): 0x00000000f4200000, SIZE: 32768
[   14.620428] [dhd] dhdpcie_dump_resource: BAR1(VA): 0x0000000000000000, BAR1(PA): 0x00000000f4400000, SIZE: 4194304
[   14.621412] [dhd] dhd_os_open_image1: /lib/firmware/brcm/config_bcm43752a2_pcie_ag.txt (30 bytes) open success
[   14.621612] [dhd] dhd_conf_read_others : wl_preinit = pm2_sleep_ret=2000
[   14.623044] [dhd] dhd_conf_set_path_params : Final fw_path=/lib/firmware/brcm/fw_bcm43752a2_pcie_ag.bin
[   14.624672] [dhd] dhd_conf_set_path_params : Final nv_path=/lib/firmware/brcm/nvram_AP6275P.txt
[   14.626258] [dhd] dhd_conf_set_path_params : Final clm_path=/lib/firmware/brcm/clm_bcm43752a2_pcie_ag.blob
[   14.627914] [dhd] dhd_conf_set_path_params : Final conf_path=/lib/firmware/brcm/config_bcm43752a2_pcie_ag.txt
[   14.629707] [dhd] dhdpcie_download_code_file: dhd_tcm_test_enable 0
[   14.629709] [dhd] dhdpcie_download_code_file: download firmware /lib/firmware/brcm/fw_bcm43752a2_pcie_ag.bin
[   14.629726] [dhd] dhd_os_open_image1: /lib/firmware/brcm/fw_bcm43752a2_pcie_ag.bin (857142 bytes) open success
[   14.652100] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[   14.656374] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[   14.661551] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[   14.666232] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[   14.670826] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[   14.675291] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[   14.679768] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[   14.684223] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[   14.688592] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[   14.692981] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[   14.696806] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[   14.700473] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[   14.704126] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[   14.707801] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[   14.711378] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[   14.714917] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[   14.715897] [dhd] dhd_os_open_image1: /lib/firmware/brcm/nvram_AP6275P.txt (7335 bytes) open success
[   14.718455] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[   14.718474] [dhd] dhdpcie_download_nvram: dhd_get_download_buffer len 7335
[   14.721679] [dhd] NVRAM version:  AP6275P_NVRAM_V1.1_20200702 
[   14.721707] [dhd] dhdpcie_download_nvram: process_nvram_vars len 5860
[   14.721892] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[   14.725287] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[   14.728656] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[   14.731990] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[   14.735279] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[   14.738536] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[   14.739468] [dhd] dhdpcie_bus_write_vars: Download, Upload and compare of NVRAM succeeded.
[   14.741756] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[   14.741775] [dhd] dhd_bus_aer_config: Configure AER registers for EP
[   14.743254] [dhd] dhd_bus_aer_config: Configure AER registers for RC
[   14.743444] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[   14.745045] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[   14.746697] es8316 3-0010: ASoC: error at soc_component_read_no_lock on es8316.3-0010: -6
[   14.748266] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[   14.749723] es8316 3-0010: ASoC: Differential Mux DAPM update failed: -6
[   14.751219] es8316 3-0010: ASoC: error at soc_component_read_no_lock on es8316.3-0010: -6
[   14.752858] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[   14.754315] es8316 3-0010: ASoC: Digital Mic Mux DAPM update failed: -6
[   14.755809] es8316 3-0010: ASoC: error at soc_component_read_no_lock on es8316.3-0010: -6
[   14.757454] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[   14.758921] es8316 3-0010: ASoC: DAC Source Mux DAPM update failed: -6
[   14.760430] es8316 3-0010: ASoC: error at soc_component_read_no_lock on es8316.3-0010: -6
[   14.762076] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[   14.763569] es8316 3-0010: ASoC: Left Headphone Mux DAPM update failed: -6
[   14.765116] es8316 3-0010: ASoC: error at soc_component_read_no_lock on es8316.3-0010: -6
[   14.766788] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[   14.768288] es8316 3-0010: ASoC: Right Headphone Mux DAPM update failed: -6
[   14.769875] es8316 3-0010: ASoC: error at soc_component_read_no_lock on es8316.3-0010: -6
[   14.771559] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[   14.773076] es8316 3-0010: ASoC: Left Headphone Mixer DAPM update failed: -6
[   14.774669] es8316 3-0010: ASoC: error at soc_component_read_no_lock on es8316.3-0010: -6
[   14.776361] es8316 3-0010: ASoC: error at soc_component_read_no_lock on es8316.3-0010: -6
[   14.778037] es8316 3-0010: ASoC: error at snd_soc_component_update_bits on es8316.3-0010: -6
[   14.779554] es8316 3-0010: ASoC: Right Headphone Mixer DAPM update failed: -6
[   14.781145] es8316 3-0010: ASoC: error at soc_component_read_no_lock on es8316.3-0010: -6
[   14.822683] [dhd] ### Total time ARM OOR to Readshared pass took 80976 usec ###
[   14.822686] [dhd] dhdpcie_readshared: PCIe shared addr (0x001f8974) read took 80000 usec before dongle is ready
[   14.823082] [dhd] H2D DMA WR INDX : array size 172 = 4 * 43
[   14.823086] [dhd] D2H DMA RD INDX : array size 16 = 4 * 4
[   14.823090] [dhd] D2H DMA WR INDX : array size 16 = 4 * 4
[   14.823093] [dhd] H2D DMA RD INDX : array size 172 = 4 * 43
[   14.823096] [dhd] dhdpcie_readshared: max H2D queues 40
[   14.823097] [dhd] FW supports debug buf dest ? N 
[   14.823238] [dhd] dhd_bus_init: Enabling bus->intr_enabled
[   14.823240] [dhd] dhdpcie_oob_intr_register OOB irq=137 flags=0x1
[   14.823260] [dhd] dhdpcie_oob_intr_register: enable_irq_wake
[   14.823262] [dhd] dhd_bus_start: Initializing 43 h2drings
[   14.823280] [dhd] dhd_prot_init:3925: h2d_max_txpost = 512
[   14.823403] [dhd] dhd_prot_init:3940: MAX_RXBUFPOST = 511
[   14.823404] [dhd] ENABLING DW:0
[   14.823406] [dhd] IDMA inited
[   14.823407] [dhd] IFRM not enabled in FW !!
[   14.823409] [dhd] DAR not enabled in FW !!
[   14.823410] [dhd] Enable hostcap: EXTD TXS in txcpl
[   14.823433] [dhd] dhd_prot_d2h_sync_init(): D2H sync mechanism is NONE 
[   14.823444] [dhd] dhd_bus_hostready : Read PCICMD Reg: 0x00100006
[   14.823457] [dhd] dhd_bus_dump_dar_registers: dar_clk_ctrl(0xa08:0x10b0040) dar_pwr_ctrl(0xa0c:0x30000) dar_intstat(0xa10:0x0)
[   14.823459] [dhd] dhd_bus_dump_dar_registers: dar_errlog(0xa60:0x0) dar_erraddr(0xa64:0x0) dar_pcie_mbint(0xa68:0x0)
[   14.823464] [dhd] dhd_bus_hostready: Ring Hostready:1
[   14.823465] [dhd] Attach flowrings pool for 40 rings
[   14.827848] [dhd] iDMA enabled PCIEControl = 00000001
[   14.829398] [dhd] dhd_send_d2h_ringcreate ringid: 3 idx: 46 max_h2d: 43
[   14.830052] [dhd] dhd_prot_process_d2h_ring_create_complete ring create Response status = 0 ring 3, id 0xfffc
[   14.830058] [dhd] info buffer post after ring create
[   14.832002] [dhd] wlc_ver_major 12, wlc_ver_minor 1
[   14.832004] [dhd] dhd_get_memdump_info: MEMDUMP ENABLED = 3
[   14.833543] [dhd] dhd_sync_with_dongle: GET_REVINFO device 0x449d, vendor 0x14e4, chipnum 0xaae8
[   14.834929] [dhd] dhd_sync_with_dongle: RxBuf Post : 2048
[   14.838717] [dhd] dhd_preinit_ioctls: preinit_status IOVAR not supported, use legacy preinit
[   14.838724] [dhd] dhd_tcpack_suppress_set: TCP ACK Suppress mode 0 -> mode 3
[   14.840643] [dhd] dhd_legacy_preinit_ioctls: hostwake_oob enabled
[   14.841885] [dhd] dhd_legacy_preinit_ioctls: use firmware generated mac_address 70:f7:54:e2:90:71
[   14.841948] [dhd] dhd_os_open_image1: /lib/firmware/brcm/clm_bcm43752a2_pcie_ag.blob (29225 bytes) open success
[   14.843447] [dhd] dhd_check_current_clm_data: ----- This FW is not included CLM data -----
[   14.881442] [dhd] dhd_check_current_clm_data: ----- This FW is included CLM data -----
[   14.887556] [dhd] Firmware up: op_mode=0x0005, MAC=70:f7:54:e2:90:71
[   14.904624] [dhd] dhd_legacy_preinit_ioctls: event_log_max_sets: 26 ret: 0
[   14.915276] [dhd] arp_enable:1 arp_ol:0
[   14.928037] [dhd]   Driver: 101.10.361.11 (wlan=r892223-20210630-1)
                 Firmware: wl0: Aug  3 2021 17:38:16 version 18.35.387.23.57 (gdc961cae) FWID 01-ea656a70
                 CLM: 9.9.8_SS (2021-05-10 15:05:58) 
[   14.929549] [dhd] dhd_pno_init: Support Android Location Service
[   14.929554] [dhd] dhd_rtt_init ENTRY
[   14.931104] [dhd] rtt_do_get_ioctl: failed to send getbuf proxd iovar (CMD ID : 1), status=-23
[   14.931110] [dhd] dhd_rtt_init : FTM is not supported
[   14.931114] [dhd] dhd_rtt_init EXIT, err = 0
[   14.954862] [dhd] [INIT] logset:8 is preserve/chatty
[   14.957996] [dhd] [INIT] logset:10 is preserve/chatty
[   14.985224] [dhd] dhd_ecounter_autoconfig Ecounter autoconfig in FW not supported
[   15.016491] [dhd] dhd_rx_frame: net device is NOT registered. drop event packet
[   15.016718] [dhd] dhd_conf_set_country : set country CN, revision 0
[   15.024537] [dhd] dhd_conf_set_country : Country code: CN (CN/0)
[   15.041379] [dhd] dhd_bus_devreset: WLAN Power On Done
[   15.041384] [dhd][wlan0] wl_android_wifi_on : Success
[   15.075639] [dhd] dhd_rx_frame: net device is NOT registered. drop event packet
[   15.117437] [dhd] dhd_open : the lock is released.
[   15.117442] [dhd][wlan0] dhd_open : Exit ret=0
[   15.120312] [dhd][wlan0] dhd_pri_open : tx queue started
[   15.149291] ttyFIQ ttyFIQ0: tty_port_close_start: tty->count = 1 port count = 2
[   15.232683] [dhd] P2P interface registered
[   15.232694] [dhd] wl_cfgp2p_add_p2p_disc_if: wdev: 000000002355ad69, wdev->net: 0000000000000000
[   15.595261] of_dma_request_slave_channel: dma-names property of node '/serial@febc0000' missing or empty
[   15.596272] dw-apb-uart febc0000.serial: failed to request DMA, use interrupt mode
[   17.914599] [dhd][wlan0] wl_conn_debug_info : Connecting with 70:a7:41:a9:69:e7 ssid "LuxolisAI", len (9), channel=36, sec=wpa2psk/mfpn/aes, rssi=-46
[   18.000167] [dhd][wlan0] wl_iw_event : Link UP with 70:a7:41:a9:69:e7
[   18.000894] [dhd][wlan0] wl_ext_iapsta_event : [S] Link UP with 70:a7:41:a9:69:e7
[   18.004053] [dhd][wlan0] wl_bss_connect_done : Report connect result - connection succeeded
[   18.614293] NOHZ tick-stop error: Non-RCU local softirq work is pending, handler #08!!!
[   18.616404] [dhd] dhd_prot_flow_ring_create: Send Flow Create Req flow ID 41 for peer 70:a7:41:a9:69:e7 prio 3 ifindex 0 items 512
[   18.616845] [dhd] dhd_prot_flow_ring_create_response_process: Flow Create Response status = 0 Flow 41
[   18.621730] NOHZ tick-stop error: Non-RCU local softirq work is pending, handler #08!!!
[   18.622407] [dhd][wlan0] wl_add_keyext : key index (0)
[   18.639133] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
[   18.682084] NOHZ tick-stop error: Non-RCU local softirq work is pending, handler #08!!!
[   18.682089] NOHZ tick-stop error: Non-RCU local softirq work is pending, handler #08!!!
[   18.694212] [dhd] dhd_prot_flow_ring_create: Send Flow Create Req flow ID 40 for peer ff:ff:ff:ff:ff:ff prio 0 ifindex 0 items 512
[   18.694603] [dhd] dhd_prot_flow_ring_create_response_process: Flow Create Response status = 0 Flow 40
[   18.752739] NOHZ tick-stop error: Non-RCU local softirq work is pending, handler #08!!!
[   18.774594] NOHZ tick-stop error: Non-RCU local softirq work is pending, handler #08!!!
[   18.786434] NOHZ tick-stop error: Non-RCU local softirq work is pending, handler #08!!!
[   19.097881] NOHZ tick-stop error: Non-RCU local softirq work is pending, handler #08!!!
[   19.113043] NOHZ tick-stop error: Non-RCU local softirq work is pending, handler #08!!!
[   19.114354] NOHZ tick-stop error: Non-RCU local softirq work is pending, handler #08!!!
[   24.126410] Bluetooth: Core ver 2.22
[   24.126472] NET: Registered protocol family 31
[   24.126476] Bluetooth: HCI device and connection manager initialized
[   24.126489] Bluetooth: HCI socket layer initialized
[   24.126497] Bluetooth: L2CAP socket layer initialized
[   24.126510] Bluetooth: SCO socket layer initialized
[   24.128192] Bluetooth: HCI UART driver ver 2.3
[   24.128198] Bluetooth: HCI UART protocol H4 registered
[   24.204899] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[   24.204908] Bluetooth: BNEP filters: protocol multicast
[   24.204921] Bluetooth: BNEP socket layer initialized
[   24.369128] NET: Registered protocol family 38
[   41.381378] vbus5v0_typec: disabling
[   41.381383] vcc3v3_lcd1_en: disabling
[   41.381386] vcc3v3_lcd2_en: disabling

Hello @KarimLuxolis

I have no idea about this issue, but I can provide the kernel log on my side with IMX415 works on CAM2 slot, maybe you can check the difference.

https://dl.khadas.com/.test/kernel-imx415.txt