staging: media: ipu3: Fix AF x_start position when rightmost stripe is used
Subsystems (3)
PATCH v4 1/1 staging: media: ipu3: Fix AF x_start position when rightmost stripe is used
For the AF configuration, if the rightmost stripe is used, the AF scene will be at the incorrect location of the sensor.
The AF coordinate may be set to the right part of the sensor. This configuration would lead to x_start being greater than the down_scaled_stripes offset and the leftmost stripe would be disabled and only the rightmost stripe is used to control the AF coordinate. If the x_start doesn't perform any adjustments, the AF coordinate will be at the wrong place of the sensor since down_scaled_stripes offset would be the new zero of the coordinate system.
In this patch, if only the rightmost stripe is used, x_start should minus down_scaled_stripes offset to maintain its correctness of AF scene coordinate.
Changes in v2:
1. Remove the setting of the first stripe.
Changes in v4:
1. x_start is estimated based on the method for both stripes are enabled.
2. x_end is estimated based on the width.
--- drivers/staging/media/ipu3/ipu3-css-params.c | 9 +++++++++ 1 file changed, 9 insertions(+)
drivers/staging/media/ipu3/ipu3-css-params.c +9 -0
@@ -2556,6 +2556,15 @@ int imgu_css_cfg_acc(struct imgu_css *css, unsigned int pipe,/* Enable only for rightmost stripe, disable left */ acc->af.stripes[0 ].grid_cfg.y_start &= ~IPU3_UAPI_GRID_Y_START_EN ; + acc->af.stripes[1 ].grid_cfg.x_start = + (acc->af.stripes[1 ].grid_cfg.x_start - + acc->stripe.down_scaled_stripes[1 ].offset) & +IPU3_UAPI_GRID_START_MASK ; + b_w_log2 = acc->af.stripes[1 ].grid_cfg.block_width_log2; + acc->af.stripes[1 ].grid_cfg.x_end = +imgu_css_grid_end (acc->af.stripes[1 ].grid_cfg.x_start, + acc->af.stripes[1 ].grid_cfg.width, + b_w_log2); }else if (acc->af.config.grid_cfg.x_end <= acc->stripe.bds_out_stripes[0 ].width - min_overlap) {/* Enable only for leftmost stripe, disable right */
Signature · 1 line
2.35.1
Quoted 15 lines · Kate Hsuan
For the AF configuration, if the rightmost stripe is used, the AF scene will be at the incorrect location of the sensor.
The AF coordinate may be set to the right part of the sensor. This configuration would lead to
x_startbeing greater than thedown_scaled_stripesoffset and the leftmost stripe would be disabled and only the rightmost stripe is used to control the AF coordinate. If thex_startdoesn't perform any adjustments, the AF coordinate will be at the wrong place of the sensor sincedown_scaled_stripesoffset would be the new zero of the coordinate system.In this patch, if only the rightmost stripe is used,
x_startshould minusdown_scaled_stripesoffset to maintain its correctness of AF scene coordinate.
Quoted 8 lines
Changes in v2:
1. Remove the setting of the first stripe.Changes in v4:
1.x_startis estimated based on the method for both stripes are enabled.
2.x_endis estimated based on the width.Signed-off-by Kate Hsuan <[email protected]>
Thanks, Kate!
Applied to my tree.
Signature · 1 line
Sakari Ailus
Sakari Ailus
maintainerQuoted 15 lines · Kate Hsuan
For the AF configuration, if the rightmost stripe is used, the AF scene will be at the incorrect location of the sensor.
The AF coordinate may be set to the right part of the sensor. This configuration would lead to
x_startbeing greater than thedown_scaled_stripesoffset and the leftmost stripe would be disabled and only the rightmost stripe is used to control the AF coordinate. If thex_startdoesn't perform any adjustments, the AF coordinate will be at the wrong place of the sensor sincedown_scaled_stripesoffset would be the new zero of the coordinate system.In this patch, if only the rightmost stripe is used,
x_startshould minusdown_scaled_stripesoffset to maintain its correctness of AF scene coordinate.
Quoted 6 lines
Changes in v2:
1. Remove the setting of the first stripe.Changes in v4:
1.x_startis estimated based on the method for both stripes are enabled.
2.x_endis estimated based on the width.
Please put the changelog before '---' line. I've removed it from the commit message this time.
Signature · 1 line
Sakari Ailus
Hi Sakari,
Quoted 24 lines · Sakari Ailus
Quoted 15 lines · Kate Hsuan
For the AF configuration, if the rightmost stripe is used, the AF scene will be at the incorrect location of the sensor.
The AF coordinate may be set to the right part of the sensor. This configuration would lead to
x_startbeing greater than thedown_scaled_stripesoffset and the leftmost stripe would be disabled and only the rightmost stripe is used to control the AF coordinate. If thex_startdoesn't perform any adjustments, the AF coordinate will be at the wrong place of the sensor sincedown_scaled_stripesoffset would be the new zero of the coordinate system.In this patch, if only the rightmost stripe is used,
x_startshould minusdown_scaled_stripesoffset to maintain its correctness of AF scene coordinate.Quoted 6 lines
Changes in v2:
1. Remove the setting of the first stripe.Changes in v4:
1.x_startis estimated based on the method for both stripes are enabled.
2.x_endis estimated based on the width.
Quoted 6 lines
Please put the changelog before '---' line. I've removed it from the commit message this time.
--
Sakari Ailus
Okay, I got it.
Thank you.
Signature · 2 lines
BR, Kate
Sakari Ailus
maintainerQuoted 30 lines · Kate Hsuan
Hi Sakari,
Quoted 26 lines · Sakari Ailus
Quoted 15 lines · Kate Hsuan
For the AF configuration, if the rightmost stripe is used, the AF scene will be at the incorrect location of the sensor.
The AF coordinate may be set to the right part of the sensor. This configuration would lead to
x_startbeing greater than thedown_scaled_stripesoffset and the leftmost stripe would be disabled and only the rightmost stripe is used to control the AF coordinate. If thex_startdoesn't perform any adjustments, the AF coordinate will be at the wrong place of the sensor sincedown_scaled_stripesoffset would be the new zero of the coordinate system.In this patch, if only the rightmost stripe is used,
x_startshould minusdown_scaled_stripesoffset to maintain its correctness of AF scene coordinate.Quoted 6 lines
Changes in v2:
1. Remove the setting of the first stripe.Changes in v4:
1.x_startis estimated based on the method for both stripes are enabled.
2.x_endis estimated based on the width.Please put the changelog before '---' line. I've removed it from the commit message this time.
I meant to say after. Then it won't be part of the commit message.
Quoted 13 lines
Quoted 4 lines
--
Sakari AilusOkay, I got it.
Thank you.
Signature · 2 lines
BR, Kate
Signature · 1 line
Sakari Ailus
Hi Sakari,
Quoted 26 lines · Sakari Ailus
Quoted 24 lines · Kate Hsuan
Hi Sakari,
Quoted 20 lines · Sakari Ailus
Quoted 18 lines · Kate Hsuan
For the AF configuration, if the rightmost stripe is used, the AF scene will be at the incorrect location of the sensor.
The AF coordinate may be set to the right part of the sensor. This configuration would lead to
x_startbeing greater than thedown_scaled_stripesoffset and the leftmost stripe would be disabled and only the rightmost stripe is used to control the AF coordinate. If thex_startdoesn't perform any adjustments, the AF coordinate will be at the wrong place of the sensor sincedown_scaled_stripesoffset would be the new zero of the coordinate system.In this patch, if only the rightmost stripe is used,
x_startshould minusdown_scaled_stripesoffset to maintain its correctness of AF scene coordinate.Changes in v2:
1. Remove the setting of the first stripe.
Quoted 8 lines
Quoted 6 lines
Quoted 6 lines
Quoted 3 lines
Changes in v4:
1.x_startis estimated based on the method for both stripes are enabled.
2.x_endis estimated based on the width.Please put the changelog before '---' line. I've removed it from the commit message this time.
I meant to say after. Then it won't be part of the commit message.
Thank you. I understand :)
Quoted 18 lines
Quoted 6 lines
Quoted 5 lines
--
Sakari AilusQuoted 8 lines
Okay, I got it.
Thank you.
--
BR,
Kate--
Sakari Ailus
Signature · 2 lines
BR, Kate