Lines Matching refs:sd

304 	struct v4l2_subdev sd;  member
406 return &container_of(ctrl->handler, struct s5k5baf, ctrls.handler)->sd; in ctrl_to_sd()
409 static inline bool s5k5baf_is_cis_subdev(struct v4l2_subdev *sd) in s5k5baf_is_cis_subdev() argument
411 return sd->entity.type == MEDIA_ENT_T_V4L2_SUBDEV_SENSOR; in s5k5baf_is_cis_subdev()
414 static inline struct s5k5baf *to_s5k5baf(struct v4l2_subdev *sd) in to_s5k5baf() argument
416 if (s5k5baf_is_cis_subdev(sd)) in to_s5k5baf()
417 return container_of(sd, struct s5k5baf, cis_sd); in to_s5k5baf()
419 return container_of(sd, struct s5k5baf, sd); in to_s5k5baf()
424 struct i2c_client *c = v4l2_get_subdevdata(&state->sd); in s5k5baf_i2c_read()
454 struct i2c_client *c = v4l2_get_subdevdata(&state->sd); in s5k5baf_i2c_write()
484 struct i2c_client *c = v4l2_get_subdevdata(&state->sd); in s5k5baf_write_arr_seq()
556 v4l2_err(&state->sd, "timeout on register synchronize (%#x)\n", addr); in s5k5baf_synchronize()
606 v4l2_err(&state->sd, "error configuring PLL (%d)\n", status); in s5k5baf_hw_set_clocks()
814 v4l2_info(&state->sd, in s5k5baf_hw_find_min_fiv()
818 v4l2_err(&state->sd, in s5k5baf_hw_find_min_fiv()
823 v4l2_err(&state->sd, "cannot find correct frame interval\n"); in s5k5baf_hw_find_min_fiv()
845 v4l2_err(&state->sd, in s5k5baf_hw_validate_cfg()
894 v4l2_err(&state->sd, in s5k5baf_hw_set_crop_rects()
902 v4l2_err(&state->sd, "crop error: %d\n", err); in s5k5baf_hw_set_crop_rects()
971 v4l2_dbg(1, debug, &state->sd, "clock frequency: %ld\n", in s5k5baf_power_on()
982 v4l2_err(&state->sd, "%s() failed (%d)\n", __func__, ret); in s5k5baf_power_on()
1003 v4l2_err(&state->sd, "failed to disable regulators\n"); in s5k5baf_power_off()
1031 struct i2c_client *c = v4l2_get_subdevdata(&state->sd); in s5k5baf_load_setfile()
1050 static int s5k5baf_set_power(struct v4l2_subdev *sd, int on) in s5k5baf_set_power() argument
1052 struct s5k5baf *state = to_s5k5baf(sd); in s5k5baf_set_power()
1103 static int s5k5baf_s_stream(struct v4l2_subdev *sd, int on) in s5k5baf_s_stream() argument
1105 struct s5k5baf *state = to_s5k5baf(sd); in s5k5baf_s_stream()
1135 static int s5k5baf_g_frame_interval(struct v4l2_subdev *sd, in s5k5baf_g_frame_interval() argument
1138 struct s5k5baf *state = to_s5k5baf(sd); in s5k5baf_g_frame_interval()
1168 v4l2_info(&state->sd, "frame interval changed to %d00us\n", in s5k5baf_set_frame_interval()
1172 static int s5k5baf_s_frame_interval(struct v4l2_subdev *sd, in s5k5baf_s_frame_interval() argument
1175 struct s5k5baf *state = to_s5k5baf(sd); in s5k5baf_s_frame_interval()
1186 static int s5k5baf_enum_frame_interval(struct v4l2_subdev *sd, in s5k5baf_enum_frame_interval() argument
1205 static int s5k5baf_enum_mbus_code(struct v4l2_subdev *sd, in s5k5baf_enum_mbus_code() argument
1223 static int s5k5baf_enum_frame_size(struct v4l2_subdev *sd, in s5k5baf_enum_frame_size() argument
1281 static int s5k5baf_get_fmt(struct v4l2_subdev *sd, struct v4l2_subdev_pad_config *cfg, in s5k5baf_get_fmt() argument
1284 struct s5k5baf *state = to_s5k5baf(sd); in s5k5baf_get_fmt()
1289 mf = v4l2_subdev_get_try_format(sd, cfg, fmt->pad); in s5k5baf_get_fmt()
1311 static int s5k5baf_set_fmt(struct v4l2_subdev *sd, struct v4l2_subdev_pad_config *cfg, in s5k5baf_set_fmt() argument
1315 struct s5k5baf *state = to_s5k5baf(sd); in s5k5baf_set_fmt()
1322 *v4l2_subdev_get_try_format(sd, cfg, fmt->pad) = *mf; in s5k5baf_set_fmt()
1373 static int s5k5baf_get_selection(struct v4l2_subdev *sd, in s5k5baf_get_selection() argument
1378 struct s5k5baf *state = to_s5k5baf(sd); in s5k5baf_get_selection()
1394 sel->r = *v4l2_subdev_get_try_compose(sd, cfg, sel->pad); in s5k5baf_get_selection()
1396 sel->r = *v4l2_subdev_get_try_crop(sd, cfg, sel->pad); in s5k5baf_get_selection()
1464 static int s5k5baf_set_selection(struct v4l2_subdev *sd, in s5k5baf_set_selection() argument
1469 struct s5k5baf *state = to_s5k5baf(sd); in s5k5baf_set_selection()
1486 v4l2_subdev_get_try_crop(sd, cfg, PAD_CIS), in s5k5baf_set_selection()
1487 v4l2_subdev_get_try_compose(sd, cfg, PAD_CIS), in s5k5baf_set_selection()
1488 v4l2_subdev_get_try_crop(sd, cfg, PAD_OUT) in s5k5baf_set_selection()
1553 struct v4l2_subdev *sd = ctrl_to_sd(ctrl); in s5k5baf_s_ctrl() local
1554 struct s5k5baf *state = to_s5k5baf(sd); in s5k5baf_s_ctrl()
1557 v4l2_dbg(1, debug, sd, "ctrl: %s, value: %d\n", ctrl->name, ctrl->val); in s5k5baf_s_ctrl()
1640 v4l2_err(&state->sd, "cannot init ctrl handler (%d)\n", ret); in s5k5baf_initialize_ctrls()
1688 v4l2_err(&state->sd, "error creating controls (%d)\n", in s5k5baf_initialize_ctrls()
1695 state->sd.ctrl_handler = hdl; in s5k5baf_initialize_ctrls()
1702 static int s5k5baf_open(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh) in s5k5baf_open() argument
1706 mf = v4l2_subdev_get_try_format(sd, fh->pad, PAD_CIS); in s5k5baf_open()
1709 if (s5k5baf_is_cis_subdev(sd)) in s5k5baf_open()
1712 mf = v4l2_subdev_get_try_format(sd, fh->pad, PAD_OUT); in s5k5baf_open()
1719 *v4l2_subdev_get_try_crop(sd, fh->pad, PAD_CIS) = s5k5baf_cis_rect; in s5k5baf_open()
1720 *v4l2_subdev_get_try_compose(sd, fh->pad, PAD_CIS) = s5k5baf_cis_rect; in s5k5baf_open()
1721 *v4l2_subdev_get_try_crop(sd, fh->pad, PAD_OUT) = s5k5baf_cis_rect; in s5k5baf_open()
1738 v4l2_info(&state->sd, "FW API=%#x, revision=%#x sensor_id=%#x\n", in s5k5baf_check_fw_revision()
1742 v4l2_err(&state->sd, "FW API version not supported\n"); in s5k5baf_check_fw_revision()
1749 static int s5k5baf_registered(struct v4l2_subdev *sd) in s5k5baf_registered() argument
1751 struct s5k5baf *state = to_s5k5baf(sd); in s5k5baf_registered()
1754 ret = v4l2_device_register_subdev(sd->v4l2_dev, &state->cis_sd); in s5k5baf_registered()
1756 v4l2_err(sd, "failed to register subdev %s\n", in s5k5baf_registered()
1760 &state->sd.entity, PAD_CIS, in s5k5baf_registered()
1766 static void s5k5baf_unregistered(struct v4l2_subdev *sd) in s5k5baf_unregistered() argument
1768 struct s5k5baf *state = to_s5k5baf(sd); in s5k5baf_unregistered()
1800 struct i2c_client *c = v4l2_get_subdevdata(&state->sd); in s5k5baf_configure_gpios()
1893 struct v4l2_subdev *sd; in s5k5baf_configure_subdevs() local
1896 sd = &state->cis_sd; in s5k5baf_configure_subdevs()
1897 v4l2_subdev_init(sd, &s5k5baf_cis_subdev_ops); in s5k5baf_configure_subdevs()
1898 sd->owner = THIS_MODULE; in s5k5baf_configure_subdevs()
1899 v4l2_set_subdevdata(sd, state); in s5k5baf_configure_subdevs()
1900 snprintf(sd->name, sizeof(sd->name), "S5K5BAF-CIS %d-%04x", in s5k5baf_configure_subdevs()
1903 sd->internal_ops = &s5k5baf_cis_subdev_internal_ops; in s5k5baf_configure_subdevs()
1904 sd->flags |= V4L2_SUBDEV_FL_HAS_DEVNODE; in s5k5baf_configure_subdevs()
1907 sd->entity.type = MEDIA_ENT_T_V4L2_SUBDEV_SENSOR; in s5k5baf_configure_subdevs()
1908 ret = media_entity_init(&sd->entity, NUM_CIS_PADS, &state->cis_pad, 0); in s5k5baf_configure_subdevs()
1912 sd = &state->sd; in s5k5baf_configure_subdevs()
1913 v4l2_i2c_subdev_init(sd, c, &s5k5baf_subdev_ops); in s5k5baf_configure_subdevs()
1914 snprintf(sd->name, sizeof(sd->name), "S5K5BAF-ISP %d-%04x", in s5k5baf_configure_subdevs()
1917 sd->internal_ops = &s5k5baf_subdev_internal_ops; in s5k5baf_configure_subdevs()
1918 sd->flags |= V4L2_SUBDEV_FL_HAS_DEVNODE; in s5k5baf_configure_subdevs()
1922 sd->entity.type = MEDIA_ENT_T_V4L2_SUBDEV; in s5k5baf_configure_subdevs()
1923 ret = media_entity_init(&sd->entity, NUM_ISP_PADS, state->pads, 0); in s5k5baf_configure_subdevs()
1930 dev_err(&c->dev, "cannot init media entity %s\n", sd->name); in s5k5baf_configure_subdevs()
1936 struct i2c_client *c = v4l2_get_subdevdata(&state->sd); in s5k5baf_configure_regulators()
1981 state->clock = devm_clk_get(state->sd.dev, S5K5BAF_CLK_NAME); in s5k5baf_probe()
2003 ret = v4l2_async_register_subdev(&state->sd); in s5k5baf_probe()
2010 v4l2_ctrl_handler_free(state->sd.ctrl_handler); in s5k5baf_probe()
2012 media_entity_cleanup(&state->sd.entity); in s5k5baf_probe()
2019 struct v4l2_subdev *sd = i2c_get_clientdata(c); in s5k5baf_remove() local
2020 struct s5k5baf *state = to_s5k5baf(sd); in s5k5baf_remove()
2022 v4l2_async_unregister_subdev(sd); in s5k5baf_remove()
2023 v4l2_ctrl_handler_free(sd->ctrl_handler); in s5k5baf_remove()
2024 media_entity_cleanup(&sd->entity); in s5k5baf_remove()
2026 sd = &state->cis_sd; in s5k5baf_remove()
2027 v4l2_device_unregister_subdev(sd); in s5k5baf_remove()
2028 media_entity_cleanup(&sd->entity); in s5k5baf_remove()