mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-10 06:09:23 -04:00
msm: camera: ife: Adjust epoch configuration
In case if calculated epoch is more than last active line, then there is a chance that calculated epoch is closer to EOF. This results in missing Epoch notification at CRM. Check if calculated epoch is greater than half of last active line, then configure epoch at half the active lines. CRs-Fixed: 2781565 Change-Id: Icb44d2e0e72b4ff36bd500ce51016cce418ff205 Signed-off-by: Shravya Samala <shravyas@codeaurora.org>
This commit is contained in:
parent
4e9f4848db
commit
ab2e87cde1
4 changed files with 15 additions and 12 deletions
|
|
@ -1972,10 +1972,10 @@ static int cam_tfe_camif_resource_start(
|
|||
|
||||
/* Epoch config */
|
||||
epoch0_irq_mask = (((rsrc_data->last_line + rsrc_data->vbi_value) -
|
||||
rsrc_data->first_line) / 2) +
|
||||
rsrc_data->first_line;
|
||||
if (epoch0_irq_mask > rsrc_data->last_line)
|
||||
epoch0_irq_mask = rsrc_data->last_line;
|
||||
rsrc_data->first_line) / 2);
|
||||
if (epoch0_irq_mask > (rsrc_data->last_line - rsrc_data->first_line))
|
||||
epoch0_irq_mask = (rsrc_data->last_line -
|
||||
rsrc_data->first_line);
|
||||
|
||||
epoch1_irq_mask = rsrc_data->reg_data->epoch_line_cfg &
|
||||
0xFFFF;
|
||||
|
|
|
|||
|
|
@ -426,10 +426,11 @@ static int cam_vfe_camif_resource_start(
|
|||
default:
|
||||
epoch0_irq_mask = (((rsrc_data->last_line +
|
||||
rsrc_data->vbi_value) -
|
||||
rsrc_data->first_line) / 2) +
|
||||
rsrc_data->first_line) / 2);
|
||||
if ((epoch0_irq_mask) >
|
||||
(rsrc_data->last_line - rsrc_data->first_line))
|
||||
epoch0_irq_mask = rsrc_data->last_line -
|
||||
rsrc_data->first_line;
|
||||
if (epoch0_irq_mask > rsrc_data->last_line)
|
||||
epoch0_irq_mask = rsrc_data->last_line;
|
||||
|
||||
epoch1_irq_mask = rsrc_data->reg_data->epoch_line_cfg &
|
||||
0xFFFF;
|
||||
|
|
|
|||
|
|
@ -471,8 +471,10 @@ static int cam_vfe_camif_ver3_resource_start(
|
|||
epoch0_line_cfg = ((rsrc_data->last_line +
|
||||
rsrc_data->vbi_value) -
|
||||
rsrc_data->first_line) / 4;
|
||||
if (epoch0_line_cfg > rsrc_data->last_line)
|
||||
epoch0_line_cfg = rsrc_data->last_line;
|
||||
if ((epoch0_line_cfg * 2) >
|
||||
(rsrc_data->last_line - rsrc_data->first_line))
|
||||
epoch0_line_cfg = (rsrc_data->last_line -
|
||||
rsrc_data->first_line)/2;
|
||||
/* epoch line cfg will still be configured at midpoint of the
|
||||
* frame width. We use '/ 4' instead of '/ 2'
|
||||
* cause it is multipixel path
|
||||
|
|
|
|||
|
|
@ -307,9 +307,9 @@ static int cam_vfe_fe_resource_start(
|
|||
|
||||
/* epoch config */
|
||||
epoch0_irq_mask = (((rsrc_data->last_line + rsrc_data->vbi_value) -
|
||||
rsrc_data->first_line) / 2) + rsrc_data->first_line;
|
||||
if (epoch0_irq_mask > rsrc_data->last_line)
|
||||
epoch0_irq_mask = rsrc_data->last_line;
|
||||
rsrc_data->first_line) / 2);
|
||||
if (epoch0_irq_mask > (rsrc_data->last_line - rsrc_data->first_line))
|
||||
epoch0_irq_mask = rsrc_data->last_line - rsrc_data->first_line;
|
||||
|
||||
epoch1_irq_mask = rsrc_data->reg_data->epoch_line_cfg & 0xFFFF;
|
||||
computed_epoch_line_cfg = (epoch0_irq_mask << 16) | epoch1_irq_mask;
|
||||
|
|
|
|||
Loading…
Reference in a new issue