static int m5mols_set_fmt(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh, struct v4l2_subdev_format *fmt) { struct m5mols_info *info = to_m5mols(sd); struct v4l2_mbus_framefmt *format = &fmt->format; struct v4l2_mbus_framefmt *sfmt; enum m5mols_restype type; u32 resolution = 0; int ret; ret = __find_resolution(sd, format, &type, &resolution); if (ret < 0) return ret; sfmt = __find_format(info, fh, fmt->which, type); if (!sfmt) return 0; mutex_lock(&info->lock); format->code = m5mols_default_ffmt[type].code; format->colorspace = V4L2_COLORSPACE_JPEG; format->field = V4L2_FIELD_NONE; if (fmt->which == V4L2_SUBDEV_FORMAT_ACTIVE) { *sfmt = *format; info->resolution = resolution; info->res_type = type; } mutex_unlock(&info->lock); return ret; }
static int m5mols_set_fmt(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh, struct v4l2_subdev_format *fmt) { struct m5mols_info *info = to_m5mols(sd); struct v4l2_mbus_framefmt *format = &fmt->format; struct v4l2_mbus_framefmt *sfmt; enum m5mols_restype type; u32 resolution = 0; int ret; if (fmt->pad != 0) return -EINVAL; ret = __find_resolution(sd, format, &type, &resolution); if (ret < 0) return ret; sfmt = __find_format(info, fh, fmt->which, type); if (!sfmt) return 0; sfmt = &default_fmt[type]; sfmt->width = format->width; sfmt->height = format->height; if (fmt->which == V4L2_SUBDEV_FORMAT_ACTIVE) { info->resolution = resolution; info->code = format->code; info->res_type = type; } return 0; }
static int m5mols_get_fmt(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh, struct v4l2_subdev_format *fmt) { struct m5mols_info *info = to_m5mols(sd); struct v4l2_mbus_framefmt *format; format = __find_format(info, fh, fmt->which, info->res_type); if (!format) return -EINVAL; fmt->format = *format; return 0; }
/* set format by flite video device command */ static int sr200_set_fmt(struct v4l2_subdev *subdev, struct v4l2_subdev_fh *fh, struct v4l2_subdev_format *fmt) { struct sr200_state *state = to_state(subdev); struct v4l2_mbus_framefmt *format = &fmt->format; struct v4l2_mbus_framefmt *sfmt; enum sr200_oprmode type; u32 resolution = 0; int ret; cam_info("%s: E\n", __func__); if (fmt->pad != 0) return -EINVAL; cam_info("%s: fmt->format.width = %d, fmt->format.height = %d", __func__, fmt->format.width, fmt->format.height); ret = __find_resolution(subdev, format, &type, &resolution); if (ret < 0) return ret; sfmt = __find_format(state, fh, fmt->which, type); if (!sfmt) return 0; sfmt = &default_fmt[type]; sfmt->width = format->width; sfmt->height = format->height; if (fmt->which == V4L2_SUBDEV_FORMAT_ACTIVE) { /* for enum size of entity by flite */ state->ffmt[type].width = format->width; state->ffmt[type].height = format->height; state->ffmt[type].code = V4L2_MBUS_FMT_YUYV8_2X8; /* find adaptable resolution */ state->resolution = resolution; state->code = V4L2_MBUS_FMT_YUYV8_2X8; state->res_type = type; /* for set foramat */ state->req_fmt.width = format->width; state->req_fmt.height = format->height; if ((state->power_on == SR200_HW_POWER_ON) && (state->runmode != RUNMODE_CAPTURING)) sr200_s_mbus_fmt(subdev, sfmt); /* set format */ } return 0; }
static int sensor_get_fmt(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh, struct v4l2_subdev_format *fmt) { struct sensor_info *info = to_sensor(sd); struct v4l2_mbus_framefmt *format; if (fmt->pad != 0) return -EINVAL; format = __find_format(info, fh, fmt->which); if (!format) return -EINVAL; fmt->format = *format; return 0; }
static int m5mols_get_fmt(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh, struct v4l2_subdev_format *fmt) { struct m5mols_info *info = to_m5mols(sd); struct v4l2_mbus_framefmt *format; int ret = 0; mutex_lock(&info->lock); format = __find_format(info, fh, fmt->which, info->res_type); if (format) fmt->format = *format; else ret = -EINVAL; mutex_unlock(&info->lock); return ret; }
/* get format by flite video device command */ static int sr200_get_fmt(struct v4l2_subdev *subdev, struct v4l2_subdev_fh *fh, struct v4l2_subdev_format *fmt) { struct sr200_state *state = to_state(subdev); struct v4l2_mbus_framefmt *format; cam_err("Need to check\n"); if (fmt->pad != 0) return -EINVAL; format = __find_format(state, fh, fmt->which, state->res_type); if (!format) return -EINVAL; fmt->format = *format; return 0; }
static int sensor_set_fmt(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh, struct v4l2_subdev_format *fmt) { struct sensor_info *info = to_sensor(sd); struct v4l2_mbus_framefmt *format = &fmt->format; struct v4l2_mbus_framefmt *sfmt; if (fmt->pad != 0) return -EINVAL; sfmt = __find_format(info, fh, fmt->which); if (!sfmt) return 0; sfmt = &default_fmt; sfmt->width = format->width; sfmt->height = format->height; if (fmt->which == V4L2_SUBDEV_FORMAT_ACTIVE) info->code = format->code; return 0; }