1*e6938cc1SHelen Koike // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2*e6938cc1SHelen Koike /*
3*e6938cc1SHelen Koike  * Rockchip ISP1 Driver - Common definitions
4*e6938cc1SHelen Koike  *
5*e6938cc1SHelen Koike  * Copyright (C) 2019 Collabora, Ltd.
6*e6938cc1SHelen Koike  */
7*e6938cc1SHelen Koike 
8*e6938cc1SHelen Koike #include <media/v4l2-rect.h>
9*e6938cc1SHelen Koike 
10*e6938cc1SHelen Koike #include "rkisp1-common.h"
11*e6938cc1SHelen Koike 
12*e6938cc1SHelen Koike static const struct v4l2_rect rkisp1_sd_min_crop = {
13*e6938cc1SHelen Koike 	.width = RKISP1_ISP_MIN_WIDTH,
14*e6938cc1SHelen Koike 	.height = RKISP1_ISP_MIN_HEIGHT,
15*e6938cc1SHelen Koike 	.top = 0,
16*e6938cc1SHelen Koike 	.left = 0,
17*e6938cc1SHelen Koike };
18*e6938cc1SHelen Koike 
19*e6938cc1SHelen Koike void rkisp1_sd_adjust_crop_rect(struct v4l2_rect *crop,
20*e6938cc1SHelen Koike 				const struct v4l2_rect *bounds)
21*e6938cc1SHelen Koike {
22*e6938cc1SHelen Koike 	v4l2_rect_set_min_size(crop, &rkisp1_sd_min_crop);
23*e6938cc1SHelen Koike 	v4l2_rect_map_inside(crop, bounds);
24*e6938cc1SHelen Koike }
25*e6938cc1SHelen Koike 
26*e6938cc1SHelen Koike void rkisp1_sd_adjust_crop(struct v4l2_rect *crop,
27*e6938cc1SHelen Koike 			   const struct v4l2_mbus_framefmt *bounds)
28*e6938cc1SHelen Koike {
29*e6938cc1SHelen Koike 	struct v4l2_rect crop_bounds = {
30*e6938cc1SHelen Koike 		.left = 0,
31*e6938cc1SHelen Koike 		.top = 0,
32*e6938cc1SHelen Koike 		.width = bounds->width,
33*e6938cc1SHelen Koike 		.height = bounds->height,
34*e6938cc1SHelen Koike 	};
35*e6938cc1SHelen Koike 
36*e6938cc1SHelen Koike 	rkisp1_sd_adjust_crop_rect(crop, &crop_bounds);
37*e6938cc1SHelen Koike }
38