Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 56cefcf7 authored by Surajit Podder's avatar Surajit Podder Committed by Srinu Gorle
Browse files

msm: vidc: Fix downscaling support check



* Update scaling ratio check to use multiplication
  instead of division as precision is lost during
  integer division
* Update upscale ratio check to ratio of output to
  input w/h as ratio of input to output w/h will be
  0 in case of upscaling

Change-Id: Icee83c8cad4ae06517c32a52b506749630ae9006
Signed-off-by: default avatarSurajit Podder <spodder@codeaurora.org>
parent 0d88d69d
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -4526,14 +4526,14 @@ int msm_vidc_check_scaling_supported(struct msm_vidc_inst *inst)
	y_max = inst->capability.scale_y.max >> 16;

	if (input_height > output_height) {
		if (input_height/output_height > x_min) {
		if (input_height > x_min * output_height) {
			dprintk(VIDC_ERR,
				"Unsupported height downscale ratio %d vs %d\n",
				input_height/output_height, x_min);
			return -ENOTSUPP;
		}
	} else {
		if (input_height/output_height > x_max) {
		if (output_height > x_max * input_height) {
			dprintk(VIDC_ERR,
				"Unsupported height upscale ratio %d vs %d\n",
				input_height/output_height, x_max);
@@ -4541,14 +4541,14 @@ int msm_vidc_check_scaling_supported(struct msm_vidc_inst *inst)
		}
	}
	if (input_width > output_width) {
		if (input_width/output_width > y_min) {
		if (input_width > y_min * output_width) {
			dprintk(VIDC_ERR,
				"Unsupported width downscale ratio %d vs %d\n",
				input_width/output_width, y_min);
			return -ENOTSUPP;
		}
	} else {
		if (input_width/output_width > y_max) {
		if (output_width > y_max * input_width) {
			dprintk(VIDC_ERR,
				"Unsupported width upscale ratio %d vs %d\n",
				input_width/output_width, y_max);