From aab083c48285531cbd0ec1109f03aa6f11876ffe Mon Sep 17 00:00:00 2001 From: Lokesh Gupta Date: Thu, 3 Nov 2011 20:57:40 +0100 Subject: [PATCH] [PORT FROM R2] atomisp: shading table re-interpolation trigger BZ: 17272 When the shading table is changed or the binning factor is changed the shading table should be reset for all modes (preview, capture and video). This will enforce shading table re-interpolation when these modes are started. Change-Id: I72f2db2fff40cde7fdedd8a0d74aeab33d9656bd Orig-Change-Id: If376c4734a7a159dd6b19b919844c18b24d60b31 Signed-off-by: Lokesh Gupta Reviewed-on: http://android.intel.com:8080/23093 Reviewed-by: Kruger, Jozef Reviewed-by: Cohen, David A Reviewed-by: Koski, Anttu Tested-by: Koski, Anttu Reviewed-by: buildbot Tested-by: buildbot Reviewed-on: http://android.intel.com:8080/27996 Reviewed-by: Tuominen, TeemuX --- drivers/media/video/atomisp/css/sh_css.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/drivers/media/video/atomisp/css/sh_css.c b/drivers/media/video/atomisp/css/sh_css.c index 3e69424..f999679 100644 --- a/drivers/media/video/atomisp/css/sh_css.c +++ b/drivers/media/video/atomisp/css/sh_css.c @@ -323,6 +323,27 @@ static struct sh_css_binary_descr preview_descr, video_descr, capture_pp_descr; +static void reset_mode_shading_tables(void) +{ + if (my_css.preview_settings.shading_table) { + sh_css_shading_table_free( + my_css.preview_settings.shading_table); + my_css.preview_settings.shading_table = NULL; + } + + if (my_css.capture_settings.shading_table) { + sh_css_shading_table_free( + my_css.capture_settings.shading_table); + my_css.capture_settings.shading_table = NULL; + } + + if (my_css.video_settings.shading_table) { + sh_css_shading_table_free( + my_css.video_settings.shading_table); + my_css.video_settings.shading_table = NULL; + } +} + static enum sh_css_err check_frame_info(struct sh_css_frame_info *info) { @@ -1498,6 +1519,9 @@ sh_css_overlay_set_for_viewfinder(const struct sh_css_overlay *overlay) void sh_css_set_shading_table(const struct sh_css_shading_table *table) { + if (table != my_css.shading_table) + reset_mode_shading_tables(); + my_css.shading_table = table; } @@ -2113,6 +2137,8 @@ sh_css_input_get_format(enum sh_css_input_format *format) void sh_css_input_set_binning_factor(unsigned int binning_factor) { + if (binning_factor != my_css.sensor_binning) + reset_mode_shading_tables(); my_css.sensor_binning = binning_factor; } -- 2.7.4