ipa: ipu3: af: enforce grid size restrictions
Provide enforcement of the selection of the block_{width,height}_log2 parameters to the capabilities of the hardware. While this selection is currently hardcoded to the minimum, providing the restriction now allows for further dynamic sizing in the future and documents the restrictions directly in code, making use of the already existing constants. Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Umang Jain <umang.jain@ideasonboard.com>
This commit is contained in:
parent
d630cc06db
commit
b0c2484d61
1 changed files with 19 additions and 0 deletions
|
@ -168,6 +168,25 @@ int Af::configure(IPAContext &context, const IPAConfigInfo &configInfo)
|
||||||
grid.height = kAfMinGridHeight;
|
grid.height = kAfMinGridHeight;
|
||||||
grid.block_width_log2 = kAfMinGridBlockWidth;
|
grid.block_width_log2 = kAfMinGridBlockWidth;
|
||||||
grid.block_height_log2 = kAfMinGridBlockHeight;
|
grid.block_height_log2 = kAfMinGridBlockHeight;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* \todo - while this clamping code is effectively a no-op, it satisfies
|
||||||
|
* the compiler that the constant definitions of the hardware limits
|
||||||
|
* are used, and paves the way to support dynamic grid sizing in the
|
||||||
|
* future. While the block_{width,height}_log2 remain assigned to the
|
||||||
|
* minimum, this code should be optimized out by the compiler.
|
||||||
|
*/
|
||||||
|
grid.width = std::clamp(grid.width, kAfMinGridWidth, kAfMaxGridWidth);
|
||||||
|
grid.height = std::clamp(grid.height, kAfMinGridHeight, kAfMaxGridHeight);
|
||||||
|
|
||||||
|
grid.block_width_log2 = std::clamp(grid.block_width_log2,
|
||||||
|
kAfMinGridBlockWidth,
|
||||||
|
kAfMaxGridBlockWidth);
|
||||||
|
|
||||||
|
grid.block_height_log2 = std::clamp(grid.block_height_log2,
|
||||||
|
kAfMinGridBlockHeight,
|
||||||
|
kAfMaxGridBlockHeight);
|
||||||
|
|
||||||
grid.height_per_slice = kAfDefaultHeightPerSlice;
|
grid.height_per_slice = kAfDefaultHeightPerSlice;
|
||||||
|
|
||||||
/* x_start and y start are default to BDS center */
|
/* x_start and y start are default to BDS center */
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue