Hi again @joanxie,
I might also have a small doubt on the behavior of gstreamer command we are using :
gst-launch-1.0 -v v4l2src device=/dev/videoX ! "video/x-raw,format=YUY2,width=1440,height=1080, framerate=15/1" ! queue ! imxvideoconvert_g2d ! waylandsink
From attached files, the difference of debug messages when calling next gst-launch on second camera (/dev/video3 mapped to imx296 2-0036) following the previous gst-launch on first camera (/dev/video2 mapped to imx296 1-001a) is below :
[ 114.381215] imx296 1-001a: enter imx296_query_capability
[ 114.381402] imx296 2-0036: enter imx296_query_capability
[ 114.394979] enter isp_mi_stop
[ 114.458285] imx296 2-0036: enter imx296_query_capability
[ 114.458328] imx296 1-001a: enter imx296_query_capability
[ 114.467034] imx296 2-0036: enter imx296_query_capability
[ 114.485855] imx296 2-0036: enter imx296_query_supports
[ 114.486714] imx296 2-0036: enter imx296_query_capability
[ 114.486860] imx296 1-001a: enter imx296_query_capability
[ 114.571087] imx296 2-0036: enter imx296_query_supports
[ 114.571110] imx296 2-0036: enter imx296_get_clk
[ 114.571120] imx296 2-0036: enter imx296_set_sensor_mode
[ 114.571127] imx296 2-0036: enter imx296_get_sensor_mode
[ 114.571134] imx296 2-0036: enter imx296_query_supports
[ 114.571258] enter isp_mi_stop
[ 114.576791] imx296 2-0036: enter imx296_set_fmt
[ 114.576801] imx296 2-0036: I2C writing value 80 at address 0x3a00
[ 114.577437] imx296 2-0036: I2C writing value f0 at address 0x3005
[ 114.578038] imx296 2-0036: I2C writing value 7f at address 0x350b
[ 114.578679] imx296 2-0036: I2C writing value 00 at address 0x300d
[ 114.579281] imx296 2-0036: I2C writing value 58 at address 0x400e
[ 114.579881] imx296 2-0036: I2C writing value 4c at address 0x3014
[ 114.580473] imx296 2-0036: I2C writing value 04 at address 0x3015
[ 114.581058] imx296 2-0036: I2C writing value 1c at address 0x4014
[ 114.581642] imx296 2-0036: I2C writing value 77 at address 0x3516
[ 114.582224] imx296 2-0036: I2C writing value 00 at address 0x321a
[ 114.582808] imx296 2-0036: I2C writing value 02 at address 0x3226
[ 114.583397] imx296 2-0036: I2C writing value f5 at address 0x3832
[ 114.583986] imx296 2-0036: I2C writing value 00 at address 0x3833
[ 114.584611] imx296 2-0036: I2C writing value 72 at address 0x3541
[ 114.585267] imx296 2-0036: I2C writing value 2a at address 0x4041
[ 114.586252] imx296 2-0036: I2C writing value a3 at address 0x3d48
[ 114.587537] imx296 2-0036: I2C writing value 00 at address 0x3d49
[ 114.588195] imx296 2-0036: I2C writing value 85 at address 0x3d4a
[ 114.588865] imx296 2-0036: I2C writing value 00 at address 0x3d4b
[ 114.589507] imx296 2-0036: I2C writing value 01 at address 0x3256
[ 114.590155] imx296 2-0036: I2C writing value a3 at address 0x3758
[ 114.590837] imx296 2-0036: I2C writing value 00 at address 0x3759
[ 114.591503] imx296 2-0036: I2C writing value 85 at address 0x375a
[ 114.592152] imx296 2-0036: I2C writing value 00 at address 0x375b
[ 114.592795] imx296 2-0036: I2C writing value 00 at address 0x3165
[ 114.593437] imx296 2-0036: I2C writing value 10 at address 0x3169
[ 114.594045] imx296 2-0036: I2C writing value 02 at address 0x316a
[ 114.594669] imx296 2-0036: I2C writing value 00 at address 0x4174
[ 114.595288] imx296 2-0036: I2C writing value 08 at address 0x3079
[ 114.595913] imx296 2-0036: I2C writing value 04 at address 0x3090
[ 114.596544] imx296 2-0036: I2C writing value 04 at address 0x3094
[ 114.597142] imx296 2-0036: I2C writing value 04 at address 0x3098
[ 114.597729] imx296 2-0036: I2C writing value 04 at address 0x309e
[ 114.598327] imx296 2-0036: I2C writing value 04 at address 0x30a0
[ 114.598929] imx296 2-0036: I2C writing value 3c at address 0x30a1
[ 114.599453] imx296 2-0036: I2C writing value f6 at address 0x38a2
[ 114.600046] imx296 2-0036: I2C writing value 00 at address 0x38a3
[ 114.600632] imx296 2-0036: I2C writing value 06 at address 0x40a2
[ 114.601222] imx296 2-0036: I2C writing value 5f at address 0x30a4
[ 114.601807] imx296 2-0036: I2C writing value 91 at address 0x30a8
[ 114.602389] imx296 2-0036: I2C writing value 28 at address 0x30ac
[ 114.604075] imx296 2-0036: I2C writing value 09 at address 0x30af
[ 114.604671] imx296 2-0036: I2C writing value f6 at address 0x40c1
[ 114.605280] imx296 2-0036: I2C writing value 0f at address 0x40c7
[ 114.605904] imx296 2-0036: I2C writing value f3 at address 0x31c8
[ 114.606742] imx296 2-0036: I2C writing value f4 at address 0x31d0
[ 114.607388] imx296 2-0036: I2C writing value 00 at address 0x40c8
[ 114.608037] imx296 2-0036: I2C writing value 00 at address 0x30df
[ 114.608677] imx296 2-0036: I2C writing value 03 at address 0x3300
[ 114.609402] imx296 2-0036: I2C writing value 08 at address 0x3310
[ 114.610020] imx296 2-0036: I2C writing value 00 at address 0x3311
[ 114.610619] imx296 2-0036: I2C writing value 00 at address 0x3312
[ 114.611273] imx296 2-0036: I2C writing value 00 at address 0x3313
[ 114.611939] imx296 2-0036: I2C writing value a0 at address 0x3314
[ 114.612556] imx296 2-0036: I2C writing value 05 at address 0x3315
[ 114.613160] imx296 2-0036: I2C writing value 40 at address 0x3316
[ 114.613761] imx296 2-0036: I2C writing value 04 at address 0x3317
[ 114.614362] imx296 2-0036: I2C writing value 00 at address 0x3204
[ 114.614992] imx296 2-0036: I2C writing value 00 at address 0x3205
[ 114.615602] imx296 2-0036: I2C writing value 08 at address 0x3212
[ 114.616202] imx296 2-0036: I2C writing value 3c at address 0x3254
[ 114.616801] imx296 2-0036: I2C writing value 00 at address 0x3255
[ 114.617597] imx296 2-0036: I2C writing value 80 at address 0x3089
[ 114.618200] imx296 2-0036: I2C writing value 0b at address 0x308a
[ 114.618800] imx296 2-0036: I2C writing value 80 at address 0x308b
[ 114.620092] imx296 2-0036: I2C writing value 08 at address 0x308c
[ 114.620698] imx296 2-0036: I2C writing value 74 at address 0x418c
[ 114.621302] imx296 2-0036: enter imx296_set_test_pattern
[ 114.621306] imx296 2-0036: imx296_set_test_pattern:9
[ 114.621329] imx296 2-0036: enter imx296_set_fps( fps/1024=15 )
[ 114.621333] imx296 2-0036: I2C writing value 01 at address 0x3008
[ 114.621924] imx296 2-0036: I2C writing value 77 at address 0x308d
[ 114.622509] imx296 2-0036: I2C writing value 0f at address 0x308e
[ 114.623249] imx296 2-0036: I2C writing value 00 at address 0x308f
[ 114.623857] imx296 2-0036: I2C writing value 00 at address 0x3008
[ 114.642551] imx296 2-0036: I2C writing value 01 at address 0x3008
[ 114.643161] imx296 2-0036: I2C writing value 94 at address 0x3010
[ 114.643762] imx296 2-0036: I2C writing value 11 at address 0x3011
[ 114.644360] imx296 2-0036: I2C writing value 00 at address 0x3012
[ 114.644959] imx296 2-0036: I2C writing value 00 at address 0x3008
[ 114.645566] imx296 2-0036: enter imx296_get_sensor_mode
[ 114.645870] imx296 2-0036: enter imx296_set_exp( exp=4490 )
[ 114.645877] imx296 2-0036: I2C writing value 01 at address 0x3008
[ 114.646481] imx296 2-0036: I2C writing value 8a at address 0x308d
[ 114.647103] imx296 2-0036: I2C writing value 11 at address 0x308e
[ 114.647715] imx296 2-0036: I2C writing value 00 at address 0x308f
[ 114.648316] imx296 2-0036: I2C writing value 00 at address 0x3008
[ 114.648931] imx296 2-0036: gain = 228
[ 114.648937] imx296 2-0036: I2C writing value 01 at address 0x3008
[ 114.649620] imx296 2-0036: I2C writing value e4 at address 0x3204
[ 114.650291] imx296 2-0036: I2C writing value 00 at address 0x3205
[ 114.650907] imx296 2-0036: I2C writing value 00 at address 0x3008
[ 114.652411] enter isp_s_comp
[ 114.655357] enter isp_s_comp
[ 114.658240] enter isp_s_comp
[ 114.674969] enter wdr3_hw_init
[ 114.678068] wdr3 res: 1440 1080
[ 114.682009] enter isp_mi_start
[ 114.686187] imx296 2-0036: enter imx296_s_stream
[ 114.715375] imx296 2-0036: TPG_REG 0x3238 : 0x17
[ 114.720027] imx296 2-0036: I2C writing value 17 at address 0x3238
[ 114.720626] imx296 2-0036: TPG_REG 0x3239 : 0x00
[ 114.725273] imx296 2-0036: I2C writing value 00 at address 0x3239
[ 114.725878] imx296 2-0036: TPG_REG 0x323a : 0x00
[ 114.730538] imx296 2-0036: I2C writing value 00 at address 0x323a
[ 114.731138] imx296 2-0036: TPG_REG 0x323c : 0x00
[ 114.735773] imx296 2-0036: I2C writing value 00 at address 0x323c
[ 114.736367] imx296 2-0036: TPG_REG 0x323d : 0x00
[ 114.741017] imx296 2-0036: I2C writing value 00 at address 0x323d
[ 114.741614] imx296 2-0036: TPG_REG 0x323e : 0x00
[ 114.746632] imx296 2-0036: I2C writing value 00 at address 0x323e
[ 114.747248] imx296 2-0036: TPG_REG 0x323f : 0x00
[ 114.751906] imx296 2-0036: I2C writing value 00 at address 0x323f
[ 114.752513] imx296 2-0036: TPG_REG 0x3240 : 0x01
[ 114.757210] imx296 2-0036: I2C writing value 01 at address 0x3240
[ 114.757825] imx296 2-0036: TPG_REG 0x3241 : 0x01
[ 114.762489] imx296 2-0036: I2C writing value 01 at address 0x3241
[ 114.763101] imx296 2-0036: TPG_REG 0x3244 : 0x00
[ 114.767778] imx296 2-0036: I2C writing value 00 at address 0x3244
[ 114.768391] imx296 2-0036: TPG_REG 0x3245 : 0x00
[ 114.773075] imx296 2-0036: I2C writing value 00 at address 0x3245
[ 114.773690] imx296 2-0036: TPG_REG 0x3246 : 0x00
[ 114.778393] imx296 2-0036: I2C writing value 00 at address 0x3246
[ 114.778990] imx296 2-0036: TPG_REG 0x3247 : 0x00
[ 114.783639] imx296 2-0036: I2C writing value 00 at address 0x3247
[ 114.784282] imx296 2-0036: TPG_REG 0x3249 : 0x4a
[ 114.789011] imx296 2-0036: I2C writing value 4a at address 0x3249
[ 114.789680] imx296 2-0036: TPG_REG 0x3254 : 0x00
[ 114.794352] imx296 2-0036: I2C writing value 00 at address 0x3254
[ 114.795000] imx296 2-0036: TPG_REG 0x3255 : 0x00
[ 114.799648] imx296 2-0036: I2C writing value 00 at address 0x3255
[ 114.800249] imx296 2-0036: TPG_REG 0x3022 : 0xf0
[ 114.804887] imx296 2-0036: I2C writing value f0 at address 0x3022
[ 114.805520] imx296 2-0036: imx296_set_ctrl : ctrl = {.id = 0x00980913, .val = 0x000000c8}
[ 114.805530] imx296 2-0036: gain = 200
[ 114.805534] imx296 2-0036: I2C writing value 01 at address 0x3008
[ 114.806161] imx296 2-0036: I2C writing value c8 at address 0x3204
[ 114.807005] imx296 2-0036: I2C writing value 00 at address 0x3205
[ 114.807635] imx296 2-0036: I2C writing value 00 at address 0x3008
[ 114.808264] imx296 2-0036: imx296_set_ctrl : ctrl = {.id = 0x00980911, .val = 0x000003e8}
[ 114.808273] imx296 2-0036: I2C writing value 01 at address 0x3008
[ 114.808900] imx296 2-0036: I2C writing value e8 at address 0x308d
[ 114.809510] imx296 2-0036: I2C writing value 03 at address 0x308e
[ 114.810134] imx296 2-0036: I2C writing value 00 at address 0x308f
[ 114.811092] imx296 2-0036: I2C writing value 00 at address 0x3008
[ 114.811715] imx296 2-0036: I2C writing value 00 at address 0x3000
[ 114.850559] imx296 2-0036: I2C writing value 00 at address 0x300a
[ 114.884800] imx296 2-0036: gain = 130
[ 114.884810] imx296 2-0036: I2C writing value 01 at address 0x3008
[ 114.885380] imx296 2-0036: I2C writing value 82 at address 0x3204
[ 114.885977] imx296 2-0036: I2C writing value 00 at address 0x3205
[ 114.886769] imx296 2-0036: I2C writing value 00 at address 0x3008
[ 115.078787] imx296 2-0036: gain = 73
[ 115.078798] imx296 2-0036: I2C writing value 01 at address 0x3008
[ 115.079483] imx296 2-0036: I2C writing value 49 at address 0x3204
[ 115.080156] imx296 2-0036: I2C writing value 00 at address 0x3205
[ 115.080839] imx296 2-0036: I2C writing value 00 at address 0x3008
[ 115.285077] imx296 2-0036: gain = 41
[ 115.285090] imx296 2-0036: I2C writing value 01 at address 0x3008
[ 115.285710] imx296 2-0036: I2C writing value 29 at address 0x3204
[ 115.286327] imx296 2-0036: I2C writing value 00 at address 0x3205
[ 115.286914] imx296 2-0036: I2C writing value 00 at address 0x3008
[ 115.472066] imx296 2-0036: gain = 23
[ 115.472085] imx296 2-0036: I2C writing value 01 at address 0x3008
[ 115.472806] imx296 2-0036: I2C writing value 17 at address 0x3204
[ 115.473491] imx296 2-0036: I2C writing value 00 at address 0x3205
[ 115.474159] imx296 2-0036: I2C writing value 00 at address 0x3008
[ 115.671961] imx296 2-0036: gain = 12
[ 115.671991] imx296 2-0036: I2C writing value 01 at address 0x3008
[ 115.672642] imx296 2-0036: I2C writing value 0c at address 0x3204
[ 115.673262] imx296 2-0036: I2C writing value 00 at address 0x3205
[ 115.673935] imx296 2-0036: I2C writing value 00 at address 0x3008
[ 115.882370] imx296 2-0036: gain = 6
[ 115.882381] imx296 2-0036: I2C writing value 01 at address 0x3008
[ 115.884094] imx296 2-0036: I2C writing value 06 at address 0x3204
[ 115.884824] imx296 2-0036: I2C writing value 00 at address 0x3205
[ 115.885430] imx296 2-0036: I2C writing value 00 at address 0x3008
[ 116.082000] imx296 2-0036: gain = 3
[ 116.082013] imx296 2-0036: I2C writing value 01 at address 0x3008
[ 116.083649] imx296 2-0036: I2C writing value 03 at address 0x3204
[ 116.084262] imx296 2-0036: I2C writing value 00 at address 0x3205
[ 116.084920] imx296 2-0036: I2C writing value 00 at address 0x3008
[ 116.482268] imx296 2-0036: gain = 1
[ 116.482281] imx296 2-0036: I2C writing value 01 at address 0x3008
[ 116.483943] imx296 2-0036: I2C writing value 01 at address 0x3204
[ 116.484550] imx296 2-0036: I2C writing value 00 at address 0x3205
[ 116.485234] imx296 2-0036: I2C writing value 00 at address 0x3008
[ 116.690356] imx296 2-0036: gain = 0
[ 116.690370] imx296 2-0036: I2C writing value 01 at address 0x3008
[ 116.692233] imx296 2-0036: I2C writing value 00 at address 0x3204
[ 116.692835] imx296 2-0036: I2C writing value 00 at address 0x3205
[ 116.693418] imx296 2-0036: I2C writing value 00 at address 0x3008
From the very beginning of second gst-launching of /dev/video3 (i.e. 2-0036) , it seems that /dev/video2 (i.e. 1-001a) is also queried :
[ 114.381215] imx296 1-001a: enter imx296_query_capability
...
[ 114.458328] imx296 1-001a: enter imx296_query_capability
...
[ 114.486860] imx296 1-001a: enter imx296_query_capability
Then in the meantime there appears to be 2 isp_mi_stop calls :
[ 114.394979] enter isp_mi_stop
...
[ 114.571258] enter isp_mi_stop
But only one isp_mi_start call later :
[ 114.652411] enter isp_s_comp
[ 114.655357] enter isp_s_comp
[ 114.658240] enter isp_s_comp
[ 114.674969] enter wdr3_hw_init
[ 114.678068] wdr3 res: 1440 1080
[ 114.682009] enter isp_mi_start
I'm not sure which isp_mi_stop or isp_mi_start belong to which ISP controller but it does not seem logical that there are 2 stop and 1 start. Possibly one ISP is in stopping state. What do you think?
Best regards,
K.