From 51fc6bcfd00b045c182b2b31b37a1c86996d88a4 Mon Sep 17 00:00:00 2001 From: wangdw10 Date: Mon, 3 Dec 2018 16:43:24 +0800 Subject: [PATCH] [COMMON] fimc-is2: Add AWB limit check for 2X5SP Change-Id: Ib6c4ed307826fad3f3d64dd5f4627630ca7e57f0 Signed-off-by: wangdw10 --- .../module_framework/cis/fimc-is-cis-2x5sp.c | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/drivers/media/platform/exynos/fimc-is2/sensor/module_framework/cis/fimc-is-cis-2x5sp.c b/drivers/media/platform/exynos/fimc-is2/sensor/module_framework/cis/fimc-is-cis-2x5sp.c index c569d1b1c0c8..bb9dc5e4c217 100644 --- a/drivers/media/platform/exynos/fimc-is2/sensor/module_framework/cis/fimc-is-cis-2x5sp.c +++ b/drivers/media/platform/exynos/fimc-is2/sensor/module_framework/cis/fimc-is-cis-2x5sp.c @@ -191,6 +191,36 @@ int sensor_2x5sp_cis_otp_check_awb_ratio(char *unit, char *golden, char *limit) return ret; } +int sensor_2x5sp_cis_otp_check_awb_ratio(char *unit, char *golden, char *limit) +{ + int ret = 0; + + float r_g_min = (float)(limit[0]) / 1000; + float r_g_max = (float)(limit[1]) / 1000; + float b_g_min = (float)(limit[2]) / 1000; + float b_g_max = (float)(limit[3]) / 1000; + + float rg = (float) ((unit[1]) | (unit[0] << 8)) / 16384; + float bg = (float) ((unit[3]) | (unit[2] << 8)) / 16384; + + float golden_rg = (float) ((golden[1]) | (golden[0] << 8)) / 16384; + float golden_bg = (float) ((golden[3]) | (golden[2] << 8)) / 16384; + + if (rg < (golden_rg - r_g_min) || rg > (golden_rg + r_g_max)) { + err("%s(): Final RG calibration factors out of range! rg=0x%x golden_rg=0x%x", + __func__, (unit[1] | unit[0] << 8), (golden[1] | golden[0] << 8)); + ret = 1; + } + + if (bg < (golden_bg - b_g_min) || bg > (golden_bg + b_g_max)) { + err("%s(): Final BG calibration factors out of range! bg=0x%x, golden_bg=0x%x", + __func__, (unit[3] | unit[2] << 8), (golden[3] | golden[2] << 8)); + ret = 1; + } + + return ret; +} + int sensor_2x5sp_cis_otp_check_crc(struct v4l2_subdev *subdev, struct fimc_is_device_sensor *device, int group) { -- 2.20.1