From: Wooyeon Kim Date: Fri, 25 Jan 2019 07:20:38 +0000 (+0900) Subject: [COMMON] fimc-is2: fix some wrong print of DW9839 actual position X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=3c743ad05782f451a762f62654c7d094c5b4d6f7;p=GitHub%2FLineageOS%2Fandroid_kernel_motorola_exynos9610.git [COMMON] fimc-is2: fix some wrong print of DW9839 actual position - if ADC_MSB register is read wrong, wrong actual position is caculated PR JIRA ID: CPR-624 Change-Id: Ib9c0e94729cc08f005df1297a8a0b9f414c4faee Signed-off-by: Wooyeon Kim --- diff --git a/drivers/media/platform/exynos/fimc-is2/sensor/module_framework/actuator/fimc-is-actuator-dw9839.c b/drivers/media/platform/exynos/fimc-is2/sensor/module_framework/actuator/fimc-is-actuator-dw9839.c index d07f7063c779..f3afbb6eb8b5 100644 --- a/drivers/media/platform/exynos/fimc-is2/sensor/module_framework/actuator/fimc-is-actuator-dw9839.c +++ b/drivers/media/platform/exynos/fimc-is2/sensor/module_framework/actuator/fimc-is-actuator-dw9839.c @@ -540,7 +540,8 @@ int sensor_dw9839_actuator_get_actual_position(struct v4l2_subdev *subdev, u32 * if (ret < 0) goto p_err; - adc_pos = (pos_msb << 8) | pos_lsb; + /* pos_msb uses [1:0] bit */ + adc_pos = ((pos_msb & 0x3) << 8) | pos_lsb; /* convert adc_pos to 10bit position * ncal <= adc_pos <= pcal ------> 0 <= 10bit_pos <= 1023 @@ -551,8 +552,8 @@ int sensor_dw9839_actuator_get_actual_position(struct v4l2_subdev *subdev, u32 * if (*info > 1023) *info = 1023; - dbg_actuator("%s: pcal(%d), ncal(%d), adc_pos(%d) --> target_pos(%d) actual pos(%d)\n", - __func__, actuator_info->pcal, actuator_info->ncal, adc_pos, + dbg_actuator("%s: cal(p:%d, n:%d), adc_pos(msb:%d, lsb:%d, sum:%d) -> target_pos(%d) actual pos(%d)\n", + __func__, actuator_info->pcal, actuator_info->ncal, pos_msb & 0x3, pos_lsb, adc_pos, actuator->position, *info); #ifdef DEBUG_ACTUATOR_TIME