/* SPDX-License-Identifier: GPL-2.0 */ /* Copyright (c) 2018 Fuzhou Rockchip Electronics Co., Ltd. */ #ifndef _RKISP_VERSION_H #define _RKISP_VERSION_H #include #include /* * RKISP DRIVER VERSION NOTE * * v0.1.0: * 1. First version; * * v0.1.1: * 1. support lvds interface * * v0.1.2: * support multi virtual device; * * v0.1.3: * 1. support link with interface of cif * 2. fix picture of hdr is abnormal in multi-visual isp when run second time * 3. adjust hurry priority to middle * 4. mi lum burst to 16 for dmatx * 5. add cru reset for rv1126 * * v0.1.4: * 1. add more clk rate for rv1126 * 2. support hal to control hdrtmo on/off * 3. switch hdr frame mode for read back * * v0.1.5: * 1. add proc fs * 2. add iq part information to procfs * 3. fix stream failure in thunderboot mode * * v0.1.6: * 1. raw length 256 align * 2. soft reset for Dehaze * * v0.1.7: * 1. fix rawaf is disabled in config function * 2. clear csi rdbk fifo when first open * 3. vb2 support cache hints * * v0.1.8: * 1. add monitor to restart if abnormal * 2. isp/ispp procfs add work info * 3. fix scr clock is not disabled after app run * 4. request buf to alloc dummy buf * 5. set tmo bit in gain by tmo enable * 6. only rx mode can use when link with cif * * v0.1.9: * 1. isp and ispp sync to power off * 2. fix lsc error when ldch is on * 3. fix error status of stream off * 4. skip frame when change hdr/normal mode * 5. use ldch share buffer to reduce buffer size * * v1.2.0: * 1. resolution write directly to reg for first dev * 2. normal read back to enable hdr merge * 3. enable LDCH in 2th frame * * v1.2.1: * 1. fix normal merge enable config * 2. fix size no update for multi sensor switch * 3. dmatx add yuyv format * * v1.2.2: * 1. isp/ispp add lock for multi dev runtime * 2. support output isp/ispp reg on each frame * 3. fix error detected by depmod * * v1.3.0: * 1. capture to different version * 2. add isp21 * 3. add rk3568 config * 4. support iq part of isp21 * 5. remove hdrtmo to fix crash when connect to yuv sensor * 6. fix enable function of ynr/cnr/bay3d/dhaz/adrc is not correct * 7. fix can not get correct awb rawdata * 8. add get awb data from ddr function * 9. fix frame id error for isp21 * 10. config lsc by sram in rdbk mode * 11. add force update to enable dehaze * 12. fix bug of scheduling while atomic * 13. fix setting drc register is not correct * 14. extend line to fix merge bypass bug for isp20 * 15. vb2 dma sg for iommu enable * 16. config dmatx to valid buf addr * * v1.4.1: * 1. support motion detection mode * 2. get stats only when meas done is on * 3. fix lsc lut error in start/stop test * * v1.5.1: * 1. support to set format if no streaming * 2. add vb2_rdma_sg_memops to support contiguous page * 3. fix gain buf update * 4. 64 align y size for fbcgain format * 5. add trigger mode ioctl * 6. fix config of clk_dbg * 7. fix path select of cif input * 8. fix mpfbc buf update if readback off * 9. fix array overflow * 10. use force big mode when auto big mode is incorrect * 11. fix extend line with isp input crop case * 12. set lgmean related regs for tmo in hdr isr * * v1.6.0: * 1. reorder of subdev stream * 2. fix media link err for name don't match * 3. switch hdr_done interrupt according to hdrtmo cnt mode * 4. support output isp/ispp reg in nv12 format * 5. isp and ispp add shutdown * 6. image input from user * 7. import dma API for memory synchronisation for thunderboot * 8. don't start ldch asynchronously in multi-isp mode * 9. fix err of mp dump raw for isp20 * 10. make sure 3dlut no continuous read twice * 11. adjust rdbk times with mulit dev for isp2.0 * * v1.6.1: * 1.fix multi dev refcnt * 2.update procfs info * 3.add check for params subscribe event * 4.resolution limit for isp21 * 5.dma buf alloc limit to DMA32 * 6.add monitor to restart if abnormal * 7.adjust probe order * 8.max height 3072 for isp21 * 9.dmatx support embedded and shield pixels data * 10.separate rdbk from csi subdev * 11.add bt601/bt709/bt2020 colorspace * 12.apply en params if no match for isp20 * 13.apply en params if no match for isp21 * 14.isp21 get 3a stats from ddr * 15.reserved memory using rdma_sg ops * * v1.6.2: * 1.hdr direct for isp21 * 2.fix same frame id * 3.fix isp and ispp share dmabuf release fail * 4.clear rdbk fifo at dmarx stop * 5.add lock for isp stream * 6.disable params when it stream off * 7.dmarx support yuv format * 8.frame buffer done early * 9.fix set pdaf in dpcc error * 10.add v-blank to procfs * * v1.7.0: * 1.off unused interrupt of csi * 2.fix sp no output when hdr dynamic switch * 3.check the output status of statistics v2x * 4.selfpath bytesperline 16 align * 5.compiled with differe hardware version * 6.add frame loss info to procfs * 7.remove associated of cproc and ie * 8.fix input crop config for isp21 multi device * 9.enable soft reset for other isp version * 10.rawrd support uncompact mode * 11.fix default params config for mode switch * 12.before frame start to update bridge mi * 13.disable tmo interrupt * 14.fix bottom image for debayer with extend line * 15.unregister dmarx at driver remove * * v1.8.0: * 1.sync alloc buf with dma sg case * 2.sync multi vir dev stream on/off * 3.replace iommu detach/attach * 4.adjust params common api * 5.add isp3.0 * 6.params and stats for isp3.0 * 7.vicap direct to isp3.0 * 8.bridge v30 connect to ispp * 9.add rk3588 config * 10.add cmsk config for isp30 * 11.dual isp unite process image * 12.params and stats for dual isp unite * 13.sync dhaz params for dual isp unite * 14.fbc support crop * 15.add dual isp unite config * 16.useless version return -EINVAL * 17.fix first frame abnormal * 18.fix isp30 config for cnr with gain off * 19.fix NULL Pointer for stats v3x * 20.add constraint to gaus_en/viir_en/v1_fir_sel of rawaf * 21.fix dhaz config with dual unite isp * 22.fix isp30 fbc config * 23.isp3 max clk to 702M * 24.fix fbc iommu err with multi device case * 25.fix first params config two times for readback mode * 26.fix ynr/cnr/baynr reg config * 27.fix rawhist weight config error for multi device * 28.bigmode by max width and size for isp30 * 29.add isp30 debug to procfs * 30.fix scale resolution limit * 31.fix bigmode for multi device * 32.fix fbc stop iommu page fault for isp30 * 33.fix rawawb with rawlsc no stats * 34.fix bay3d mi no update * 35.dynamic memory alloc for params and stats function * 36.limit ldch and gain for isp30 * 37.fix multi stream mpfbc reg config error * 38.support stream crop for unite isp * 39.fix hdrmge config error for isp30 read back mode * 40.lsc table from sram for isp30 * 41.3a params config first * 42.config aebig by af when aemode is on * 43.add missing highlight in af stats * 44.add the iqtool module * 45.add csm params config for isp3 * 46.fix CSI2RX_DATA_IDS_1 config err * * v1.9.0: * 1.fix config for isp_params_v3x * 2.clean rdbk kfifo for isp32 * 3.fix awb raw data config for multi device * 4.increase v4l2 events length * 5.check virtual isp link to hw * 6.fix isp30 uyvy format error * 7.add API to get stream information * 8.3a params config first for isp21 * 9.fix bigmode for multi device for isp21 * 10.fix reg config for multi device * 11.add version to querycap * 12.fix mp uyvy format error for isp30 * 13.add isp32 for rv1106 * 14.isp32 bls2 remove to awb * 15.isp32 support mirror and flip * 16.isp32 support raw data compression * 17.add cgc config * 18.add get isp information api * 19.build depends on CPU config * 20.isp32 mi switch according to output buf * 21.add luma stream for isp32 * 22.scale up and down for some stream * 23.isp32 add vsm * 24.fix config of capture_v30 * 25.wrap mode for dvb * 26.use videobuf2-cma-sg * 27.remove vb2_dma_contig and vb2_dma_sg * 28.Revert "dynamic memory alloc for params and stats function" * 29.isp32 fix nv12 error * 30.fix using of vb2_cma_sg * 31.isp32 fix MI_WR_WRAP_CTRL default value * 32.fix params v32 drc and bay3d config * 33.add the rockit buff * 34.isp32 fix cac config * 35.isp32 support bay3d cur write to system sram * 36.isp32 fix frame id to dvbm * 37.set isp subdev crop and also check stream crop * 38.power on to set pipeline default format * 39.add isp reg cache read/write api * 40.Solve the problem of invalid mirror * 41.Solve the wrap_line frame rate problem * 42.vicap->isp online set clk according to sensor rate * 43.enable mipi drop interrupt * 44.isp32 fix bay3d config * 45.isp32 fix bay3d config * 46.Solve the cmsk problem * 47.fix stream link error * 48.update procfs for isp32 * 49.support soft dvbm for vepu * 50.disable ISP_FRAME_IN irq * 51.fix rv1106 clk to 350 * 52.fix init format for struct no clean * 53.procfs build with different isp version * 54.fix isp debug time for fe/fs irq together * 55.awb or gain debug info to ddr for isp32 * * v2.0.0: * 1.fix bay3d ds size for isp32 * 2.to support vicap merge raw * 3.isp32 fix ae no working with af * 4.api to free mesh buf for user * 5.lock for buf alloc and free * 6.for sdmmc lock * 7.limit bay3d bwsaving config for isp32 * 8.fix imx327 hdr mode for isp21 * 9.ctrl the fps for isp32 * 10.add the bp stream async for isp32 * 11.fix info2ddr buf free for isp32 * 12.fix csm range to full * 13.add the pause, config, resume stream for isp32 * 14.isp32 min clk to 200M * 15.module auto gating for isp30/isp32 * 16.add the max size dummybuf and shd stop for isp32 * 17.add the config dvbm_init in wrap for isp32 * 18.sync params state * 19.delete the buf_done log for isp32 * 20.params buf alloc remove to first buf queue * 21.read the color_ctrl reg for isp32 * 22.use lager clk in 4 vir-isp mode * 23.rockit: support set wrap_line * 24.tb helper add clk on/off * 25.remove stream limit for dvbm for isp32 * 26.fix hold at lsc ram data config * 27.fix cac on/off for isp32 * 28.thunderboot for isp32 * 29.fix isp32 stream buf update double * 30.add the double isp_dev in rockit for isp32 * 31.isp32: fix wrap error for fast stream * 32.check rockit pointer * 33.support free rx buffer * 34.initcall cif/isp early when ROCKCHIP_THUNDER_BOOT_ISP=y * 35.fix rockit set fps fail * 36.fix module exit * 37.api get fast stream output info * 38.api for video to free tb reserved memory * 39.fix warp size error * 40.fix isp30 cgc limit config * 41.remove associated of cproc and ie for isp3x * 42.Add missing sentinel to rkisp_hw_of_match * 43.support mesh buf count from user for isp30 and isp32 * 44.add tb api for rockit * 45.fix isp30 cgc and cproc range * 46.add slab.h fix compile * 47.vb2 buf done in tasklet * 48.rdbk to tasklet * 49.set afen off before config af * 50.remove isp1x compatible * 51.frame end config params_v32 for fast output * 52.match stream info for fast output * 53.fix bug the second frame pts is 0 * 54.fix error of lsc repeat switch * 55.fix dhaz config for multi isp21 * 56.cif/isp support compat_ioctl32 for video * 57.unite mode to support multi dev for isp30 * 58.enum multi isp size at power on * 59.2 readback for support multishot large resolution * 60.disable link vir isp when hw working * 61.fill extend line data for fix dhaz bug * 62.fix isp20 and isp21 default to online with vicap * 63.add procfs write for debug * 64.fix isp20 error * 65.support rdbk without aiq * 66.fast to vicap capture raw * 67.first frame run double for isp32 fast mode * 68.fix pm runtime return -EACCES for thunderboot * 69.record isp read time for fast mode * 70.first params from rtt for thunderboot * 71.fix pm runtime return -EACCES for thunderboot * 72.record isp read time for fast mode * 73.first params from rtt for thunderboot * 74.enum formats for different isp version * 75.change the limit of height * 76.enum the max frame size to isp input size * 77.stop without waiting if isp idle for readback mode * 78.fix limit of dcrop * 79.fix isp32 stream force to update enable * 80.fix mi no disable for multi sensor unite mode * 81.fix size for multi isp composite mode * * v2.1.0 * 1.fix mipi error for isp2x with multi sensor * 2.default reg config after reset * 3.fix isp20 mi no work * 4.fix stream off just close isp * 5.remove the judgment that gain turn off if ldch is enabled * 6.drop first output for fast case * 7.fix scl for unite mode * 8.no wait if shutdown * 9.fix stream no output for multi senso * 10.fix hdr config for unite multi sensor * 11.make sure to free buf after isp stop * 12.improve thunder boot process * 13.second frame first run for fast * 14.multi sensor for fast case * 15.fix fbc output for isp30 multi sensor * 16.frame start to update buf for isp30 * 17.fix stream switch when readback mode * 18.remove unsupported formats * 19.fix stats buf update for multi sensor * 20.fix self update config for isp30 * 21.fix dmatx loss first buf * 22.fix rockit stream pause if readback mode * 23.fix isp32 cmsk feature * 24.online rx add memory compact or no * 25.remove cif/isp/ispp hw SYSTEM_SLEEP_PM_OPS * 26.api to force enum multi isp resolution * 27.isp30 3a to ddr for readback mode * 28.sync stop to dmarx for isp stop * 29.fix mulit isp x3 mode * 30.fix lsc table read by isp for multi sensor * 31.merge dual dhaz config chang to user for unite mode * 32.no support rgb8888 for isp30 * 33.fix iommu err for stream stop * 34.fix 3a to ddr iommu err for isp30 two readback mode * 35.400ms timeout for rtt complete * 36.add mosaic block size for cmsk * 37.wrap width and height config by user * 38.fix ldch err * 39.fix isp32 vflip config * 40.dump two isp reg for unite mode * 41.fix output stream sync for readback mode * 42.wait isp0 end for unite mode * 43.fix first frame loss * 44.fix rgb range for selfpath * 45.stats buf add application params frame id * * v2.2.0 * 1.add isp32 lite * 2.add rk3562 config * 3.add iqtool video for isp32 lite * 4.fix build warn * 5.dvfs for multi dev on/off * 6.luma stream resolution alignment * 7.fix sensor off to enable reset * 8.fix isp and cif build warning * 9.Return error code for ioctl set_meshbuf_size * 10.fix isp32 lite mainpath switch fail * 11.fix warning of vb2 cancel or done * 12.fix isp no work due to irq_ends_mask error * 13.thunder boot with multi sensor * 14.support buf early done * 15.fix read BP_WR_CTRL reg * * v2.2.1 * 1.rename isp and ispp uapi head * 2.lock for rockit qbuf * 3.fix open video during device register * 4.sync dev register and fast_work * * v2.2.2 (AIQ v5.1.3) * 1.fixed framerate ctl invalid issue * 2.fix rockit uv offset if switch resolution * 3.fix isp rockit frame rate err * 4.fix error for multi sensor with scale up case * 5.force offset to 0 when frame end for wrap mode * 6.fix sync with 3a_server * 7.fix isp32 and lite buf output err due to mi on/off * 8.fix uyvy format for isp32 * 9.wait RISC-V with 400ms timeout * 10.fix uyvy format for unite mode * 11.fix ldch for multiple read back * 12.sync isp stream_on end then to start working * 13.no set clk if assigned-clock-rates in dts * 14.distinguish buf done or subscribed event for param poll * 15.fix repeated reporting statistics if stats video on/off * * v2.3.0 (AIQ v5.3.0) * 1.fix drc and hdrmge err for multi sensor * 2.fix 3dlut for multi sensor * 3.fix stream init pause state * 4.fix refer to sram info for multi sensor * 5.add api get isp work mode for rockit * 6.remove __isp_config_hdrshd * 7.add lock to save tb info * 8.fix list buf delete err * 9.fix get tb info * 10.add iqtool video for isp21 * 11.fix image effect for frame two-run * 12.fix underperformance for frame two-run * 13.support unite mode for isp32 * * v2.4.0 (AIQ v5.4.0) * 1.fix rv1106g3 4k cmsk right * 2.fix image effect for rv1106 4k * 3.add RKISP_VICAP_CMD_QUICK_STREAM CMD * 4.support suspend and resume * 5.pm add call sensor s_power * 6.suspend resume with rtt * 7.fix resume hold by lut error * 8.fix rv1106g3 4k can't cmsk rightmost * 9.fix rv1106 resume no output * 10.support to do reset in online mode * 11.support change work mode to online with quick stream * 12.fix build warning * 13.frame timestamp change to sof * 14.fix wnd_num cause array access out of bounds * 15.fix rv1106 cycle kill rkipc null pointer * 16.fix power_cnt if error * 17.fix rockit set_fmt stuck * 18.fix info2ddr no enable * 19.fix reset can't open * 20.more time to wait isp end * 21.add mode for rv1106 suspend without rtt * 22.fix is_on false cause pm isp die * * v2.5.0 (AIQ v5.5.0) * 1.wrap mode first done don't send event * 2.fix 4k and dual_sensor pm oneframe error * 3.isp32 using ktime_get_boottime_ns * 4.fix wait timeout with thunderboot * 5.add buf cnt info to procfs * 6.sync irq_ends * 7.fix resume mi no enable * 8.fix isp32 lost buf * 9.frame start to check and config next buf * 10.fix isp stop to enable isp ctrl * 11.fix isp32 buf no update to hw * 12.add rkisp_buf_dbg * 13.fix isp stop to read stats buf * 14.support multiple wrap * 15.dvbm buf support from rockit * 16.add RKISP_CMD_SET_TB_HEAD_V32 API * 17.add ioctl to get bay3d buf * 18.fix isp32 lite frame buffer data read * 19.support 8k for isp32 lite * * v2.6.0 (AIQ v6.6.1) * 1.add isp39 * 2.aiisp for isp39 * 3.isp39 support unite mode * 4.add rk3576 config * 5.fix isp39 params config * 6.fix isp39 output error * 7.fix waiting for isp end * 8.fix isp39 * 9.dpcc border for isp39 * 10.aiisp two buf * 11.default readback mode for multi sensor * 12.skip s_stream of sensor while connect to vicap sditf * 13.fix isp39 unite mode * 14.update gic and check params for isp39 * * v2.6.1 * 1.fix dmarx deadlock * 2.fix dmatx config * 3.fix multi sensor for isp39 * 4.fix cac repeat enable * 5.skip mbus if link to vicap * 6.fix ldcv irq handle * 7.fix cac for multi sensor * 8.add stats log for isp21 and isp30 * 9.fix isp39 resume * 10.fix aiisp config * 11.enable bay3d FST_FRAME if change bypass * 12.fix awb resume error * 13.fix memory leak * 14.config bls1 and bls2 black level * 15.frame buf default to ddr for isp39 multi sensor * 16.fix isp39 params * 17.isp39 add api to get params * 18.fix isp39 sensor mode config * 19.clear isp force update bit * 20.isp39 aiisp offline mode default * 21.vpss: online support reset * * v2.9.0 (AIQ v6.9.0) * 1.rawrd format sync with isp input format change * 2.support bytesperline set by user for rawrd video * 3.fix isp39 unite stats frame id * 4.update iqtool video * 5.fix isp32_lite repeat register iqtool video * 6.fix lsc switch for isp30 * 7.add fpn function * 8.fix buf config for isp20 and isp21 * 9.fix dhaz unite for isp39 * 10.fix isp39 no output * 11.sync with kernel-5.10 * 12.remove graph_mutex * 13.add raw filter to procfs debug * 14.fix multi sensor with unite mode * 15.fix group aov no working for isp32 * 16.fix bay3d if two readback for isp32 * 17.fix isp30 unite mode for rk3588 * 18.add sensor exposure for isp30 and isp39 * 19.support frame information attach to image tail */ #define RKISP_DRIVER_VERSION RKISP_API_VERSION #endif