Lines Matching refs:isc
16 #include "microchip-isc-regs.h"
17 #include "microchip-isc.h"
32 struct isc_device *isc = container_of(sd, struct isc_device, scaler_sd);
43 format->format = isc->scaler_format[format->pad];
52 struct isc_device *isc = container_of(sd, struct isc_device, scaler_sd);
59 req_fmt->format = isc->scaler_format[ISC_SCALER_PAD_SOURCE];
69 fmt = isc_find_format_by_code(isc, req_fmt->format.code, &i);
72 fmt = &isc->formats_list[0];
86 16, isc->max_width, 0,
88 16, isc->max_height, 0, 0);
93 isc->scaler_format[ISC_SCALER_PAD_SINK] = req_fmt->format;
96 isc->scaler_format[ISC_SCALER_PAD_SOURCE] =
97 isc->scaler_format[ISC_SCALER_PAD_SINK];
99 (&isc->scaler_format[ISC_SCALER_PAD_SOURCE].width, 16,
100 isc->max_width, 0,
101 &isc->scaler_format[ISC_SCALER_PAD_SOURCE].height, 16,
102 isc->max_height, 0, 0);
111 struct isc_device *isc = container_of(sd, struct isc_device, scaler_sd);
118 if (code->index < isc->formats_list_size) {
119 code->code = isc->formats_list[code->index].mbus_code;
130 struct isc_device *isc = container_of(sd, struct isc_device, scaler_sd);
139 sel->r.height = isc->scaler_format[ISC_SCALER_PAD_SOURCE].height;
140 sel->r.width = isc->scaler_format[ISC_SCALER_PAD_SOURCE].width;
154 struct isc_device *isc = container_of(sd, struct isc_device, scaler_sd);
156 *v4l2_try_fmt = isc->scaler_format[ISC_SCALER_PAD_SOURCE];
184 int isc_scaler_init(struct isc_device *isc)
188 v4l2_subdev_init(&isc->scaler_sd, &xisc_scaler_subdev_ops);
190 isc->scaler_sd.owner = THIS_MODULE;
191 isc->scaler_sd.dev = isc->dev;
192 snprintf(isc->scaler_sd.name, sizeof(isc->scaler_sd.name),
195 isc->scaler_sd.flags |= V4L2_SUBDEV_FL_HAS_DEVNODE;
196 isc->scaler_sd.entity.function = MEDIA_ENT_F_PROC_VIDEO_SCALER;
197 isc->scaler_sd.entity.ops = &isc_scaler_entity_ops;
198 isc->scaler_pads[ISC_SCALER_PAD_SINK].flags = MEDIA_PAD_FL_SINK;
199 isc->scaler_pads[ISC_SCALER_PAD_SOURCE].flags = MEDIA_PAD_FL_SOURCE;
201 isc_scaler_prepare_fmt(&isc->scaler_format[ISC_SCALER_PAD_SOURCE]);
202 isc->scaler_format[ISC_SCALER_PAD_SOURCE].height = isc->max_height;
203 isc->scaler_format[ISC_SCALER_PAD_SOURCE].width = isc->max_width;
204 isc->scaler_format[ISC_SCALER_PAD_SOURCE].code =
205 isc->formats_list[0].mbus_code;
207 isc->scaler_format[ISC_SCALER_PAD_SINK] =
208 isc->scaler_format[ISC_SCALER_PAD_SOURCE];
210 ret = media_entity_pads_init(&isc->scaler_sd.entity,
212 isc->scaler_pads);
214 dev_err(isc->dev, "scaler sd media entity init failed\n");
218 ret = v4l2_device_register_subdev(&isc->v4l2_dev, &isc->scaler_sd);
220 dev_err(isc->dev, "scaler sd failed to register subdev\n");
228 int isc_scaler_link(struct isc_device *isc)
232 ret = media_create_pad_link(&isc->current_subdev->sd->entity,
233 isc->remote_pad, &isc->scaler_sd.entity,
239 dev_err(isc->dev, "Failed to create pad link: %s to %s\n",
240 isc->current_subdev->sd->entity.name,
241 isc->scaler_sd.entity.name);
245 dev_dbg(isc->dev, "link with %s pad: %d\n",
246 isc->current_subdev->sd->name, isc->remote_pad);
248 ret = media_create_pad_link(&isc->scaler_sd.entity,
250 &isc->video_dev.entity, ISC_PAD_SINK,
255 dev_err(isc->dev, "Failed to create pad link: %s to %s\n",
256 isc->scaler_sd.entity.name,
257 isc->video_dev.entity.name);
261 dev_dbg(isc->dev, "link with %s pad: %d\n", isc->scaler_sd.name,