/kernel/linux/linux-5.10/drivers/media/platform/omap/ |
D | omap_voutlib.c | 44 struct v4l2_framebuffer *fbuf, struct v4l2_rect *crop) in omap_vout_default_crop() argument 46 crop->width = (pix->width < fbuf->fmt.width) ? in omap_vout_default_crop() 48 crop->height = (pix->height < fbuf->fmt.height) ? in omap_vout_default_crop() 50 crop->width &= ~1; in omap_vout_default_crop() 51 crop->height &= ~1; in omap_vout_default_crop() 52 crop->left = ((pix->width - crop->width) >> 1) & ~1; in omap_vout_default_crop() 53 crop->top = ((pix->height - crop->height) >> 1) & ~1; in omap_vout_default_crop() 115 int omap_vout_new_window(struct v4l2_rect *crop, in omap_vout_new_window() argument 133 if ((crop->height/win->w.height) >= 2) in omap_vout_new_window() 134 crop->height = win->w.height * 2; in omap_vout_new_window() [all …]
|
D | omap_vout_vrfb.c | 322 struct v4l2_rect *crop = &vout->crop; in omap_vout_calculate_vrfb_offset() local 354 ctop = (pix->height - crop->height) - crop->top; in omap_vout_calculate_vrfb_offset() 355 cleft = (pix->width - crop->width) - crop->left; in omap_vout_calculate_vrfb_offset() 367 temp_ps * cleft + crop->top * temp_ps; in omap_vout_calculate_vrfb_offset() 370 cleft + crop->top * temp_ps + (line_length * in omap_vout_calculate_vrfb_offset() 371 ((crop->width / (vr_ps)) - 1) * ps); in omap_vout_calculate_vrfb_offset() 386 (crop->height - 1) * ps); in omap_vout_calculate_vrfb_offset() 395 temp_ps * crop->left + ctop * ps; in omap_vout_calculate_vrfb_offset() 398 temp_ps * crop->left + ctop * ps + in omap_vout_calculate_vrfb_offset() 399 (line_length * ((crop->width / vr_ps) - 1) * in omap_vout_calculate_vrfb_offset() [all …]
|
D | omap_voutlib.h | 16 struct v4l2_framebuffer *fbuf, struct v4l2_rect *crop); 19 struct v4l2_rect *crop, struct v4l2_window *win, 26 int omap_vout_new_window(struct v4l2_rect *crop, 31 struct v4l2_framebuffer *fbuf, struct v4l2_rect *crop,
|
/kernel/linux/linux-5.10/drivers/media/platform/sti/delta/ |
D | delta-debug.c | 25 s->crop.width, s->crop.height, in delta_streaminfo_str() 26 s->crop.left, s->crop.top, in delta_streaminfo_str() 46 f->crop.width, f->crop.height, in delta_frameinfo_str() 47 f->crop.left, f->crop.top, in delta_frameinfo_str()
|
/kernel/linux/linux-5.10/drivers/media/platform/vsp1/ |
D | vsp1_rpf.c | 251 struct v4l2_rect crop; in rpf_configure_partition() local 261 crop = *vsp1_rwpf_get_crop(rpf, rpf->entity.config); in rpf_configure_partition() 274 crop.width = pipe->partition->rpf.width; in rpf_configure_partition() 275 crop.left += pipe->partition->rpf.left; in rpf_configure_partition() 279 crop.height = round_down(crop.height / 2, fmtinfo->vsub); in rpf_configure_partition() 280 crop.top = round_down(crop.top / 2, fmtinfo->vsub); in rpf_configure_partition() 284 (crop.width << VI6_RPF_SRC_BSIZE_BHSIZE_SHIFT) | in rpf_configure_partition() 285 (crop.height << VI6_RPF_SRC_BSIZE_BVSIZE_SHIFT)); in rpf_configure_partition() 287 (crop.width << VI6_RPF_SRC_ESIZE_EHSIZE_SHIFT) | in rpf_configure_partition() 288 (crop.height << VI6_RPF_SRC_ESIZE_EVSIZE_SHIFT)); in rpf_configure_partition() [all …]
|
D | vsp1_hgt.c | 135 struct v4l2_rect *crop; in hgt_configure_stream() local 142 crop = vsp1_entity_get_pad_selection(entity, entity->config, in hgt_configure_stream() 151 (crop->left << VI6_HGT_OFFSET_HOFFSET_SHIFT) | in hgt_configure_stream() 152 (crop->top << VI6_HGT_OFFSET_VOFFSET_SHIFT)); in hgt_configure_stream() 154 (crop->width << VI6_HGT_SIZE_HSIZE_SHIFT) | in hgt_configure_stream() 155 (crop->height << VI6_HGT_SIZE_VSIZE_SHIFT)); in hgt_configure_stream() 167 hratio = crop->width * 2 / compose->width / 3; in hgt_configure_stream() 168 vratio = crop->height * 2 / compose->height / 3; in hgt_configure_stream()
|
D | vsp1_rwpf.c | 105 struct v4l2_rect *crop; in vsp1_rwpf_set_format() local 108 crop = vsp1_rwpf_get_crop(rwpf, config); in vsp1_rwpf_set_format() 109 crop->left = 0; in vsp1_rwpf_set_format() 110 crop->top = 0; in vsp1_rwpf_set_format() 111 crop->width = fmt->format.width; in vsp1_rwpf_set_format() 112 crop->height = fmt->format.height; in vsp1_rwpf_set_format() 185 struct v4l2_rect *crop; in vsp1_rwpf_set_selection() local 228 crop = vsp1_rwpf_get_crop(rwpf, config); in vsp1_rwpf_set_selection() 229 *crop = sel->r; in vsp1_rwpf_set_selection() 234 format->width = crop->width; in vsp1_rwpf_set_selection() [all …]
|
D | vsp1_hgo.c | 139 struct v4l2_rect *crop; in hgo_configure_stream() local 143 crop = vsp1_entity_get_pad_selection(entity, entity->config, in hgo_configure_stream() 152 (crop->left << VI6_HGO_OFFSET_HOFFSET_SHIFT) | in hgo_configure_stream() 153 (crop->top << VI6_HGO_OFFSET_VOFFSET_SHIFT)); in hgo_configure_stream() 155 (crop->width << VI6_HGO_SIZE_HSIZE_SHIFT) | in hgo_configure_stream() 156 (crop->height << VI6_HGO_SIZE_VSIZE_SHIFT)); in hgo_configure_stream() 164 hratio = crop->width * 2 / compose->width / 3; in hgo_configure_stream() 165 vratio = crop->height * 2 / compose->height / 3; in hgo_configure_stream()
|
D | vsp1_histo.c | 206 struct v4l2_rect *crop; in histo_get_selection() local 223 crop = vsp1_entity_get_pad_selection(&histo->entity, config, in histo_get_selection() 228 sel->r.width = crop->width; in histo_get_selection() 229 sel->r.height = crop->height; in histo_get_selection() 295 struct v4l2_rect *crop; in histo_set_compose() local 306 crop = vsp1_entity_get_pad_selection(&histo->entity, config, sel->pad, in histo_set_compose() 323 sel->r.width = clamp(sel->r.width, crop->width / 4, crop->width); in histo_set_compose() 324 ratio = 1 << (crop->width * 2 / sel->r.width / 3); in histo_set_compose() 325 sel->r.width = crop->width / ratio; in histo_set_compose() 328 sel->r.height = clamp(sel->r.height, crop->height / 4, crop->height); in histo_set_compose() [all …]
|
D | vsp1_uif.c | 199 const struct v4l2_rect *crop; in uif_configure_stream() local 206 crop = vsp1_entity_get_pad_selection(entity, entity->config, in uif_configure_stream() 209 left = crop->left; in uif_configure_stream() 210 width = crop->width; in uif_configure_stream() 219 vsp1_uif_write(uif, dlb, VI6_UIF_DISCOM_DOCMSPYR, crop->top); in uif_configure_stream() 221 vsp1_uif_write(uif, dlb, VI6_UIF_DISCOM_DOCMSZYR, crop->height); in uif_configure_stream()
|
/kernel/linux/linux-5.10/drivers/staging/media/imx/ |
D | imx-media-csi.c | 81 struct v4l2_rect crop; member 711 struct v4l2_rect crop; in csi_setup() local 724 crop = priv->crop; in csi_setup() 732 crop.width *= incc->cycles; in csi_setup() 735 ipu_csi_set_window(priv->csi, &crop); in csi_setup() 738 priv->crop.width == 2 * priv->compose.width, in csi_setup() 739 priv->crop.height == 2 * priv->compose.height); in csi_setup() 1181 return &priv->crop; in __csi_get_crop() 1196 struct v4l2_rect *crop, in csi_try_crop() argument 1203 crop->width = min_t(__u32, infmt->width, crop->width); in csi_try_crop() [all …]
|
/kernel/linux/linux-5.10/drivers/staging/media/rkisp1/ |
D | rkisp1-common.c | 19 void rkisp1_sd_adjust_crop_rect(struct v4l2_rect *crop, in rkisp1_sd_adjust_crop_rect() argument 22 v4l2_rect_set_min_size(crop, &rkisp1_sd_min_crop); in rkisp1_sd_adjust_crop_rect() 23 v4l2_rect_map_inside(crop, bounds); in rkisp1_sd_adjust_crop_rect() 26 void rkisp1_sd_adjust_crop(struct v4l2_rect *crop, in rkisp1_sd_adjust_crop() argument 36 rkisp1_sd_adjust_crop_rect(crop, &crop_bounds); in rkisp1_sd_adjust_crop()
|
/kernel/linux/linux-5.10/Documentation/userspace-api/media/v4l/ |
D | crop.rst | 15 equivalent in the SELECTION API. See :ref:`selection-vs-crop` for a 64 .. kernel-figure:: crop.svg 65 :alt: crop.svg 170 struct v4l2_crop crop; 180 memset (&crop, 0, sizeof (crop)); 181 crop.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; 182 crop.c = cropcap.defrect; 186 if (-1 == ioctl (fd, VIDIOC_S_CROP, &crop) 229 struct v4l2_crop crop; 239 memset (&crop, 0, sizeof (crop)); [all …]
|
D | vidioc-subdev-g-crop.rst | 13 VIDIOC_SUBDEV_G_CROP - VIDIOC_SUBDEV_S_CROP - Get or set the crop rectangle on a subdev pad 44 To retrieve the current crop rectangle applications set the ``pad`` 53 To change the current crop rectangle applications set both the ``pad`` 56 structure. The driver verifies the requested crop rectangle, adjusts it 63 to ``V4L2_SUBDEV_FORMAT_TRY``. When set, 'try' crop rectangles are not 65 crop rectangles and stored in the sub-device file handle. Two 74 Drivers must not return an error solely because the requested crop 111 The crop rectangle can't be changed because the pad is currently
|
/kernel/linux/linux-5.10/drivers/staging/media/atomisp/pci/ |
D | atomisp_subdev.c | 266 return &isp_sd->fmt[pad].crop; in atomisp_subdev_get_rect() 290 struct v4l2_rect *crop[ATOMISP_SUBDEV_PADS_NUM], in isp_get_fmt_rect() 297 crop[i] = atomisp_subdev_get_rect(sd, cfg, which, i, in isp_get_fmt_rect() 310 struct v4l2_rect *crop[ATOMISP_SUBDEV_PADS_NUM], in isp_subdev_propagate() local 316 isp_get_fmt_rect(sd, cfg, which, ffmt, crop, comp); in isp_subdev_propagate() 376 struct v4l2_rect *crop[ATOMISP_SUBDEV_PADS_NUM], in atomisp_subdev_set_selection() local 385 isp_get_fmt_rect(sd, cfg, which, ffmt, crop, comp); in atomisp_subdev_set_selection() 403 crop[pad]->width = ffmt[pad]->width; in atomisp_subdev_set_selection() 404 crop[pad]->height = ffmt[pad]->height; in atomisp_subdev_set_selection() 409 "ov2722", 6) && crop[pad]->height == 1092) { in atomisp_subdev_set_selection() [all …]
|
/kernel/linux/linux-5.10/drivers/media/platform/omap3isp/ |
D | ispresizer.c | 139 return &res->crop.request; in __resizer_get_crop() 505 clock = div_u64((u64)limit * res->crop.active.height, ofmt->height); in omap3isp_resizer_max_rate() 507 *max_rate = div_u64((u64)clock * res->crop.active.width, ofmt->width); in omap3isp_resizer_max_rate() 586 requests_per_frame = DIV_ROUND_UP(res->crop.active.width * 2, 256) in resizer_adjust_bandwidth() 587 * res->crop.active.height; in resizer_adjust_bandwidth() 924 res->crop_offset = (res->crop.active.top * input->width + in resizer_set_crop_params() 925 res->crop.active.left) * 2; in resizer_set_crop_params() 944 resizer_set_start(res, res->crop.active.left * 2, in resizer_set_crop_params() 945 res->crop.active.top); in resizer_set_crop_params() 952 resizer_set_input_size(res, res->crop.active.width, in resizer_set_crop_params() [all …]
|
/kernel/linux/linux-5.10/drivers/media/platform/mtk-mdp/ |
D | mtk_mdp_regs.c | 74 config->crop_x = frame->crop.left; in mtk_mdp_hw_set_in_size() 75 config->crop_y = frame->crop.top; in mtk_mdp_hw_set_in_size() 78 config->crop_w = frame->crop.width; in mtk_mdp_hw_set_in_size() 79 config->crop_h = frame->crop.height; in mtk_mdp_hw_set_in_size() 109 config->crop_x = frame->crop.left; in mtk_mdp_hw_set_out_size() 110 config->crop_y = frame->crop.top; in mtk_mdp_hw_set_out_size() 111 config->crop_w = frame->crop.width; in mtk_mdp_hw_set_out_size() 112 config->crop_h = frame->crop.height; in mtk_mdp_hw_set_out_size()
|
/kernel/linux/linux-5.10/Documentation/driver-api/media/drivers/ |
D | sh_mobile_ceu_camera.rst | 76 2. Calculate "effective" input crop (sensor subwindow) - CEU crop scaled back at 101 8. Calculate new CEU crop - apply sensor scales to previously calculated 102 "effective" crop: 107 9. Use CEU cropping to crop to the new window: 119 The :ref:`V4L2 crop API <crop-scale>` says: 132 to 2 : 2', target crop 5 : 5', current output format 6' - 6. 142 6. Calculate and apply host crop: 6 - 7 = (5 - 2) * (6' - 6) / (5' - 5)
|
/kernel/linux/linux-5.10/drivers/media/i2c/ |
D | mt9m032.c | 150 struct v4l2_rect crop; member 183 struct v4l2_rect *crop = &sensor->crop; in mt9m032_update_timing() local 191 row_time = mt9m032_row_time(sensor, crop->width); in mt9m032_update_timing() 195 - crop->height; in mt9m032_update_timing() 201 div_u64((crop->height + MT9M032_VBLANK_MAX) * in mt9m032_update_timing() 206 - crop->height; in mt9m032_update_timing() 221 sensor->crop.width - 1); in mt9m032_update_geom_timing() 224 sensor->crop.height - 1); in mt9m032_update_geom_timing() 227 sensor->crop.left); in mt9m032_update_geom_timing() 230 sensor->crop.top); in mt9m032_update_geom_timing() [all …]
|
D | mt9t001.c | 126 struct v4l2_rect crop; member 276 return &mt9t001->crop; in __mt9t001_get_pad_crop() 289 struct v4l2_rect *crop = &mt9t001->crop; in mt9t001_s_stream() local 306 hratio = DIV_ROUND_CLOSEST(crop->width, format->width); in mt9t001_s_stream() 307 vratio = DIV_ROUND_CLOSEST(crop->height, format->height); in mt9t001_s_stream() 317 ret = mt9t001_write(client, MT9T001_COLUMN_START, crop->left); in mt9t001_s_stream() 321 ret = mt9t001_write(client, MT9T001_ROW_START, crop->top); in mt9t001_s_stream() 325 ret = mt9t001_write(client, MT9T001_WINDOW_WIDTH, crop->width - 1); in mt9t001_s_stream() 329 ret = mt9t001_write(client, MT9T001_WINDOW_HEIGHT, crop->height - 1); in mt9t001_s_stream() 799 struct v4l2_rect *crop; in mt9t001_open() local [all …]
|
D | mt9v032.c | 189 struct v4l2_rect crop; member 248 struct v4l2_rect *crop = &mt9v032->crop; in mt9v032_update_hblank() local 254 min_hblank = max_t(int, mt9v032->model->data->min_row_time - crop->width, in mt9v032_update_hblank() 373 return &mt9v032->crop; in __mt9v032_get_pad_crop() 384 struct v4l2_rect *crop = &mt9v032->crop; in mt9v032_s_stream() local 403 ret = regmap_write(map, MT9V032_COLUMN_START, crop->left); in mt9v032_s_stream() 407 ret = regmap_write(map, MT9V032_ROW_START, crop->top); in mt9v032_s_stream() 411 ret = regmap_write(map, MT9V032_WINDOW_WIDTH, crop->width); in mt9v032_s_stream() 415 ret = regmap_write(map, MT9V032_WINDOW_HEIGHT, crop->height); in mt9v032_s_stream() 923 struct v4l2_rect *crop; in mt9v032_open() local [all …]
|
D | mt9p031.c | 124 struct v4l2_rect crop; /* Sensor window */ member 386 const struct v4l2_rect *crop = &mt9p031->crop; in mt9p031_set_params() local 401 ret = mt9p031_write(client, MT9P031_COLUMN_START, crop->left); in mt9p031_set_params() 404 ret = mt9p031_write(client, MT9P031_ROW_START, crop->top); in mt9p031_set_params() 407 ret = mt9p031_write(client, MT9P031_WINDOW_WIDTH, crop->width - 1); in mt9p031_set_params() 410 ret = mt9p031_write(client, MT9P031_WINDOW_HEIGHT, crop->height - 1); in mt9p031_set_params() 417 xskip = DIV_ROUND_CLOSEST(crop->width, format->width); in mt9p031_set_params() 418 yskip = DIV_ROUND_CLOSEST(crop->height, format->height); in mt9p031_set_params() 552 return &mt9p031->crop; in __mt9p031_get_pad_crop() 970 struct v4l2_rect *crop; in mt9p031_open() local [all …]
|
/kernel/linux/linux-5.10/drivers/media/platform/exynos-gsc/ |
D | gsc-core.c | 234 frame->crop.width = width; in gsc_set_frame_size() 235 frame->crop.height = height; in gsc_set_frame_size() 236 frame->crop.left = 0; in gsc_set_frame_size() 237 frame->crop.top = 0; in gsc_set_frame_size() 292 remainder = s_frame->crop.width % (*wratio * walign); in gsc_check_src_scale_info() 294 s_frame->crop.width -= remainder; in gsc_check_src_scale_info() 295 gsc_cal_prescaler_ratio(var, s_frame->crop.width, tx, wratio); in gsc_check_src_scale_info() 297 s_frame->crop.width + remainder, s_frame->crop.width); in gsc_check_src_scale_info() 300 remainder = s_frame->crop.height % (*hratio * halign); in gsc_check_src_scale_info() 302 s_frame->crop.height -= remainder; in gsc_check_src_scale_info() [all …]
|
D | gsc-regs.c | 127 cfg = GSC_SRCIMG_OFFSET_X(frame->crop.left); in gsc_hw_set_in_size() 128 cfg |= GSC_SRCIMG_OFFSET_Y(frame->crop.top); in gsc_hw_set_in_size() 137 cfg = GSC_CROPPED_WIDTH(frame->crop.width); in gsc_hw_set_in_size() 138 cfg |= GSC_CROPPED_HEIGHT(frame->crop.height); in gsc_hw_set_in_size() 241 cfg = GSC_DSTIMG_OFFSET_X(frame->crop.left); in gsc_hw_set_out_size() 242 cfg |= GSC_DSTIMG_OFFSET_Y(frame->crop.top); in gsc_hw_set_out_size() 253 cfg = GSC_SCALED_WIDTH(frame->crop.height); in gsc_hw_set_out_size() 254 cfg |= GSC_SCALED_HEIGHT(frame->crop.width); in gsc_hw_set_out_size() 256 cfg = GSC_SCALED_WIDTH(frame->crop.width); in gsc_hw_set_out_size() 257 cfg |= GSC_SCALED_HEIGHT(frame->crop.height); in gsc_hw_set_out_size()
|
/kernel/linux/linux-5.10/drivers/media/pci/bt8xx/ |
D | bttv-risc.c | 352 geo->crop = ((width>>8)&0x03) | ((geo->hdelay>>6)&0x0c) | in bttv_calc_geo_old() 376 const struct v4l2_rect * crop) in bttv_calc_geo() argument 382 if ((crop->left == tvnorm->cropcap.defrect.left in bttv_calc_geo() 383 && crop->top == tvnorm->cropcap.defrect.top in bttv_calc_geo() 384 && crop->width == tvnorm->cropcap.defrect.width in bttv_calc_geo() 385 && crop->height == tvnorm->cropcap.defrect.height in bttv_calc_geo() 395 c_width = min((unsigned int) crop->width, width * 16); in bttv_calc_geo() 396 c_height = min((unsigned int) crop->height, height * 16); in bttv_calc_geo() 401 geo->hdelay = ((crop->left * width + c_width) / c_width) & ~1; in bttv_calc_geo() 404 geo->vdelay = crop->top - tvnorm->cropcap.bounds.top + MIN_VDELAY; in bttv_calc_geo() [all …]
|