liyujie
2025-08-28 d9927380ed7c8366f762049be9f3fee225860833
android/hardware/aw/camera/3_4/allwinnertech/libAWIspApi/libisp_new/isp_manage/isp_manage.c
....@@ -23,7 +23,8 @@
2323 #include "isp_otp_golden.h"
2424
2525
26
-unsigned int isp_lib_log_param = 0;//0xffffffff;
26
+unsigned int isp_manage_lib_log_param = 0;//0xffffffff;
27
+unsigned int msc_update_sel;
2728
2829 void isp_get_saved_regs(struct isp_lib_context *isp_gen)
2930 {
....@@ -137,8 +138,7 @@
137138 isp_gen->rolloff_entity_ctx.rolloff_param->rolloff_frame_id = isp_gen->af_frame_cnt;
138139 //rolloff_sensor_info.
139140 isp_gen->rolloff_entity_ctx.rolloff_param->rolloff_sensor_info = isp_gen->sensor_info;
140
- //rolloff lsc_cfg.
141
- isp_gen->rolloff_entity_ctx.rolloff_param->lsc_cfg = isp_gen->module_cfg.lens_cfg.lsc_cfg;
141
+ isp_gen->rolloff_entity_ctx.rolloff_param->rolloff_ctrl = isp_gen->alsc_settings;
142142 }
143143
144144 void __isp_rolloff_run(struct isp_lib_context *isp_gen)
....@@ -149,22 +149,6 @@
149149
150150 isp_rolloff_cxt->ops->isp_rolloff_run(isp_rolloff_cxt->rolloff_entity,
151151 &isp_rolloff_cxt->rolloff_stats, &isp_rolloff_cxt->rolloff_result);
152
-
153
- if (!isp_gen->isp_ini_cfg.isp_test_settings.wdr_en) {
154
- for (i = 0; i < 256; i++)
155
- {
156
- lens_tbl[4*i + 0] = isp_rolloff_cxt->rolloff_result.lens_table_output[i + 0];
157
- lens_tbl[4*i + 1] = isp_rolloff_cxt->rolloff_result.lens_table_output[i + 256];
158
- lens_tbl[4*i + 2] = isp_rolloff_cxt->rolloff_result.lens_table_output[i + 512];
159
- }
160
- } else {
161
- for (i = 0; i < 256; i++)
162
- {
163
- lens_tbl[4*i + 0] = (unsigned short)sqrt((double)isp_rolloff_cxt->rolloff_result.lens_table_output[i + 0] * 1024);
164
- lens_tbl[4*i + 1] = (unsigned short)sqrt((double)isp_rolloff_cxt->rolloff_result.lens_table_output[i + 256] * 1024);
165
- lens_tbl[4*i + 2] = (unsigned short)sqrt((double)isp_rolloff_cxt->rolloff_result.lens_table_output[i + 512] * 1024);
166
- }
167
- }
168152 }
169153
170154 void __isp_afs_set_params(struct isp_lib_context *isp_gen)
....@@ -237,6 +221,7 @@
237221 {
238222 isp_gen->awb_entity_ctx.awb_param->awb_frame_id = isp_gen->awb_frame_cnt;
239223 isp_gen->awb_entity_ctx.awb_param->awb_ctrl = isp_gen->awb_settings;
224
+ isp_gen->awb_entity_ctx.awb_param->awb_isp_id = isp_gen->isp_id;
240225 //sensor info.
241226 isp_gen->awb_entity_ctx.awb_param->awb_sensor_info = isp_gen->sensor_info;
242227 }
....@@ -458,6 +443,16 @@
458443 isp_gen->stats_ctx.wb_gain_saved.gb_gain = 256;
459444 isp_gen->stats_ctx.wb_gain_saved.b_gain = 256;
460445
446
+ //alsc settings
447
+ isp_gen->alsc_settings.frequency = 6;
448
+ isp_gen->alsc_settings.start = isp_gen->alsc_settings.frequency * 5;
449
+ isp_gen->alsc_settings.smooth_pool_size = 16;
450
+ isp_gen->alsc_settings.th_tableSwitch = 2;
451
+ isp_gen->alsc_settings.th_lowLight = 35;
452
+ isp_gen->alsc_settings.th_complex = 563;
453
+ isp_gen->alsc_settings.th_highSat = 645;
454
+ isp_gen->alsc_settings.th_semiFlat = 46;
455
+
461456 //dynamic judge
462457 dynamic_stats->enable = 0;
463458
....@@ -564,7 +559,7 @@
564559
565560 mod_cfg->module_enable_flag |= ISP_FEATURES_MODE;
566561
567
- isp_lib_log_param = param->isp_test_settings.isp_log_param;
562
+ isp_manage_lib_log_param = param->isp_test_settings.isp_log_param;
568563
569564 return 0;
570565 }
....@@ -1537,20 +1532,21 @@
15371532
15381533 HW_S32 __isp_ctx_update_rolloff_cfg(struct isp_lib_context *isp_gen)
15391534 {
1535
+ int m;
1536
+
15401537 if (!isp_gen->rolloff_entity_ctx.rolloff_param) {
15411538 return -1;
15421539 }
15431540
15441541 //rolloff_sensor_info.
15451542 isp_gen->rolloff_entity_ctx.rolloff_param->rolloff_sensor_info = isp_gen->sensor_info;
1546
- //rolloff_ini_cfg.
1547
- memcpy(&isp_gen->rolloff_entity_ctx.rolloff_param->rolloff_ini.lens_table_ini[0],
1548
- &isp_gen->isp_ini_cfg.isp_tunning_settings.lsc_tbl[0][3], 768*sizeof(unsigned short));
1549
- isp_gen->rolloff_entity_ctx.rolloff_param->rolloff_ini.rolloff_ratio = isp_gen->isp_ini_cfg.isp_tunning_settings.rolloff_ratio;
1550
- isp_rolloff_set_params_helper(&isp_gen->rolloff_entity_ctx, ISP_ROLLOFF_INI_DATA);
15511543
1552
- //rolloff lsc_cfg.
1553
- isp_gen->rolloff_entity_ctx.rolloff_param->lsc_cfg = isp_gen->module_cfg.lens_cfg.lsc_cfg;
1544
+ for (m = 0; m < 11 * ROLLOFF_WIN_SIZE; m++) {
1545
+ isp_gen->rolloff_entity_ctx.rolloff_param->rolloff_ini.Rgain[m]
1546
+ = isp_gen->isp_ini_cfg.isp_tunning_settings.msc_tbl[(m / ROLLOFF_WIN_SIZE) + 1][m % ROLLOFF_WIN_SIZE];
1547
+ }
1548
+
1549
+ isp_rolloff_set_params_helper(&isp_gen->rolloff_entity_ctx, ISP_ROLLOFF_INI_DATA);
15541550
15551551 return 0;
15561552 }
....@@ -1809,16 +1805,15 @@
18091805 __isp_awb_run(isp_gen);
18101806
18111807 if (isp_gen->isp_ini_cfg.isp_test_settings.lsc_en) {
1812
-#if ISP_LIB_USE_ROLLOFF
1813
- __isp_rolloff_set_params(isp_gen);
1814
- __isp_rolloff_run(isp_gen);
1815
-#else
18161808 config_lens_table(isp_gen, isp_gen->af_entity_ctx.af_result.std_code_output);
1817
-#endif
18181809 }
18191810
18201811 #if (ISP_VERSION >= 521)
18211812 if (isp_gen->isp_ini_cfg.isp_test_settings.msc_en) {
1813
+ if (isp_gen->isp_ini_cfg.isp_tunning_settings.mff_mod >= 3) {
1814
+ __isp_rolloff_set_params(isp_gen);
1815
+ __isp_rolloff_run(isp_gen);
1816
+ }
18221817 config_msc_table(isp_gen, isp_gen->af_entity_ctx.af_result.std_code_output);
18231818 }
18241819 #endif