The NXP i.MX8MP integrates an ISP8000Nano from VeriSilicon, which is a derivative of the ISP found in earlier Rockchip SoCs. It isn't clear at which exact point the two product lines have diverged, and there is no public information regarding the version numbering scheme of the ISP8000Nano. Nonetheless, this ISP is close enough to the V10 found in the RK3399 to be supported by the same driver. Add an entry for the ISP found in the NXP i.MX8MP to the version enum. Given the lack of information on the version numbering scheme, and on whether or not the version in the i.MX8MP is identical to other ISP8000Nano versions or has been customized for the i.MX8MP, depart from the number-based versions and name this new version V_IMX8MP. Update comments for the other versions and for relevant parameters blocks to clearly indicate the size of grids and histogram for the different versions.
Showing the changes to include/uapi (1 of 1 file). Show all
Unified · Split
| @@ -175,16 +175,21 @@ · 174 unmodified lines | |||
| 175 | /** | 175 | /** |
| 176 | * enum rkisp1_cif_isp_version - ISP variants | 176 | * enum rkisp1_cif_isp_version - ISP variants |
| 177 | * | 177 | * |
| 178 | * @RKISP1_V10: used at least in rk3288 and rk3399 | 178 | * @RKISP1_V10: Used at least in RK3288 and RK3399. |
| 179 | * @RKISP1_V11: declared in the original vendor code, but not used | 179 | * @RKISP1_V11: Declared in the original vendor code, but not used. Same number |
| 180 | * @RKISP1_V12: used at least in rk3326 and px30 | 180 | * of entries in grids and histogram as v10. |
| 181 | * @RKISP1_V13: used at least in rk1808 | 181 | * @RKISP1_V12: Used at least in RK3326 and PX30. |
| 182 | * @RKISP1_V13: Used at least in RK1808. Same number of entries in grids and | ||
| 183 | * histogram as v12. | ||
| 184 | * @RKISP1_V_IMX8MP: Used in at least i.MX8MP. Same number of entries in grids | ||
| 185 | * and histogram as v10. | ||
| 182 | */ | 186 | */ |
| 183 | enum rkisp1_cif_isp_version { | 187 | enum rkisp1_cif_isp_version { |
| 184 | RKISP1_V10 = 10, | 188 | RKISP1_V10 = 10, |
| 185 | RKISP1_V11, | 189 | RKISP1_V11, |
| 186 | RKISP1_V12, | 190 | RKISP1_V12, |
| 187 | RKISP1_V13, | 191 | RKISP1_V13, |
| 192 | RKISP1_V_IMX8MP, | ||
| 188 | }; | 193 | }; |
| 189 | 194 | ||
| 190 | enum rkisp1_cif_isp_histogram_mode { | 195 | enum rkisp1_cif_isp_histogram_mode { |
| @@ -584,10 +589,9 @@ enum rkisp1_cif_isp_goc_mode { · 393 unmodified lines | |||
| 584 | * as is reported by the hw_revision field of the struct media_device_info | 589 | * as is reported by the hw_revision field of the struct media_device_info |
| 585 | * that is returned by ioctl MEDIA_IOC_DEVICE_INFO. | 590 | * that is returned by ioctl MEDIA_IOC_DEVICE_INFO. |
| 586 | * | 591 | * |
| 587 | * Versions <= V11 have RKISP1_CIF_ISP_GAMMA_OUT_MAX_SAMPLES_V10 | 592 | * V10 has RKISP1_CIF_ISP_GAMMA_OUT_MAX_SAMPLES_V10 entries, V12 has |
| 588 | * entries, versions >= V12 have RKISP1_CIF_ISP_GAMMA_OUT_MAX_SAMPLES_V12 | 593 | * RKISP1_CIF_ISP_GAMMA_OUT_MAX_SAMPLES_V12 entries. |
| 589 | * entries. RKISP1_CIF_ISP_GAMMA_OUT_MAX_SAMPLES is equal to the maximum | 594 | * RKISP1_CIF_ISP_GAMMA_OUT_MAX_SAMPLES is equal to the maximum of the two. |
| 590 | * of the two. | ||
| 591 | */ | 595 | */ |
| 592 | struct rkisp1_cif_isp_goc_config { | 596 | struct rkisp1_cif_isp_goc_config { |
| 593 | __u32 mode; | 597 | __u32 mode; |
| @@ -607,10 +611,10 @@ struct rkisp1_cif_isp_goc_config { · 13 unmodified lines | |||
| 607 | * as is reported by the hw_revision field of the struct media_device_info | 611 | * as is reported by the hw_revision field of the struct media_device_info |
| 608 | * that is returned by ioctl MEDIA_IOC_DEVICE_INFO. | 612 | * that is returned by ioctl MEDIA_IOC_DEVICE_INFO. |
| 609 | * | 613 | * |
| 610 | * Versions <= V11 have RKISP1_CIF_ISP_HISTOGRAM_WEIGHT_GRIDS_SIZE_V10 | 614 | * V10 has RKISP1_CIF_ISP_HISTOGRAM_WEIGHT_GRIDS_SIZE_V10 entries, V12 has |
| 611 | * entries, versions >= V12 have RKISP1_CIF_ISP_HISTOGRAM_WEIGHT_GRIDS_SIZE_V12 | 615 | * RKISP1_CIF_ISP_HISTOGRAM_WEIGHT_GRIDS_SIZE_V12 entries. |
| 612 | * entries. RKISP1_CIF_ISP_HISTOGRAM_WEIGHT_GRIDS_SIZE is equal to the maximum | 616 | * RKISP1_CIF_ISP_HISTOGRAM_WEIGHT_GRIDS_SIZE is equal to the maximum of the |
| 613 | * of the two. | 617 | * two. |
| 614 | */ | 618 | */ |
| 615 | struct rkisp1_cif_isp_hst_config { | 619 | struct rkisp1_cif_isp_hst_config { |
| 616 | __u32 mode; | 620 | __u32 mode; |
| @@ -902,9 +906,9 @@ struct rkisp1_cif_isp_bls_meas_val { · 285 unmodified lines | |||
| 902 | * as is reported by the hw_revision field of the struct media_device_info | 906 | * as is reported by the hw_revision field of the struct media_device_info |
| 903 | * that is returned by ioctl MEDIA_IOC_DEVICE_INFO. | 907 | * that is returned by ioctl MEDIA_IOC_DEVICE_INFO. |
| 904 | * | 908 | * |
| 905 | * Versions <= V11 have RKISP1_CIF_ISP_AE_MEAN_MAX_V10 entries, | 909 | * V10 has RKISP1_CIF_ISP_AE_MEAN_MAX_V10 entries, V12 has |
| 906 | * versions >= V12 have RKISP1_CIF_ISP_AE_MEAN_MAX_V12 entries. | 910 | * RKISP1_CIF_ISP_AE_MEAN_MAX_V12 entries. RKISP1_CIF_ISP_AE_MEAN_MAX is equal |
| 907 | * RKISP1_CIF_ISP_AE_MEAN_MAX is equal to the maximum of the two. | 911 | * to the maximum of the two. |
| 908 | * | 912 | * |
| 909 | * Image is divided into 5x5 blocks on V10 and 9x9 blocks on V12. | 913 | * Image is divided into 5x5 blocks on V10 and 9x9 blocks on V12. |
| 910 | */ | 914 | */ |
| @@ -944,21 +948,21 @@ struct rkisp1_cif_isp_af_stat { · 33 unmodified lines | |||
| 944 | * integer part. | 948 | * integer part. |
| 945 | * | 949 | * |
| 946 | * The window of the measurements area is divided to 5x5 sub-windows for | 950 | * The window of the measurements area is divided to 5x5 sub-windows for |
| 947 | * V10/V11 and to 9x9 sub-windows for V12. The histogram is then computed for | 951 | * V10 and to 9x9 sub-windows for V12. The histogram is then computed for each |
| 948 | * each sub-window independently and the final result is a weighted average of | 952 | * sub-window independently and the final result is a weighted average of the |
| 949 | * the histogram measurements on all sub-windows. The window of the | 953 | * histogram measurements on all sub-windows. The window of the measurements |
| 950 | * measurements area and the weight of each sub-window are configurable using | 954 | * area and the weight of each sub-window are configurable using |
| 951 | * struct @rkisp1_cif_isp_hst_config. | 955 | * struct @rkisp1_cif_isp_hst_config. |
| 952 | * | 956 | * |
| 953 | * The histogram contains 16 bins in V10/V11 and 32 bins in V12/V13. | 957 | * The histogram contains 16 bins in V10 and 32 bins in V12. |
| 954 | * | 958 | * |
| 955 | * The number of entries of @hist_bins depends on the hardware revision | 959 | * The number of entries of @hist_bins depends on the hardware revision |
| 956 | * as is reported by the hw_revision field of the struct media_device_info | 960 | * as is reported by the hw_revision field of the struct media_device_info |
| 957 | * that is returned by ioctl MEDIA_IOC_DEVICE_INFO. | 961 | * that is returned by ioctl MEDIA_IOC_DEVICE_INFO. |
| 958 | * | 962 | * |
| 959 | * Versions <= V11 have RKISP1_CIF_ISP_HIST_BIN_N_MAX_V10 entries, | 963 | * V10 has RKISP1_CIF_ISP_HIST_BIN_N_MAX_V10 entries, V12 has |
| 960 | * versions >= V12 have RKISP1_CIF_ISP_HIST_BIN_N_MAX_V12 entries. | 964 | * RKISP1_CIF_ISP_HIST_BIN_N_MAX_V12 entries. RKISP1_CIF_ISP_HIST_BIN_N_MAX is |
| 961 | * RKISP1_CIF_ISP_HIST_BIN_N_MAX is equal to the maximum of the two. | 965 | * equal to the maximum of the two. |
| 962 | */ | 966 | */ |
| 963 | struct rkisp1_cif_isp_hist_stat { | 967 | struct rkisp1_cif_isp_hist_stat { |
| 964 | __u32 hist_bins[RKISP1_CIF_ISP_HIST_BIN_N_MAX]; | 968 | __u32 hist_bins[RKISP1_CIF_ISP_HIST_BIN_N_MAX]; |