Lines Matching full:ratio
52 * Constants for ratio calculation
302 * @ratio: Structure for ratio parameters.
307 const struct resizer_ratio *ratio) in resizer_set_ratio() argument
315 rgval |= ((ratio->horz - 1) << ISPRSZ_CNT_HRSZ_SHIFT) in resizer_set_ratio()
317 rgval |= ((ratio->vert - 1) << ISPRSZ_CNT_VRSZ_SHIFT) in resizer_set_ratio()
322 if (ratio->horz > MID_RESIZE_VALUE) in resizer_set_ratio()
328 if (ratio->vert > MID_RESIZE_VALUE) in resizer_set_ratio()
680 * @ratio : return calculated ratios
684 * has a fixed number of phases that depend on the resizing ratio. As the ratio
688 * The input/output/ratio relationship is given by the OMAP34xx TRM:
703 * we need to compute the highest resizing ratio that satisfies the following
715 * expression of the last inequality. The highest resizing ratio value will be
716 * achieved when b is equal to its maximum value of 255. That resizing ratio
733 * the ratio, depends on the ratio, we start with the 4-tap mode equations to
734 * compute an approximation of the ratio, and switch to the 7-tap mode equations
735 * if the approximation is higher than the ratio threshold.
737 * As the 7-tap mode equations will return a ratio smaller than or equal to the
738 * 4-tap mode equations, the resulting ratio could become lower than or equal to
739 * the ratio threshold. This 'equations loop' isn't an issue as long as the
741 * 4-tap mode equations ensure that, in case of values resulting in a 'ratio
742 * loop', the smallest of the ratio values will be used, never exceeding the
763 * the maximum value guarantees that the ratio value will never be smaller than
765 * ratio will thus result in a resizing factor slightly larger than the
772 * on the vertical resizing ratio. Fortunately, the output height doesn't
773 * depend on the horizontal resizing ratio. We can then start by computing the
774 * output height and the vertical ratio, and then move to computing the output
775 * width and the horizontal ratio.
780 struct resizer_ratio *ratio) in resizer_calc_ratios() argument
797 * compute the vertical resizing ratio. in resizer_calc_ratios()
805 ratio->vert = ((input->height - 4) * 256 + 255 - 16 - 32 * spv) in resizer_calc_ratios()
807 if (ratio->vert > MID_RESIZE_VALUE) in resizer_calc_ratios()
808 ratio->vert = ((input->height - 7) * 256 + 255 - 32 - 64 * spv) in resizer_calc_ratios()
810 ratio->vert = clamp_t(unsigned int, ratio->vert, in resizer_calc_ratios()
813 if (ratio->vert <= MID_RESIZE_VALUE) { in resizer_calc_ratios()
814 upscaled_height = (output->height - 1) * ratio->vert in resizer_calc_ratios()
818 upscaled_height = (output->height - 1) * ratio->vert in resizer_calc_ratios()
825 * capabilities. The maximum depends on the vertical resizing ratio. in resizer_calc_ratios()
830 if (ratio->vert <= MID_RESIZE_VALUE) { in resizer_calc_ratios()
871 width_alignment = ratio->vert < 256 ? 8 : 2; in resizer_calc_ratios()
876 ratio->horz = ((input->width - 7) * 256 + 255 - 16 - 32 * sph) in resizer_calc_ratios()
878 if (ratio->horz > MID_RESIZE_VALUE) in resizer_calc_ratios()
879 ratio->horz = ((input->width - 7) * 256 + 255 - 32 - 64 * sph) in resizer_calc_ratios()
881 ratio->horz = clamp_t(unsigned int, ratio->horz, in resizer_calc_ratios()
884 if (ratio->horz <= MID_RESIZE_VALUE) { in resizer_calc_ratios()
885 upscaled_width = (output->width - 1) * ratio->horz in resizer_calc_ratios()
889 upscaled_width = (output->width - 1) * ratio->horz in resizer_calc_ratios()
912 resizer_set_ratio(res, &res->ratio); in resizer_set_crop_params()
915 if (res->ratio.horz >= RESIZE_DIVISOR) in resizer_set_crop_params()
1188 /* Crop rectangle is constrained by the output size so that zoom ratio in resizer_try_crop()
1229 struct resizer_ratio ratio; in resizer_get_selection() local
1247 resizer_calc_ratios(res, &sel->r, format_source, &ratio); in resizer_get_selection()
1252 resizer_calc_ratios(res, &sel->r, format_source, &ratio); in resizer_get_selection()
1283 struct resizer_ratio ratio; in resizer_set_selection() local
1311 resizer_calc_ratios(res, &sel->r, &format_source, &ratio); in resizer_set_selection()
1334 res->ratio = ratio; in resizer_set_selection()
1379 struct resizer_ratio ratio; in resizer_try_format() local
1399 resizer_calc_ratios(res, &crop, fmt, &ratio); in resizer_try_format()
1533 &res->ratio); in resizer_set_format()