Hello,
We use onsemi sensor and ISP (AR0821+AP1302) on imx8M plus.
we can enable the camera with CSI0 to support 4K, 2K, 1080p, and 720p.
However, when we tried the same camera with CSI1, it had a problem so that it couldn't support 720p.
Because the camera output resolution is decided by AP1302, so we add more resolutions to try, and we found some specific resolutions cannot be supported.
Below we tried:
| Resolution | CSI0 (/dev/video0) | CSI1 (/dev/video1) |
| 3840x2160 | V | V |
| 2560x1440 | V | V |
| 1920x1200 | V | V |
| 1920x1080 | V | V |
| 1600x1200 | V | X |
| 1280x800 | X | X |
| 1280x720 | V | X |
| 1024x768 | X | X |
| 800x600 | V | X |
| 720x480 | V | X |
| 640x400 | X | X |
| 640x360 | V | X |
We wonder if it was the ISI problem but we couldn't find any problem even we printed logs of ISI.
we only knew the mxc_isi_irq_handler didn't work if we set the specific resolutions.
CSI0: (/dev/video0 1280x720 can work)
[ 127.754846] mxc-isi 32e00000.isi: ISI CHNLC register dump, isi0
[ 127.760829] mxc-isi 32e00000.isi: CHNL_CTRL[0x00]: e0000000
[ 127.767380] mxc-isi 32e00000.isi: CHNL_IMG_CTRL[0x04]: 20000001
[ 127.773925] mxc-isi 32e00000.isi: CHNL_OUT_BUF_CTRL[0x08]: 7c707
[ 127.780205] mxc-isi 32e00000.isi: CHNL_IMG_CFG[0x0c]: 4380780
[ 127.786662] mxc-isi 32e00000.isi: CHNL_IER[0x10]: 3cfc0000
[ 127.793204] mxc-isi 32e00000.isi: CHNL_STS[0x14]: 100
[ 127.799324] mxc-isi 32e00000.isi: CHNL_SCALE_FACTOR[0x18]: 10001000
[ 127.805876] mxc-isi 32e00000.isi: CHNL_SCALE_OFFSET[0x1c]: 00
[ 127.811895] mxc-isi 32e00000.isi: CHNL_CROP_ULC[0x20]: 00
[ 127.817917] mxc-isi 32e00000.isi: CHNL_CROP_LRC[0x24]: 00
[ 127.823940] mxc-isi 32e00000.isi: CHNL_CSC_COEFF0[0x28]: 00
[ 127.829979] mxc-isi 32e00000.isi: CHNL_CSC_COEFF1[0x2c]: 00
[ 127.836009] mxc-isi 32e00000.isi: CHNL_CSC_COEFF2[0x30]: 00
[ 127.842048] mxc-isi 32e00000.isi: CHNL_CSC_COEFF3[0x34]: 00
[ 127.848076] mxc-isi 32e00000.isi: CHNL_CSC_COEFF4[0x38]: 00
[ 127.854100] mxc-isi 32e00000.isi: CHNL_CSC_COEFF5[0x3c]: 00
[ 127.860122] mxc-isi 32e00000.isi: CHNL_ROI_0_ALPHA[0x40]: 00
[ 127.866144] mxc-isi 32e00000.isi: CHNL_ROI_0_ULC[0x44]: 00
[ 127.872166] mxc-isi 32e00000.isi: CHNL_ROI_0_LRC[0x48]: 00
[ 127.878187] mxc-isi 32e00000.isi: CHNL_ROI_1_ALPHA[0x4c]: 00
[ 127.884219] mxc-isi 32e00000.isi: CHNL_ROI_1_ULC[0x50]: 00
[ 127.890241] mxc-isi 32e00000.isi: CHNL_ROI_1_LRC[0x54]: 00
[ 127.896263] mxc-isi 32e00000.isi: CHNL_ROI_2_ALPHA[0x58]: 00
[ 127.902293] mxc-isi 32e00000.isi: CHNL_ROI_2_ULC[0x5c]: 00
[ 127.908319] mxc-isi 32e00000.isi: CHNL_ROI_2_LRC[0x60]: 00
[ 127.914341] mxc-isi 32e00000.isi: CHNL_ROI_3_ALPHA[0x64]: 00
[ 127.920365] mxc-isi 32e00000.isi: CHNL_ROI_3_ULC[0x68]: 00
[ 127.926386] mxc-isi 32e00000.isi: CHNL_ROI_3_LRC[0x6c]: 00
[ 127.932408] mxc-isi 32e00000.isi: CHNL_OUT_BUF1_ADDR_Y[0x70]: 68900000
[ 127.938950] mxc-isi 32e00000.isi: CHNL_OUT_BUF1_ADDR_U[0x74]: 00
[ 127.944972] mxc-isi 32e00000.isi: CHNL_OUT_BUF1_ADDR_V[0x78]: 00
[ 127.950994] mxc-isi 32e00000.isi: CHNL_OUT_BUF_PITCH[0x7c]: f00
[ 127.957103] mxc-isi 32e00000.isi: CHNL_IN_BUF_ADDR[0x80]: 00
[ 127.963123] mxc-isi 32e00000.isi: CHNL_IN_BUF_PITCH[0x84]: 00
[ 127.969145] mxc-isi 32e00000.isi: CHNL_MEM_RD_CTRL[0x88]: 00
[ 127.975167] mxc-isi 32e00000.isi: CHNL_OUT_BUF2_ADDR_Y[0x8c]: 67900000
[ 127.981708] mxc-isi 32e00000.isi: CHNL_OUT_BUF2_ADDR_U[0x90]: 00
[ 127.987725] mxc-isi 32e00000.isi: CHNL_OUT_BUF2_ADDR_V[0x94]: 00
[ 127.993748] mxc-isi 32e00000.isi: CHNL_SCL_IMG_CFG[0x98]: 4380780
[ 128.000204] mxc-isi 32e00000.isi: CHNL_FLOW_CTRL[0x9c]: 00
[ 128.477737] mxc-isi 32e00000.isi: mxc_isi_irq_handler
[ 128.512879] mxc-isi 32e00000.isi: mxc_isi_irq_handler
CSI1: (/dev/video1 1280x720 cannot work)
[ 28.305635] mxc-isi 32e02000.isi: ISI CHNLC register dump, isi1
[ 28.311589] mxc-isi 32e02000.isi: CHNL_CTRL[0x00]: e0000001
[ 28.318130] mxc-isi 32e02000.isi: CHNL_IMG_CTRL[0x04]: 20000001
[ 28.324673] mxc-isi 32e02000.isi: CHNL_OUT_BUF_CTRL[0x08]: 7c707
[ 28.330953] mxc-isi 32e02000.isi: CHNL_IMG_CFG[0x0c]: 2d00500
[ 28.337439] mxc-isi 32e02000.isi: CHNL_IER[0x10]: 3cfc0000
[ 28.343987] mxc-isi 32e02000.isi: CHNL_STS[0x14]: 100
[ 28.350104] mxc-isi 32e02000.isi: CHNL_SCALE_FACTOR[0x18]: 10001000
[ 28.356651] mxc-isi 32e02000.isi: CHNL_SCALE_OFFSET[0x1c]: 00
[ 28.362687] mxc-isi 32e02000.isi: CHNL_CROP_ULC[0x20]: 00
[ 28.368708] mxc-isi 32e02000.isi: CHNL_CROP_LRC[0x24]: 00
[ 28.374746] mxc-isi 32e02000.isi: CHNL_CSC_COEFF0[0x28]: 00
[ 28.380770] mxc-isi 32e02000.isi: CHNL_CSC_COEFF1[0x2c]: 00
[ 28.386804] mxc-isi 32e02000.isi: CHNL_CSC_COEFF2[0x30]: 00
[ 28.392839] mxc-isi 32e02000.isi: CHNL_CSC_COEFF3[0x34]: 00
[ 28.398875] mxc-isi 32e02000.isi: CHNL_CSC_COEFF4[0x38]: 00
[ 28.404908] mxc-isi 32e02000.isi: CHNL_CSC_COEFF5[0x3c]: 00
[ 28.410946] mxc-isi 32e02000.isi: CHNL_ROI_0_ALPHA[0x40]: 00
[ 28.416984] mxc-isi 32e02000.isi: CHNL_ROI_0_ULC[0x44]: 00
[ 28.423021] mxc-isi 32e02000.isi: CHNL_ROI_0_LRC[0x48]: 00
[ 28.429054] mxc-isi 32e02000.isi: CHNL_ROI_1_ALPHA[0x4c]: 00
[ 28.435109] mxc-isi 32e02000.isi: CHNL_ROI_1_ULC[0x50]: 00
[ 28.441146] mxc-isi 32e02000.isi: CHNL_ROI_1_LRC[0x54]: 00
[ 28.447184] mxc-isi 32e02000.isi: CHNL_ROI_2_ALPHA[0x58]: 00
[ 28.453210] mxc-isi 32e02000.isi: CHNL_ROI_2_ULC[0x5c]: 00
[ 28.459246] mxc-isi 32e02000.isi: CHNL_ROI_2_LRC[0x60]: 00
[ 28.465272] mxc-isi 32e02000.isi: CHNL_ROI_3_ALPHA[0x64]: 00
[ 28.471307] mxc-isi 32e02000.isi: CHNL_ROI_3_ULC[0x68]: 00
[ 28.477333] mxc-isi 32e02000.isi: CHNL_ROI_3_LRC[0x6c]: 00
[ 28.483368] mxc-isi 32e02000.isi: CHNL_OUT_BUF1_ADDR_Y[0x70]: 68100000
[ 28.489914] mxc-isi 32e02000.isi: CHNL_OUT_BUF1_ADDR_U[0x74]: 00
[ 28.495945] mxc-isi 32e02000.isi: CHNL_OUT_BUF1_ADDR_V[0x78]: 00
[ 28.501966] mxc-isi 32e02000.isi: CHNL_OUT_BUF_PITCH[0x7c]: a00
[ 28.508075] mxc-isi 32e02000.isi: CHNL_IN_BUF_ADDR[0x80]: 00
[ 28.514095] mxc-isi 32e02000.isi: CHNL_IN_BUF_PITCH[0x84]: 00
[ 28.520127] mxc-isi 32e02000.isi: CHNL_MEM_RD_CTRL[0x88]: 00
[ 28.526153] mxc-isi 32e02000.isi: CHNL_OUT_BUF2_ADDR_Y[0x8c]: 67900000
[ 28.532696] mxc-isi 32e02000.isi: CHNL_OUT_BUF2_ADDR_U[0x90]: 00
[ 28.538716] mxc-isi 32e02000.isi: CHNL_OUT_BUF2_ADDR_V[0x94]: 00
[ 28.544748] mxc-isi 32e02000.isi: CHNL_SCL_IMG_CFG[0x98]: 2d00500
[ 28.551208] mxc-isi 32e02000.isi: CHNL_FLOW_CTRL[0x9c]: 00
To confirm what happens, we tried it on imx8M Mini (without ISI).
We found the above resolutions all support on imx8M Mini except 2K and 4K.
So we think the problem is from ISI.
How can we resolve the problem?
Thanks!