Lines Matching full:sel

2276 				   struct v4l2_subdev_selection *sel,  in ccs_set_compose_binner()  argument
2285 crops[CCS_PAD_SINK]->width, sel->r.width, in ccs_set_compose_binner()
2286 crops[CCS_PAD_SINK]->height, sel->r.height, sel->flags); in ccs_set_compose_binner()
2293 sel->r.width, in ccs_set_compose_binner()
2296 sel->r.height, sel->flags); in ccs_set_compose_binner()
2304 if (sel->which == V4L2_SUBDEV_FORMAT_ACTIVE) { in ccs_set_compose_binner()
2309 sel->r.width = (crops[CCS_PAD_SINK]->width / binh) & ~1; in ccs_set_compose_binner()
2310 sel->r.height = (crops[CCS_PAD_SINK]->height / binv) & ~1; in ccs_set_compose_binner()
2324 struct v4l2_subdev_selection *sel, in ccs_set_compose_scaler() argument
2338 sel->r.width = min_t(unsigned int, sel->r.width, in ccs_set_compose_scaler()
2340 sel->r.height = min_t(unsigned int, sel->r.height, in ccs_set_compose_scaler()
2344 * CCS_LIM(sensor, SCALER_N_MIN) / sel->r.width; in ccs_set_compose_scaler()
2346 * CCS_LIM(sensor, SCALER_N_MIN) / sel->r.height; in ccs_set_compose_scaler()
2383 sel->r.width, in ccs_set_compose_scaler()
2385 sel->r.height, in ccs_set_compose_scaler()
2386 sel->flags); in ccs_set_compose_scaler()
2404 sel->r.width, in ccs_set_compose_scaler()
2408 sel->r.height, in ccs_set_compose_scaler()
2409 sel->flags); in ccs_set_compose_scaler()
2418 sel->r.width = in ccs_set_compose_scaler()
2423 sel->r.height = in ccs_set_compose_scaler()
2429 sel->r.height = crops[CCS_PAD_SINK]->height; in ccs_set_compose_scaler()
2431 if (sel->which == V4L2_SUBDEV_FORMAT_ACTIVE) { in ccs_set_compose_scaler()
2439 struct v4l2_subdev_selection *sel) in ccs_set_compose() argument
2447 sel->r.top = 0; in ccs_set_compose()
2448 sel->r.left = 0; in ccs_set_compose()
2451 ccs_set_compose_binner(subdev, sd_state, sel, crops, comp); in ccs_set_compose()
2453 ccs_set_compose_scaler(subdev, sd_state, sel, crops, comp); in ccs_set_compose()
2455 *comp = sel->r; in ccs_set_compose()
2456 ccs_propagate(subdev, sd_state, sel->which, V4L2_SEL_TGT_COMPOSE); in ccs_set_compose()
2458 if (sel->which == V4L2_SUBDEV_FORMAT_ACTIVE) in ccs_set_compose()
2465 struct v4l2_subdev_selection *sel) in ccs_sel_supported() argument
2471 switch (sel->target) { in ccs_sel_supported()
2474 if (ssd == sensor->pixel_array && sel->pad == CCS_PA_PAD_SRC) in ccs_sel_supported()
2476 if (ssd == sensor->src && sel->pad == CCS_PAD_SRC) in ccs_sel_supported()
2478 if (ssd == sensor->scaler && sel->pad == CCS_PAD_SINK && in ccs_sel_supported()
2484 if (ssd == sensor->pixel_array && sel->pad == CCS_PA_PAD_SRC) in ccs_sel_supported()
2489 if (sel->pad == ssd->source_pad) in ccs_sel_supported()
2504 struct v4l2_subdev_selection *sel) in ccs_set_crop() argument
2512 if (sel->pad == ssd->sink_pad) { in ccs_set_crop()
2514 v4l2_subdev_state_get_format(sd_state, sel->pad); in ccs_set_crop()
2522 if (ssd == sensor->src && sel->pad == CCS_PAD_SRC) { in ccs_set_crop()
2523 sel->r.left = 0; in ccs_set_crop()
2524 sel->r.top = 0; in ccs_set_crop()
2527 sel->r.width = min(sel->r.width, src_size.width); in ccs_set_crop()
2528 sel->r.height = min(sel->r.height, src_size.height); in ccs_set_crop()
2530 sel->r.left = min_t(int, sel->r.left, src_size.width - sel->r.width); in ccs_set_crop()
2531 sel->r.top = min_t(int, sel->r.top, src_size.height - sel->r.height); in ccs_set_crop()
2533 *crops[sel->pad] = sel->r; in ccs_set_crop()
2535 if (ssd != sensor->pixel_array && sel->pad == CCS_PAD_SINK) in ccs_set_crop()
2536 ccs_propagate(subdev, sd_state, sel->which, V4L2_SEL_TGT_CROP); in ccs_set_crop()
2537 else if (sel->which == V4L2_SUBDEV_FORMAT_ACTIVE && in ccs_set_crop()
2539 sensor->pa_src = sel->r; in ccs_set_crop()
2554 struct v4l2_subdev_selection *sel) in ccs_get_selection() argument
2561 ret = ccs_sel_supported(subdev, sel); in ccs_get_selection()
2567 switch (sel->target) { in ccs_get_selection()
2571 ccs_get_native_size(ssd, &sel->r); in ccs_get_selection()
2572 } else if (sel->pad == ssd->sink_pad) { in ccs_get_selection()
2576 sel->r.top = sel->r.left = 0; in ccs_get_selection()
2577 sel->r.width = sink_fmt->width; in ccs_get_selection()
2578 sel->r.height = sink_fmt->height; in ccs_get_selection()
2580 sel->r = *comp; in ccs_get_selection()
2585 sel->r = *crops[sel->pad]; in ccs_get_selection()
2588 sel->r = *comp; in ccs_get_selection()
2597 struct v4l2_subdev_selection *sel) in ccs_set_selection() argument
2602 ret = ccs_sel_supported(subdev, sel); in ccs_set_selection()
2608 sel->r.left = max(0, sel->r.left & ~1); in ccs_set_selection()
2609 sel->r.top = max(0, sel->r.top & ~1); in ccs_set_selection()
2610 sel->r.width = CCS_ALIGN_DIM(sel->r.width, sel->flags); in ccs_set_selection()
2611 sel->r.height = CCS_ALIGN_DIM(sel->r.height, sel->flags); in ccs_set_selection()
2613 sel->r.width = max_t(unsigned int, CCS_LIM(sensor, MIN_X_OUTPUT_SIZE), in ccs_set_selection()
2614 sel->r.width); in ccs_set_selection()
2615 sel->r.height = max_t(unsigned int, CCS_LIM(sensor, MIN_Y_OUTPUT_SIZE), in ccs_set_selection()
2616 sel->r.height); in ccs_set_selection()
2618 switch (sel->target) { in ccs_set_selection()
2620 ret = ccs_set_crop(subdev, sd_state, sel); in ccs_set_selection()
2623 ret = ccs_set_compose(subdev, sd_state, sel); in ccs_set_selection()