[PATCH 12/13] media: atomisp: fix a bug when applying the binning factor

From: Mauro Carvalho Chehab
Date: Wed Nov 17 2021 - 04:26:24 EST


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