The ov9281 uses a program written with the imx219 architecture, But it can’t stream the video use libargus。
imx219 can play well using libargus.
command:
gst-launch-1.0 nvarguscamerasrc sensor_id=0 ! ‘video/x-raw(memory:NVMM),width=1280, height=800, framerate=21/1, format=NV12’ ! nvvidconv flip-method=0 ! ‘video/x-raw,width=960, height=616’ ! nvvidconv ! nvegltransform ! nveglglessink -e
environment:
1. VERSION
root@nvidia-desktop:/work/0519# cat /etc/nv_tegra_release
R32 (release), REVISION: 6.1, GCID: 27863751, BOARD: t186ref, EABI: aarch64, DATE: Mon Jul 26 19:36:31 UTC 2021
2.Pixel Format:“RG10”
root@nvidia-desktop:/work/0519# v4l2-ctl --device=/dev/video0 --list-formats-ext
ioctl: VIDIOC_ENUM_FMT
Index : 0
Type : Video Capture
Pixel Format: ‘RG10’
Name : 10-bit Bayer RGRG/GBGB
Size: Discrete 1280x800
Interval: Discrete 0.017s (60.000 fps)
Size: Discrete 1280x720
Interval: Discrete 0.017s (60.000 fps)
Size: Discrete 640x400
Interval: Discrete 0.017s (60.000 fps)
3.devicetree
cam_i2cmux {
i2c_0:i2c@0 {
ov9281_cam0: rbpcv2_ov9281_a@60 {
compatible = “nvidia,ov9281”;
/* I2C device address */
reg = <0x60>;
/*hzhy add */
clocks = <&bpmp_clks TEGRA194_CLK_EXTPERIPH1>;
clock-names = "extperiph1";
mclk = "extperiph1";
/* V4L2 device node location */
devnode = "video0";
/* Physical dimensions of sensor */
physical_w = "3.680";
physical_h = "2.760";
sensor_model = "ov9281";
use_sensor_mode_id = "true";
/*hzhy*/
fsync = "none";/*none/slave/master/slave-trigger*/
mode0 { /* IMX219_MODE_1280x720_60FPS */
mclk_khz = "26000";
num_lanes = "2";
tegra_sinterface = "serial_a";
phy_mode = "DPHY";
discontinuous_clk = "no";
dpcm_enable = "false";
cil_settletime = "0";
active_w = "1280";
active_h = "800";
pixel_t = "bayer_rggb10";
readout_orientation = "90";
line_length = "1408";
inherent_gain = "1";
mclk_multiplier = "7.69";
pix_clk_hz = "200000000";
gain_factor = "1";
framerate_factor = "1";
exposure_factor = "1";
min_gain_val = "1"; /* 1.00x */
max_gain_val = "8191"; /* 10.66x */
step_gain_val = "1";
default_gain = "16"; /* 1.00x */
min_framerate = "1"; /* 2.0 fps */
max_framerate = "65535"; /* 60.0 fps */
step_framerate = "1";
default_framerate = "64625"; /* 60.0 fps */
min_exp_time = "1"; /* us */
max_exp_time = "16777215"; /* us */
step_exp_time = "1";
default_exp_time = "10896"; /* us */
embedded_metadata_height = "0";
};
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
rbpcv2_ov9281_out0: endpoint {
port-index = <0>;
bus-width = <2>;
remote-endpoint = <&rbpcv2_ov9281_csi_in0>;
};
};
};
};
};
};
tcp: tegra-camera-platform {
compatible = “nvidia, tegra-camera-platform”;
num_csi_lanes = <2>;
max_lane_speed = <1500000>;
min_bits_per_pixel = <8>;
vi_peak_byte_per_pixel = <2>;
vi_bw_margin_pct = <25>;
max_pixel_rate = <240000>;
isp_peak_byte_per_pixel = <5>;
isp_bw_margin_pct = <25>;
…
}
4.ov9281.c
/* NVIDIA camera_common stuff */
static int ov9281_power_on(struct camera_common_data *s_data)
{
int err = 0;
struct camera_common_power_rail *pw = s_data->power;
struct camera_common_pdata *pdata = s_data->pdata;
struct device *dev = s_data->dev;
dev_dbg(dev, "%s: power on\n", __func__);
if (pdata && pdata->power_on) {
err = pdata->power_on(pw);
if (err)
dev_err(dev, "%s failed.\n", __func__);
else
pw->state = SWITCH_ON;
return err;
}
if (pw->reset_gpio) {
if (gpio_cansleep(pw->reset_gpio))
{
gpio_set_value_cansleep(pw->reset_gpio, 0);
}
else
{
gpio_set_value(pw->reset_gpio, 0);
}
}
if (unlikely(!(pw->avdd || pw->iovdd || pw->dvdd)))
goto skip_power_seqn;
usleep_range(10, 20);
if (pw->avdd) {
err = regulator_enable(pw->avdd);
if (err)
goto imx219_avdd_fail;
}
if (pw->iovdd) {
err = regulator_enable(pw->iovdd);
if (err)
goto imx219_iovdd_fail;
}
if (pw->dvdd) {
err = regulator_enable(pw->dvdd);
if (err)
goto imx219_dvdd_fail;
}
usleep_range(10, 20);
skip_power_seqn:
if (pw->reset_gpio) {
if (gpio_cansleep(pw->reset_gpio))
gpio_set_value_cansleep(pw->reset_gpio, 1);
else
{
gpio_set_value(pw->reset_gpio, 1);
}
}
/* Need to wait for t4 + t5 + t9 time as per the data sheet */
/* t4 - 200us, t5 - 21.2ms, t9 - 1.2ms */
usleep_range(5350, 5360);//ov9281
pw->state = SWITCH_ON;
printk("hzhy SWITCH_ON pw->state = %d %s %s %d\n", pw->state, __FILE__, __FUNCTION__,__LINE__);
return 0;
imx219_dvdd_fail:
regulator_disable(pw->iovdd);
imx219_iovdd_fail:
regulator_disable(pw->avdd);
imx219_avdd_fail:
dev_err(dev, “%s failed.\n”, func);
return -ENODEV;
}
static int ov9281_power_off(struct camera_common_data *s_data)
{
int err = 0;
struct camera_common_power_rail *pw = s_data->power;
struct camera_common_pdata *pdata = s_data->pdata;
struct device *dev = s_data->dev;
dev_dbg(dev, "%s: power off\n", __func__);
if (pdata && pdata->power_off) {
err = pdata->power_off(pw);
if (err) {
dev_err(dev, "%s failed.\n", __func__);
return err;
}
} else {
if (pw->reset_gpio) {
if (gpio_cansleep(pw->reset_gpio))
{
gpio_set_value_cansleep(pw->reset_gpio, 0);
}
else
{
gpio_set_value(pw->reset_gpio, 0);
}
}
usleep_range(10, 10);
if (pw->dvdd)
regulator_disable(pw->dvdd);
if (pw->iovdd)
regulator_disable(pw->iovdd);
if (pw->avdd)
regulator_disable(pw->avdd);
}
pw->state = SWITCH_OFF;
printk("hzhy SWITCH_OFF pw->state = %d %s %s %d\n", pw->state, __FILE__, __FUNCTION__,__LINE__);
return 0;
}
static int ov9281_start_streaming(struct tegracam_device *tc_dev)
{
int err;
struct ov9281 *priv = (struct ov9281 *)tegracam_get_privdata(tc_dev);
struct camera_common_data *s_data = tc_dev->s_data;
struct device *dev = s_data->dev;
dev_dbg(dev, "%s: write mode table %d\n", __func__, s_data->mode);
err = ov9281_write_table(priv, ov9281_mode_table[s_data->mode]);
if (err)
goto exit;
if (ov9281_fsync_table[priv->fsync]) {
dev_dbg(dev, "%s: write fsync table %d\n", __func__,
priv->fsync);
err = ov9281_write_table(priv, ov9281_fsync_table[priv->fsync]);
if (err)
goto exit;
}
err = ov9281_write_table(priv, ov9281_mode_table[OV9281_MODE_START_STREAM]);
exit:
dev_err(dev, “%s: error setting stream\n”, func);
return err;
}
static int ov9281_stop_streaming(struct tegracam_device *tc_dev)
{
int err;
struct ov9281 *priv = (struct ov9281 *)tegracam_get_privdata(tc_dev);
err = ov9281_write_table(priv, ov9281_mode_table[OV9281_MODE_STOP_STREAM]);
if(err)
{
printk("hzhy stream failed %s %s %d\n", __FILE__, __FUNCTION__,__LINE__);
}
usleep_range(50000, 51000);
return err;
}
static struct tegracam_ctrl_ops ov9281_ctrl_ops = {
.numctrls = ARRAY_SIZE(ctrl_cid_list),
.ctrl_cid_list = ctrl_cid_list,
.set_gain = ov9281_set_gain,
.set_exposure = ov9281_set_exposure,
.set_frame_rate = ov9281_set_frame_rate,
.set_group_hold = ov9281_set_group_hold,
};
static struct camera_common_sensor_ops ov9281_common_ops = {
.numfrmfmts = ARRAY_SIZE(ov9281_frmfmt),
.frmfmt_table = ov9281_frmfmt,
.power_on = ov9281_power_on,
.power_off = ov9281_power_off,
.write_reg = ov9281_write_reg,
.read_reg = ov9281_read_reg,
.parse_dt = ov9281_parse_dt,
.power_get = ov9281_power_get,
.power_put = ov9281_power_put,
.set_mode = ov9281_set_mode,
.start_streaming = ov9281_start_streaming,
.stop_streaming = ov9281_stop_streaming,
};
static int ov9281_probe(struct i2c_client *client,
const struct i2c_device_id *id)
{
struct device *dev = &client->dev;
struct tegracam_device *tc_dev;
struct ov9281 *priv;
int err;
printk("hzhy version20220704 13:45 v02 %s %s %d\n", __FILE__, __FUNCTION__,__LINE__);
dev_dbg(dev, "probing v4l2 sensor at addr 0x%0x\n", client->addr);
if (!IS_ENABLED(CONFIG_OF) || !client->dev.of_node)
return -EINVAL;
priv = devm_kzalloc(dev,
sizeof(struct ov9281), GFP_KERNEL);
if (!priv)
return -ENOMEM;
gPriv = priv;
tc_dev = devm_kzalloc(dev,
sizeof(struct tegracam_device), GFP_KERNEL);
if (!tc_dev)
return -ENOMEM;
priv->i2c_client = tc_dev->client = client;
tc_dev->dev = dev;
strncpy(tc_dev->name, "ov9281", sizeof(tc_dev->name));
tc_dev->dev_regmap_config = &ov9281_regmap_config;
tc_dev->sensor_ops = &ov9281_common_ops;
tc_dev->v4l2sd_internal_ops = &ov9281_subdev_internal_ops;
tc_dev->tcctrl_ops = &ov9281_ctrl_ops;
err = tegracam_device_register(tc_dev);
if (err) {
dev_err(dev, "tegra camera driver registration failed\n");
return err;
}
priv->tc_dev = tc_dev;
priv->s_data = tc_dev->s_data;
priv->subdev = &tc_dev->s_data->subdev;
tegracam_set_privdata(tc_dev, (void *)priv);
priv->group_hold_prev = 0;
err = ov9281_board_setup(priv);
if (err) {
tegracam_device_unregister(tc_dev);
dev_err(dev, "board setup failed\n");
return err;
}
err = tegracam_v4l2subdev_register(tc_dev, true);
if (err) {
dev_err(dev, "tegra camera subdev registration failed\n");
return err;
}
camera_common_s_power(priv->subdev, false);
dev_dbg(dev, "detected imx219 sensor\n");
return 0;
}
5.v4l2-ctl
root@nvidia-desktop:~# v4l2-ctl --list-formats-ext
ioctl: VIDIOC_ENUM_FMT
Index : 0
Type : Video Capture
Pixel Format: ‘RG10’
Name : 10-bit Bayer RGRG/GBGB
Size: Discrete 1280x800
Interval: Discrete 0.017s (60.000 fps)
Size: Discrete 1280x720
Interval: Discrete 0.017s (60.000 fps)
Size: Discrete 640x400
Interval: Discrete 0.017s (60.000 fps)
root@nvidia-desktop:~# v4l2-ctl --stream-mmap -c bypass_mode=0
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 69.00 fps
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 68.50 fps
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 68.43 fps
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 68.50 fps
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 68.40 fps
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 68.50 fps
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 68.42 fps
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 68.41 fps
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 68.44 fps
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 68.40 fps
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 68.45 fps
6.libargus
gst-launch-1.0 nvarguscamerasrc sensor_id=0 ! ‘video/x-raw(memory:NVMM),width=1280, height=800, framerate=21/1, format=NV12’ ! nvvidconv flip-method=0 ! ‘video/x-raw,width=960, height=616’ ! nvvidconv ! nvegltransform ! nveglglessink -e
cannot play,err is:
Setting pipeline to PAUSED …
Using winsys: x11
Pipeline is live and does not need PREROLL …
Got context from element ‘eglglessink0’: gst.egl.EGLDisplay=context, display=(GstEGLDisplay)NULL;
Setting pipeline to PLAYING …
New clock: GstSystemClock
Error generated. src/gstnvarguscamerasrc.cpp, execute:526 No cameras available
Got EOS from element “pipeline0”.
Execution ended after 0:00:00.113669898
Setting pipeline to PAUSED …
Setting pipeline to READY …
Setting pipeline to NULL …
Freeing pipeline …
cat /sys/kernel/debug/tracing/trace
root@nx-desktop:/work# [ 603.965468] tegra194-isp5 14800000.isp: isp_capture_init++
[ 603.966789] tegra194-isp5 14800000.isp: chan flags 1
[ 603.966903] tegra194-isp5 14800000.isp: queue depth 4
[ 603.966993] tegra194-isp5 14800000.isp: request size 1088
[ 603.968908] tegra194-isp5 14800000.isp: isp_capture_setup: descr buffer handle 0x403
[ 603.969204] tegra194-isp5 14800000.isp: isp_capture_setup: descr buffer handle 1028
[ 603.971779] t194-nvcsi 15a00000.nvcsi: settle time reading from props
[ 603.973642] t194-nvcsi 15a00000.nvcsi: settle time reading from props
[ 603.973780] t194-nvcsi 15a00000.nvcsi: csi5_mipi_cal
[ 603.973862] t194-nvcsi 15a00000.nvcsi: csi_port:0
[ 603.978729] tegra194-isp5 14800000.isp: 6 GoS tables configured.
[ 603.978864] tegra194-isp5 14800000.isp: gos[0] = 0xc2100000
[ 603.978965] tegra194-isp5 14800000.isp: gos[1] = 0xc2101000
[ 603.979095] tegra194-isp5 14800000.isp: gos[2] = 0xc2102000
[ 603.979216] tegra194-isp5 14800000.isp: gos[3] = 0xc2103000
[ 603.979321] tegra194-isp5 14800000.isp: gos[4] = 0xc2104000
[ 603.979426] tegra194-isp5 14800000.isp: gos[5] = 0xc2105000
[ 603.979520] tegra194-isp5 14800000.isp: isp_capture_ivc_send_control: sending chan_id 69 msg_id 32
[ 603.983215] tegra194-isp5 14800000.isp: isp_capture_ivc_send_control: response chan_id 69 msg_id 33
[ 603.988045] [RCE] Configuring ISP GoS.
[ 603.988049] [RCE] VM GOS[#0] addr=0xc2100000
[ 603.988052] [RCE] VM GOS[#1] addr=0xc2101000
[ 603.988055] [RCE] VM GOS[#2] addr=0xc2102000
[ 603.988080] [RCE] VM GOS[#3] addr=0xc2103000
[ 603.988082] [RCE] VM GOS[#4] addr=0xc2104000
[ 603.988085] [RCE] VM GOS[#5] addr=0xc2105000
[ 604.044698] hzhy dump start+++ /WinLinShare/ZhaoBinBin/project_samba/14.nvidia/1.yao_NX9282/1.UAV311/JetPack_4.6_Linux_JETSON_XAVIER_NX_TARGETS-AI300serial/Linux_for_Tegra/sources/kernel/nvidia/drivers/media/i2c/imx219_argus.c ov9281_power_on 397
[ 604.045091] CPU: 2 PID: 22982 Comm: nvargus-daemon Not tainted 4.9.253-tegra #39
[ 604.050704] Hardware name: NVIDIA Jetson Xavier NX Developer Kit (DT)
[ 604.057008] Call trace:
[ 604.059556] [] dump_backtrace+0x0/0x198
[ 604.064887] [] show_stack+0x24/0x30
[ 604.070396] [] dump_stack+0xa0/0xc4
[ 604.075387] [] ov9281_power_on+0x74/0x380
[ 604.081421] [] camera_common_s_power+0x150/0x1d8
[ 604.087717] [] tegra_channel_set_power+0x84/0x198
[ 604.094023] [] vi5_power_on+0x80/0xa0
[ 604.099013] [] tegra_channel_open+0x80/0x180
[ 604.105307] [] v4l2_open+0x80/0x118
[ 604.110212] [] chrdev_open+0x94/0x198
[ 604.115721] [] do_dentry_open+0x1d8/0x340
[ 604.121320] [] vfs_open+0x58/0x88
[ 604.126221] [] do_last+0x530/0xfa0
[ 604.130773] [] path_openat+0x90/0x378
[ 604.136194] [] do_filp_open+0x70/0xe8
[ 604.141269] [] do_sys_open+0x174/0x258
[ 604.146610] [] SyS_openat+0x3c/0x50
[ 604.151423] [] el0_svc_naked+0x34/0x38
[ 604.157271] hzhy dump end+++ /WinLinShare/ZhaoBinBin/project_samba/14.nvidia/1.yao_NX9282/1.UAV311/JetPack_4.6_Linux_JETSON_XAVIER_NX_TARGETS-AI300serial/Linux_for_Tegra/sources/kernel/nvidia/drivers/media/i2c/imx219_argus.c ov9281_power_on 399
[ 604.178600] hzhy /WinLinShare/ZhaoBinBin/project_samba/14.nvidia/1.yao_NX9282/1.UAV311/JetPack_4.6_Linux_JETSON_XAVIER_NX_TARGETS-AI300serial/Linux_for_Tegra/sources/kernel/nvidia/drivers/media/i2c/imx219_argus.c ov9281_power_on 462
[ 604.198840] hzhy /WinLinShare/ZhaoBinBin/project_samba/14.nvidia/1.yao_NX9282/1.UAV311/JetPack_4.6_Linux_JETSON_XAVIER_NX_TARGETS-AI300serial/Linux_for_Tegra/sources/kernel/nvidia/drivers/media/i2c/imx219_argus.c ov9281_power_on 468
[ 604.224803] hzhy SWITCH_ON pw->state = 1 /WinLinShare/ZhaoBinBin/project_samba/14.nvidia/1.yao_NX9282/1.UAV311/JetPack_4.6_Linux_JETSON_XAVIER_NX_TARGETS-AI300serial/Linux_for_Tegra/sources/kernel/nvidia/drivers/media/i2c/imx219_argus.c ov9281_power_on 481
[ 604.242120] t194-nvcsi 15a00000.nvcsi: csi5_power_on
[ 604.246970] hzhy dump start+++ /WinLinShare/ZhaoBinBin/project_samba/14.nvidia/1.yao_NX9282/1.UAV311/JetPack_4.6_Linux_JETSON_XAVIER_NX_TARGETS-AI300serial/Linux_for_Tegra/sources/kernel/nvidia/drivers/media/i2c/imx219_argus.c ov9281_power_off 517
[ 604.269265] CPU: 2 PID: 22982 Comm: nvargus-daemon Not tainted 4.9.253-tegra #39
[ 604.276720] Hardware name: NVIDIA Jetson Xavier NX Developer Kit (DT)
[ 604.283282] Call trace:
[ 604.285918] [] dump_backtrace+0x0/0x198
[ 604.291168] [] show_stack+0x24/0x30
[ 604.296421] [] dump_stack+0xa0/0xc4
[ 604.301929] [] ov9281_power_off+0x64/0x1c8
[ 604.307703] [] camera_common_s_power+0x5c/0x1d8
[ 604.313741] [] tegra_channel_set_power+0x84/0x198
[ 604.320303] [] vi5_power_off+0x60/0x78
[ 604.325557] [] tegra_channel_close+0x7c/0x140
[ 604.331593] [] v4l2_release+0x48/0xa0
[ 604.336845] [] __fput+0x90/0x1d0
[ 604.341829] [] ____fput+0x20/0x30
[ 604.346901] [] task_work_run+0xbc/0xd8
[ 604.352326] [] do_notify_resume+0xa4/0xb0
[ 604.357668] [] work_pending+0x8/0x10
[ 604.362890] hzhy dump end+++ /WinLinShare/ZhaoBinBin/project_samba/14.nvidia/1.yao_NX9282/1.UAV311/JetPack_4.6_Linux_JETSON_XAVIER_NX_TARGETS-AI300serial/Linux_for_Tegra/sources/kernel/nvidia/drivers/media/i2c/imx219_argus.c ov9281_power_off 519
[ 604.384341] hzhy SWITCH_OFF pw->state = 0 /WinLinShare/ZhaoBinBin/project_samba/14.nvidia/1.yao_NX9282/1.UAV311/JetPack_4.6_Linux_JETSON_XAVIER_NX_TARGETS-AI300serial/Linux_for_Tegra/sources/kernel/nvidia/drivers/media/i2c/imx219_argus.c ov9281_power_off 561
[ 604.407586] t194-nvcsi 15a00000.nvcsi: csi5_power_off
[ 604.416969] hzhy dump start+++ /WinLinShare/ZhaoBinBin/project_samba/14.nvidia/1.yao_NX9282/1.UAV311/JetPack_4.6_Linux_JETSON_XAVIER_NX_TARGETS-AI300serial/Linux_for_Tegra/sources/kernel/nvidia/drivers/media/i2c/imx219_argus.c ov9281_power_on 397
[ 604.433744] CPU: 0 PID: 22982 Comm: nvargus-daemon Not tainted 4.9.253-tegra #39
[ 604.441566] Hardware name: NVIDIA Jetson Xavier NX Developer Kit (DT)
[ 604.448128] Call trace:
[ 604.450501] [] dump_backtrace+0x0/0x198
[ 604.456096] [] show_stack+0x24/0x30
[ 604.461346] [] dump_stack+0xa0/0xc4
[ 604.466337] [] ov9281_power_on+0x74/0x380
[ 604.472116] [] camera_common_s_power+0x150/0x1d8
[ 604.478582] [] tegra_channel_set_power+0x84/0x198
[ 604.484448] [] vi5_power_on+0x80/0xa0
[ 604.489701] [] tegra_channel_open+0x80/0x180
[ 604.495995] [] v4l2_open+0x80/0x118
[ 604.500902] [] chrdev_open+0x94/0x198
[ 604.506408] [] do_dentry_open+0x1d8/0x340
[ 604.511748] [] vfs_open+0x58/0x88
[ 604.516652] [] do_last+0x530/0xfa0
[ 604.521720] [] path_openat+0x90/0x378
[ 604.526882] [] do_filp_open+0x70/0xe8
[ 604.531698] [] do_sys_open+0x174/0x258
[ 604.537295] [] SyS_openat+0x3c/0x50
[ 604.542112] [] el0_svc_naked+0x34/0x38
[ 604.548100] hzhy dump end+++ /WinLinShare/ZhaoBinBin/project_samba/14.nvidia/1.yao_NX9282/1.UAV311/JetPack_4.6_Linux_JETSON_XAVIER_NX_TARGETS-AI300serial/Linux_for_Tegra/sources/kernel/nvidia/drivers/media/i2c/imx219_argus.c ov9281_power_on 399
[ 604.569322] hzhy /WinLinShare/ZhaoBinBin/project_samba/14.nvidia/1.yao_NX9282/1.UAV311/JetPack_4.6_Linux_JETSON_XAVIER_NX_TARGETS-AI300serial/Linux_for_Tegra/sources/kernel/nvidia/drivers/media/i2c/imx219_argus.c ov9281_power_on 462
[ 604.589501] hzhy /WinLinShare/ZhaoBinBin/project_samba/14.nvidia/1.yao_NX9282/1.UAV311/JetPack_4.6_Linux_JETSON_XAVIER_NX_TARGETS-AI300serial/Linux_for_Tegra/sources/kernel/nvidia/drivers/media/i2c/imx219_argus.c ov9281_power_on 468
[ 604.615295] hzhy SWITCH_ON pw->state = 1 /WinLinShare/ZhaoBinBin/project_samba/14.nvidia/1.yao_NX9282/1.UAV311/JetPack_4.6_Linux_JETSON_XAVIER_NX_TARGETS-AI300serial/Linux_for_Tegra/sources/kernel/nvidia/drivers/media/i2c/imx219_argus.c ov9281_power_on 481
[ 604.632821] t194-nvcsi 15a00000.nvcsi: csi5_power_on
[ 604.637694] hzhy dump start+++ /WinLinShare/ZhaoBinBin/project_samba/14.nvidia/1.yao_NX9282/1.UAV311/JetPack_4.6_Linux_JETSON_XAVIER_NX_TARGETS-AI300serial/Linux_for_Tegra/sources/kernel/nvidia/drivers/media/i2c/imx219_argus.c ov9281_power_off 517
[ 604.659683] CPU: 0 PID: 22982 Comm: nvargus-daemon Not tainted 4.9.253-tegra #39
[ 604.667146] Hardware name: NVIDIA Jetson Xavier NX Developer Kit (DT)
[ 604.673967] Call trace:
[ 604.676342] [] dump_backtrace+0x0/0x198
[ 604.681850] [] show_stack+0x24/0x30
[ 604.687362] [] dump_stack+0xa0/0xc4
[ 604.692615] [] ov9281_power_off+0x64/0x1c8
[ 604.698384] [] camera_common_s_power+0x5c/0x1d8
[ 604.704424] [] tegra_channel_set_power+0x84/0x198
[ 604.710725] [] vi5_power_off+0x60/0x78
[ 604.716237] [] tegra_channel_close+0x7c/0x140
[ 604.722274] [] v4l2_release+0x48/0xa0
[ 604.727526] [] __fput+0x90/0x1d0
[ 604.732769] [] ____fput+0x20/0x30
[ 604.737325] [] task_work_run+0xbc/0xd8
[ 604.742749] [] do_notify_resume+0xa4/0xb0
[ 604.748608] [] work_pending+0x8/0x10
[ 604.753951] hzhy dump end+++ /WinLinShare/ZhaoBinBin/project_samba/14.nvidia/1.yao_NX9282/1.UAV311/JetPack_4.6_Linux_JETSON_XAVIER_NX_TARGETS-AI300serial/Linux_for_Tegra/sources/kernel/nvidia/drivers/media/i2c/imx219_argus.c ov9281_power_off 519
[ 604.775011] hzhy SWITCH_OFF pw->state = 0 /WinLinShare/ZhaoBinBin/project_samba/14.nvidia/1.yao_NX9282/1.UAV311/JetPack_4.6_Linux_JETSON_XAVIER_NX_TARGETS-AI300serial/Linux_for_Tegra/sources/kernel/nvidia/drivers/media/i2c/imx219_argus.c ov9281_power_off 561
[ 604.798442] t194-nvcsi 15a00000.nvcsi: csi5_power_off
[ 605.008998] tegra194-isp5 14800000.isp: isp_capture_ivc_send_control: sending chan_id 0 msg_id 34
[ 605.010046] tegra194-isp5 14800000.isp: isp_capture_ivc_send_control: response chan_id 0 msg_id 35
[ 605.010278] tegra194-isp5 14800000.isp: isp_capture_ivc_send_control: sending chan_id 0 msg_id 36
[ 605.010544] tegra194-isp5 14800000.isp: isp_capture_ivc_send_control: response chan_id 0 msg_id 37
[ 605.011122] tegra194-isp5 14800000.isp: isp_capture_shutdown–