void pal_fix_fullSDR_table()

in meta-facebook/yv35-cl/src/sensor/plat_sdr.c [3055:3131]


void pal_fix_fullSDR_table()
{
	uint8_t fix_array_num;
	if (get_bic_class() == sys_class_1) {
		uint8_t board_revision = get_board_revision();
		switch (board_revision) {
		case SYS_BOARD_POC:
		case SYS_BOARD_EVT:
		case SYS_BOARD_EVT2:
			fix_array_num = sizeof(class1_adm1278_mp5990_sdr_table) /
					sizeof(class1_adm1278_mp5990_sdr_table[0]);
			while (fix_array_num) {
				add_fullSDR_table(
					class1_adm1278_mp5990_sdr_table[fix_array_num - 1]);
				fix_array_num--;
			}
			break;
		case SYS_BOARD_EVT3_EFUSE:
		case SYS_BOARD_DVT_EFUSE:
		case SYS_BOARD_MP_EFUSE:
			fix_array_num = sizeof(class1_adm1278_mp5990_sdr_table) /
					sizeof(class1_adm1278_mp5990_sdr_table[0]);
			while (fix_array_num) {
				add_fullSDR_table(
					class1_adm1278_mp5990_sdr_table[fix_array_num - 1]);
				fix_array_num--;
			}
			break;
		case SYS_BOARD_EVT3_HOTSWAP:
		case SYS_BOARD_DVT_HOTSWAP:
		case SYS_BOARD_MP_HOTSWAP:
			fix_array_num = sizeof(class1_adm1278_mp5990_sdr_table) /
					sizeof(class1_adm1278_mp5990_sdr_table[0]);
			while (fix_array_num) {
				add_fullSDR_table(
					class1_adm1278_mp5990_sdr_table[fix_array_num - 1]);
				fix_array_num--;
			}
			break;
		default:
			break;
		}

		// fix usage when fix_C2SDR_table is defined
		fix_array_num = sizeof(fix_C2SDR_table) / sizeof(fix_C2SDR_table[0]);
		while (fix_array_num) {
			for (int i = MBR_R; i >= threshold_UNR; --i) {
				if (i < MBR_M) {
					change_sensor_threshold(
						fix_C2SDR_table[fix_array_num - 1][0], i,
						fix_C2SDR_table[fix_array_num - 1][i + 1]);
				} else {
					change_sensor_MBR(
						fix_C2SDR_table[fix_array_num - 1][0], i,
						fix_C2SDR_table[fix_array_num - 1][i + 1]);
				}
			}
			fix_array_num--;
		}
	}
	if (get_1ou_status()) {
		// fix usage when fix_1ouSDR_table is defined
		fix_array_num = sizeof(fix_1ouSDR_table) / sizeof(fix_1ouSDR_table[0]);
		while (fix_array_num) {
			add_fullSDR_table(fix_1ouSDR_table[fix_array_num - 1]);
			fix_array_num--;
		}
	}
	if (get_2ou_status()) {
		// fix usage when fix_DVPSDR_table is defined
		fix_array_num = sizeof(fix_DVPSDR_table) / sizeof(fix_DVPSDR_table[0]);
		while (fix_array_num) {
			add_fullSDR_table(fix_DVPSDR_table[fix_array_num - 1]);
			fix_array_num--;
		}
	}
};