The binning factor is actually a shift value, where 0 means to not touch the value. This is propagated from the sensors' properties: .bin_factor_x .bin_factor_y At their resolution setting tables. Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@xxxxxxxxxx> --- To avoid mailbombing on a large number of people, only mailing lists were C/C on the cover. See [PATCH 00/13] at: https://lore.kernel.org/all/cover.1637140900.git.mchehab+huawei@xxxxxxxxxx/ .../staging/media/atomisp/pci/sh_css_param_shading.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/staging/media/atomisp/pci/sh_css_param_shading.c b/drivers/staging/media/atomisp/pci/sh_css_param_shading.c index 90b5f9014c5e..005b0ab41588 100644 --- a/drivers/staging/media/atomisp/pci/sh_css_param_shading.c +++ b/drivers/staging/media/atomisp/pci/sh_css_param_shading.c @@ -283,16 +283,16 @@ prepare_shading_table(const struct ia_css_shading_table *in_table, * by cropping the non-binned part of the shading table and then * increasing the size of a grid cell with this same binning factor. */ - input_width *= sensor_binning; - input_height *= sensor_binning; + input_width <<= sensor_binning; + input_height <<= sensor_binning; /* * We also scale the padding by the same binning factor. This will * make it much easier later on to calculate the padding of the * shading table. */ - left_padding *= sensor_binning; - right_padding *= sensor_binning; - top_padding *= sensor_binning; + left_padding <<= sensor_binning; + right_padding <<= sensor_binning; + top_padding <<= sensor_binning; /* * during simulation, the used resolution can exceed the sensor -- 2.33.1