1 /* SPDX-License-Identifier: GPL-2.0 */ 2 /* Copyright (c) 2018 Fuzhou Rockchip Electronics Co., Ltd. */ 3 4 #ifndef _RKISP_VERSION_H 5 #define _RKISP_VERSION_H 6 #include <linux/version.h> 7 #include <linux/rk-isp21-config.h> 8 9 /* 10 * RKISP DRIVER VERSION NOTE 11 * 12 * v0.1.0: 13 * 1. First version; 14 * 15 * v0.1.1: 16 * 1. support lvds interface 17 * 18 * v0.1.2: 19 * support multi virtual device; 20 * 21 * v0.1.3: 22 * 1. support link with interface of cif 23 * 2. fix picture of hdr is abnormal in multi-visual isp when run second time 24 * 3. adjust hurry priority to middle 25 * 4. mi lum burst to 16 for dmatx 26 * 5. add cru reset for rv1126 27 * 28 * v0.1.4: 29 * 1. add more clk rate for rv1126 30 * 2. support hal to control hdrtmo on/off 31 * 3. switch hdr frame mode for read back 32 * 33 * v0.1.5: 34 * 1. add proc fs 35 * 2. add iq part information to procfs 36 * 3. fix stream failure in thunderboot mode 37 * 38 * v0.1.6: 39 * 1. raw length 256 align 40 * 2. soft reset for Dehaze 41 * 42 * v0.1.7: 43 * 1. fix rawaf is disabled in config function 44 * 2. clear csi rdbk fifo when first open 45 * 3. vb2 support cache hints 46 * 47 * v0.1.8: 48 * 1. add monitor to restart if abnormal 49 * 2. isp/ispp procfs add work info 50 * 3. fix scr clock is not disabled after app run 51 * 4. request buf to alloc dummy buf 52 * 5. set tmo bit in gain by tmo enable 53 * 6. only rx mode can use when link with cif 54 * 55 * v0.1.9: 56 * 1. isp and ispp sync to power off 57 * 2. fix lsc error when ldch is on 58 * 3. fix error status of stream off 59 * 4. skip frame when change hdr/normal mode 60 * 5. use ldch share buffer to reduce buffer size 61 * 62 * v1.2.0: 63 * 1. resolution write directly to reg for first dev 64 * 2. normal read back to enable hdr merge 65 * 3. enable LDCH in 2th frame 66 * 67 * v1.2.1: 68 * 1. fix normal merge enable config 69 * 2. fix size no update for multi sensor switch 70 * 3. dmatx add yuyv format 71 * 72 * v1.2.2: 73 * 1. isp/ispp add lock for multi dev runtime 74 * 2. support output isp/ispp reg on each frame 75 * 3. fix error detected by depmod 76 * 77 * v1.3.0: 78 * 1. capture to different version 79 * 2. add isp21 80 * 3. add rk3568 config 81 * 4. support iq part of isp21 82 * 5. remove hdrtmo to fix crash when connect to yuv sensor 83 * 6. fix enable function of ynr/cnr/bay3d/dhaz/adrc is not correct 84 * 7. fix can not get correct awb rawdata 85 * 8. add get awb data from ddr function 86 * 9. fix frame id error for isp21 87 * 10. config lsc by sram in rdbk mode 88 * 11. add force update to enable dehaze 89 * 12. fix bug of scheduling while atomic 90 * 13. fix setting drc register is not correct 91 * 14. extend line to fix merge bypass bug for isp20 92 * 15. vb2 dma sg for iommu enable 93 * 16. config dmatx to valid buf addr 94 * 95 * v1.4.1: 96 * 1. support motion detection mode 97 * 2. get stats only when meas done is on 98 * 3. fix lsc lut error in start/stop test 99 * 100 * v1.5.1: 101 * 1. support to set format if no streaming 102 * 2. add vb2_rdma_sg_memops to support contiguous page 103 * 3. fix gain buf update 104 * 4. 64 align y size for fbcgain format 105 * 5. add trigger mode ioctl 106 * 6. fix config of clk_dbg 107 * 7. fix path select of cif input 108 * 8. fix mpfbc buf update if readback off 109 * 9. fix array overflow 110 * 10. use force big mode when auto big mode is incorrect 111 * 11. fix extend line with isp input crop case 112 * 12. set lgmean related regs for tmo in hdr isr 113 * 114 * v1.6.0: 115 * 1. reorder of subdev stream 116 * 2. fix media link err for name don't match 117 * 3. switch hdr_done interrupt according to hdrtmo cnt mode 118 * 4. support output isp/ispp reg in nv12 format 119 * 5. isp and ispp add shutdown 120 * 6. image input from user 121 * 7. import dma API for memory synchronisation for thunderboot 122 * 8. don't start ldch asynchronously in multi-isp mode 123 * 9. fix err of mp dump raw for isp20 124 * 10. make sure 3dlut no continuous read twice 125 * 11. adjust rdbk times with mulit dev for isp2.0 126 * 127 * v1.6.1: 128 * 1.fix multi dev refcnt 129 * 2.update procfs info 130 * 3.add check for params subscribe event 131 * 4.resolution limit for isp21 132 * 5.dma buf alloc limit to DMA32 133 * 6.add monitor to restart if abnormal 134 * 7.adjust probe order 135 * 8.max height 3072 for isp21 136 * 9.dmatx support embedded and shield pixels data 137 * 10.separate rdbk from csi subdev 138 * 11.add bt601/bt709/bt2020 colorspace 139 * 12.apply en params if no match for isp20 140 * 13.apply en params if no match for isp21 141 * 14.isp21 get 3a stats from ddr 142 * 15.reserved memory using rdma_sg ops 143 * 144 * v1.6.2: 145 * 1.hdr direct for isp21 146 * 2.fix same frame id 147 * 3.fix isp and ispp share dmabuf release fail 148 * 4.clear rdbk fifo at dmarx stop 149 * 5.add lock for isp stream 150 * 6.disable params when it stream off 151 * 7.dmarx support yuv format 152 * 8.frame buffer done early 153 * 9.fix set pdaf in dpcc error 154 * 10.add v-blank to procfs 155 * 156 * v1.7.0: 157 * 1.off unused interrupt of csi 158 * 2.fix sp no output when hdr dynamic switch 159 * 3.check the output status of statistics v2x 160 * 4.selfpath bytesperline 16 align 161 * 5.compiled with differe hardware version 162 * 6.add frame loss info to procfs 163 * 7.remove associated of cproc and ie 164 * 8.fix input crop config for isp21 multi device 165 * 9.enable soft reset for other isp version 166 * 10.rawrd support uncompact mode 167 * 11.fix default params config for mode switch 168 * 12.before frame start to update bridge mi 169 * 13.disable tmo interrupt 170 * 14.fix bottom image for debayer with extend line 171 * 15.unregister dmarx at driver remove 172 * 173 * v1.8.0: 174 * 1.sync alloc buf with dma sg case 175 * 2.sync multi vir dev stream on/off 176 * 3.replace iommu detach/attach 177 * 4.adjust params common api 178 * 5.add isp3.0 179 * 6.params and stats for isp3.0 180 * 7.vicap direct to isp3.0 181 * 8.bridge v30 connect to ispp 182 * 9.add rk3588 config 183 * 10.add cmsk config for isp30 184 * 11.dual isp unite process image 185 * 12.params and stats for dual isp unite 186 * 13.sync dhaz params for dual isp unite 187 * 14.fbc support crop 188 * 15.add dual isp unite config 189 * 16.useless version return -EINVAL 190 * 17.fix first frame abnormal 191 * 18.fix isp30 config for cnr with gain off 192 * 19.fix NULL Pointer for stats v3x 193 * 20.add constraint to gaus_en/viir_en/v1_fir_sel of rawaf 194 * 21.fix dhaz config with dual unite isp 195 * 22.fix isp30 fbc config 196 * 23.isp3 max clk to 702M 197 * 24.fix fbc iommu err with multi device case 198 * 25.fix first params config two times for readback mode 199 * 26.fix ynr/cnr/baynr reg config 200 * 27.fix rawhist weight config error for multi device 201 * 28.bigmode by max width and size for isp30 202 * 29.add isp30 debug to procfs 203 * 30.fix scale resolution limit 204 * 31.fix bigmode for multi device 205 * 32.fix fbc stop iommu page fault for isp30 206 * 33.fix rawawb with rawlsc no stats 207 * 34.fix bay3d mi no update 208 * 35.dynamic memory alloc for params and stats function 209 * 36.limit ldch and gain for isp30 210 * 37.fix multi stream mpfbc reg config error 211 * 38.support stream crop for unite isp 212 * 39.fix hdrmge config error for isp30 read back mode 213 * 40.lsc table from sram for isp30 214 * 41.3a params config first 215 * 42.config aebig by af when aemode is on 216 * 43.add missing highlight in af stats 217 * 44.add the iqtool module 218 * 45.add csm params config for isp3 219 * 46.fix CSI2RX_DATA_IDS_1 config err 220 * 221 * v1.9.0: 222 * 1.fix config for isp_params_v3x 223 * 2.clean rdbk kfifo for isp32 224 * 3.fix awb raw data config for multi device 225 * 4.increase v4l2 events length 226 * 5.check virtual isp link to hw 227 * 6.fix isp30 uyvy format error 228 * 7.add API to get stream information 229 * 8.3a params config first for isp21 230 * 9.fix bigmode for multi device for isp21 231 * 10.fix reg config for multi device 232 * 11.add version to querycap 233 * 12.fix mp uyvy format error for isp30 234 * 13.add isp32 for rv1106 235 * 14.isp32 bls2 remove to awb 236 * 15.isp32 support mirror and flip 237 * 16.isp32 support raw data compression 238 * 17.add cgc config 239 * 18.add get isp information api 240 * 19.build depends on CPU config 241 * 20.isp32 mi switch according to output buf 242 * 21.add luma stream for isp32 243 * 22.scale up and down for some stream 244 * 23.isp32 add vsm 245 * 24.fix config of capture_v30 246 * 25.wrap mode for dvb 247 * 26.use videobuf2-cma-sg 248 * 27.remove vb2_dma_contig and vb2_dma_sg 249 * 28.Revert "dynamic memory alloc for params and stats function" 250 * 29.isp32 fix nv12 error 251 * 30.fix using of vb2_cma_sg 252 * 31.isp32 fix MI_WR_WRAP_CTRL default value 253 * 32.fix params v32 drc and bay3d config 254 * 33.add the rockit buff 255 * 34.isp32 fix cac config 256 * 35.isp32 support bay3d cur write to system sram 257 * 36.isp32 fix frame id to dvbm 258 * 37.set isp subdev crop and also check stream crop 259 * 38.power on to set pipeline default format 260 * 39.add isp reg cache read/write api 261 * 40.Solve the problem of invalid mirror 262 * 41.Solve the wrap_line frame rate problem 263 * 42.vicap->isp online set clk according to sensor rate 264 * 43.enable mipi drop interrupt 265 * 44.isp32 fix bay3d config 266 * 45.isp32 fix bay3d config 267 * 46.Solve the cmsk problem 268 * 47.fix stream link error 269 * 48.update procfs for isp32 270 * 49.support soft dvbm for vepu 271 * 50.disable ISP_FRAME_IN irq 272 * 51.fix rv1106 clk to 350 273 * 52.fix init format for struct no clean 274 * 53.procfs build with different isp version 275 * 54.fix isp debug time for fe/fs irq together 276 * 55.awb or gain debug info to ddr for isp32 277 * 278 * v2.0.0: 279 * 1.fix bay3d ds size for isp32 280 * 2.to support vicap merge raw 281 * 3.isp32 fix ae no working with af 282 * 4.api to free mesh buf for user 283 * 5.lock for buf alloc and free 284 * 6.for sdmmc lock 285 * 7.limit bay3d bwsaving config for isp32 286 * 8.fix imx327 hdr mode for isp21 287 * 9.ctrl the fps for isp32 288 * 10.add the bp stream async for isp32 289 * 11.fix info2ddr buf free for isp32 290 * 12.fix csm range to full 291 * 13.add the pause, config, resume stream for isp32 292 * 14.isp32 min clk to 200M 293 * 15.module auto gating for isp30/isp32 294 * 16.add the max size dummybuf and shd stop for isp32 295 * 17.add the config dvbm_init in wrap for isp32 296 * 18.sync params state 297 * 19.delete the buf_done log for isp32 298 * 20.params buf alloc remove to first buf queue 299 * 21.read the color_ctrl reg for isp32 300 * 22.use lager clk in 4 vir-isp mode 301 * 23.rockit: support set wrap_line 302 * 24.tb helper add clk on/off 303 * 25.remove stream limit for dvbm for isp32 304 * 26.fix hold at lsc ram data config 305 * 27.fix cac on/off for isp32 306 * 28.thunderboot for isp32 307 * 29.fix isp32 stream buf update double 308 * 30.add the double isp_dev in rockit for isp32 309 * 31.isp32: fix wrap error for fast stream 310 * 32.check rockit pointer 311 * 33.support free rx buffer 312 * 34.initcall cif/isp early when ROCKCHIP_THUNDER_BOOT_ISP=y 313 * 35.fix rockit set fps fail 314 * 36.fix module exit 315 * 37.api get fast stream output info 316 * 38.api for video to free tb reserved memory 317 * 39.fix warp size error 318 * 40.fix isp30 cgc limit config 319 * 41.remove associated of cproc and ie for isp3x 320 * 42.Add missing sentinel to rkisp_hw_of_match 321 * 43.support mesh buf count from user for isp30 and isp32 322 * 44.add tb api for rockit 323 * 45.fix isp30 cgc and cproc range 324 * 46.add slab.h fix compile 325 * 47.vb2 buf done in tasklet 326 * 48.rdbk to tasklet 327 * 49.set afen off before config af 328 * 50.remove isp1x compatible 329 * 51.frame end config params_v32 for fast output 330 * 52.match stream info for fast output 331 * 53.fix bug the second frame pts is 0 332 * 54.fix error of lsc repeat switch 333 * 55.fix dhaz config for multi isp21 334 * 56.cif/isp support compat_ioctl32 for video 335 * 57.unite mode to support multi dev for isp30 336 * 58.enum multi isp size at power on 337 * 59.2 readback for support multishot large resolution 338 * 60.disable link vir isp when hw working 339 * 61.fill extend line data for fix dhaz bug 340 * 62.fix isp20 and isp21 default to online with vicap 341 * 63.add procfs write for debug 342 * 64.fix isp20 error 343 * 65.support rdbk without aiq 344 * 66.fast to vicap capture raw 345 * 67.first frame run double for isp32 fast mode 346 * 68.fix pm runtime return -EACCES for thunderboot 347 * 69.record isp read time for fast mode 348 * 70.first params from rtt for thunderboot 349 * 71.fix pm runtime return -EACCES for thunderboot 350 * 72.record isp read time for fast mode 351 * 73.first params from rtt for thunderboot 352 * 74.enum formats for different isp version 353 * 75.change the limit of height 354 * 76.enum the max frame size to isp input size 355 * 77.stop without waiting if isp idle for readback mode 356 * 78.fix limit of dcrop 357 * 79.fix isp32 stream force to update enable 358 * 80.fix mi no disable for multi sensor unite mode 359 * 81.fix size for multi isp composite mode 360 * 361 * v2.1.0 362 * 1.fix mipi error for isp2x with multi sensor 363 * 2.default reg config after reset 364 * 3.fix isp20 mi no work 365 * 4.fix stream off just close isp 366 * 5.remove the judgment that gain turn off if ldch is enabled 367 * 6.drop first output for fast case 368 * 7.fix scl for unite mode 369 * 8.no wait if shutdown 370 * 9.fix stream no output for multi senso 371 * 10.fix hdr config for unite multi sensor 372 * 11.make sure to free buf after isp stop 373 * 12.improve thunder boot process 374 * 13.second frame first run for fast 375 * 14.multi sensor for fast case 376 * 15.fix fbc output for isp30 multi sensor 377 * 16.frame start to update buf for isp30 378 * 17.fix stream switch when readback mode 379 * 18.remove unsupported formats 380 * 19.fix stats buf update for multi sensor 381 * 20.fix self update config for isp30 382 * 21.fix dmatx loss first buf 383 * 22.fix rockit stream pause if readback mode 384 * 23.fix isp32 cmsk feature 385 * 24.online rx add memory compact or no 386 * 25.remove cif/isp/ispp hw SYSTEM_SLEEP_PM_OPS 387 * 26.api to force enum multi isp resolution 388 * 27.isp30 3a to ddr for readback mode 389 * 28.sync stop to dmarx for isp stop 390 * 29.fix mulit isp x3 mode 391 * 30.fix lsc table read by isp for multi sensor 392 * 31.merge dual dhaz config chang to user for unite mode 393 * 32.no support rgb8888 for isp30 394 * 33.fix iommu err for stream stop 395 * 34.fix 3a to ddr iommu err for isp30 two readback mode 396 * 35.400ms timeout for rtt complete 397 * 36.add mosaic block size for cmsk 398 * 37.wrap width and height config by user 399 * 38.fix ldch err 400 * 39.fix isp32 vflip config 401 * 40.dump two isp reg for unite mode 402 * 41.fix output stream sync for readback mode 403 * 42.wait isp0 end for unite mode 404 * 43.fix first frame loss 405 * 44.fix rgb range for selfpath 406 * 45.stats buf add application params frame id 407 * 408 * v2.2.0 409 * 1.add isp32 lite 410 * 2.add rk3562 config 411 * 3.add iqtool video for isp32 lite 412 * 4.fix build warn 413 * 5.dvfs for multi dev on/off 414 * 6.luma stream resolution alignment 415 * 7.fix sensor off to enable reset 416 * 8.fix isp and cif build warning 417 * 9.Return error code for ioctl set_meshbuf_size 418 * 10.fix isp32 lite mainpath switch fail 419 * 11.fix warning of vb2 cancel or done 420 * 12.fix isp no work due to irq_ends_mask error 421 * 13.thunder boot with multi sensor 422 * 14.support buf early done 423 * 15.fix read BP_WR_CTRL reg 424 * 425 * v2.2.1 426 * 1.rename isp and ispp uapi head 427 * 2.lock for rockit qbuf 428 * 3.fix open video during device register 429 * 4.sync dev register and fast_work 430 * 431 * v2.2.2 (AIQ v5.1.3) 432 * 1.fixed framerate ctl invalid issue 433 * 2.fix rockit uv offset if switch resolution 434 * 3.fix isp rockit frame rate err 435 * 4.fix error for multi sensor with scale up case 436 * 5.force offset to 0 when frame end for wrap mode 437 * 6.fix sync with 3a_server 438 * 7.fix isp32 and lite buf output err due to mi on/off 439 * 8.fix uyvy format for isp32 440 * 9.wait RISC-V with 400ms timeout 441 * 10.fix uyvy format for unite mode 442 * 11.fix ldch for multiple read back 443 * 12.sync isp stream_on end then to start working 444 * 13.no set clk if assigned-clock-rates in dts 445 * 14.distinguish buf done or subscribed event for param poll 446 * 15.fix repeated reporting statistics if stats video on/off 447 */ 448 449 #define RKISP_DRIVER_VERSION RKISP_API_VERSION 450 451 #endif 452