Lines Matching refs:sd

420 	struct v4l2_subdev sd;  member
437 static inline struct tvp7002 *to_tvp7002(struct v4l2_subdev *sd) in to_tvp7002() argument
439 return container_of(sd, struct tvp7002, sd); in to_tvp7002()
444 return &container_of(ctrl->handler, struct tvp7002, hdl)->sd; in to_sd()
455 static int tvp7002_read(struct v4l2_subdev *sd, u8 addr, u8 *dst) in tvp7002_read() argument
457 struct i2c_client *c = v4l2_get_subdevdata(sd); in tvp7002_read()
471 v4l2_err(sd, "TVP7002 read error %d\n", error); in tvp7002_read()
485 static inline void tvp7002_read_err(struct v4l2_subdev *sd, u8 reg, in tvp7002_read_err() argument
489 *err = tvp7002_read(sd, reg, dst); in tvp7002_read_err()
501 static int tvp7002_write(struct v4l2_subdev *sd, u8 addr, u8 value) in tvp7002_write() argument
507 c = v4l2_get_subdevdata(sd); in tvp7002_write()
515 v4l2_warn(sd, "Write: retry ... %d\n", retry); in tvp7002_write()
518 v4l2_err(sd, "TVP7002 write error %d\n", error); in tvp7002_write()
532 static inline void tvp7002_write_err(struct v4l2_subdev *sd, u8 reg, in tvp7002_write_err() argument
536 *err = tvp7002_write(sd, reg, val); in tvp7002_write_err()
547 static int tvp7002_write_inittab(struct v4l2_subdev *sd, in tvp7002_write_inittab() argument
555 tvp7002_write_err(sd, regs->reg, regs->value, &error); in tvp7002_write_inittab()
562 static int tvp7002_s_dv_timings(struct v4l2_subdev *sd, in tvp7002_s_dv_timings() argument
565 struct tvp7002 *device = to_tvp7002(sd); in tvp7002_s_dv_timings()
576 return tvp7002_write_inittab(sd, tvp7002_timings[i].p_settings); in tvp7002_s_dv_timings()
582 static int tvp7002_g_dv_timings(struct v4l2_subdev *sd, in tvp7002_g_dv_timings() argument
585 struct tvp7002 *device = to_tvp7002(sd); in tvp7002_g_dv_timings()
600 struct v4l2_subdev *sd = to_sd(ctrl); in tvp7002_s_ctrl() local
605 tvp7002_write_err(sd, TVP7002_R_FINE_GAIN, ctrl->val, &error); in tvp7002_s_ctrl()
606 tvp7002_write_err(sd, TVP7002_G_FINE_GAIN, ctrl->val, &error); in tvp7002_s_ctrl()
607 tvp7002_write_err(sd, TVP7002_B_FINE_GAIN, ctrl->val, &error); in tvp7002_s_ctrl()
622 static int tvp7002_mbus_fmt(struct v4l2_subdev *sd, struct v4l2_mbus_framefmt *f) in tvp7002_mbus_fmt() argument
624 struct tvp7002 *device = to_tvp7002(sd); in tvp7002_mbus_fmt()
633 v4l2_dbg(1, debug, sd, "MBUS_FMT: Width - %d, Height - %d", in tvp7002_mbus_fmt()
646 static int tvp7002_query_dv(struct v4l2_subdev *sd, int *index) in tvp7002_query_dv() argument
662 tvp7002_read_err(sd, TVP7002_L_FRAME_STAT_LSBS, &lpf_lsb, &error); in tvp7002_query_dv()
663 tvp7002_read_err(sd, TVP7002_L_FRAME_STAT_MSBS, &lpf_msb, &error); in tvp7002_query_dv()
668 tvp7002_read_err(sd, TVP7002_CLK_L_STAT_LSBS, &cpl_lsb, &error); in tvp7002_query_dv()
669 tvp7002_read_err(sd, TVP7002_CLK_L_STAT_MSBS, &cpl_msb, &error); in tvp7002_query_dv()
690 v4l2_dbg(1, debug, sd, "detection failed: lpf = %x, cpl = %x\n", in tvp7002_query_dv()
696 v4l2_dbg(1, debug, sd, "detected timings: %d\n", *index); in tvp7002_query_dv()
700 static int tvp7002_query_dv_timings(struct v4l2_subdev *sd, in tvp7002_query_dv_timings() argument
704 int err = tvp7002_query_dv(sd, &index); in tvp7002_query_dv_timings()
722 static int tvp7002_g_register(struct v4l2_subdev *sd, in tvp7002_g_register() argument
728 ret = tvp7002_read(sd, reg->reg & 0xff, &val); in tvp7002_g_register()
742 static int tvp7002_s_register(struct v4l2_subdev *sd, in tvp7002_s_register() argument
745 return tvp7002_write(sd, reg->reg & 0xff, reg->val & 0xff); in tvp7002_s_register()
758 static int tvp7002_enum_mbus_fmt(struct v4l2_subdev *sd, unsigned index, in tvp7002_enum_mbus_fmt() argument
775 static int tvp7002_s_stream(struct v4l2_subdev *sd, int enable) in tvp7002_s_stream() argument
777 struct tvp7002 *device = to_tvp7002(sd); in tvp7002_s_stream()
784 error = tvp7002_write(sd, TVP7002_MISC_CTL_2, enable ? 0x00 : 0x03); in tvp7002_s_stream()
786 v4l2_dbg(1, debug, sd, "Fail to set streaming\n"); in tvp7002_s_stream()
801 static int tvp7002_log_status(struct v4l2_subdev *sd) in tvp7002_log_status() argument
803 struct tvp7002 *device = to_tvp7002(sd); in tvp7002_log_status()
808 tvp7002_query_dv(sd, &detected); in tvp7002_log_status()
811 v4l2_info(sd, "Selected DV Timings: %ux%u\n", bt->width, bt->height); in tvp7002_log_status()
813 v4l2_info(sd, "Detected DV Timings: None\n"); in tvp7002_log_status()
816 v4l2_info(sd, "Detected DV Timings: %ux%u\n", in tvp7002_log_status()
819 v4l2_info(sd, "Streaming enabled: %s\n", in tvp7002_log_status()
823 v4l2_ctrl_handler_log_status(&device->hdl, sd->name); in tvp7002_log_status()
828 static int tvp7002_enum_dv_timings(struct v4l2_subdev *sd, in tvp7002_enum_dv_timings() argument
855 tvp7002_enum_mbus_code(struct v4l2_subdev *sd, struct v4l2_subdev_pad_config *cfg, in tvp7002_enum_mbus_code() argument
876 tvp7002_get_pad_format(struct v4l2_subdev *sd, struct v4l2_subdev_pad_config *cfg, in tvp7002_get_pad_format() argument
879 struct tvp7002 *tvp7002 = to_tvp7002(sd); in tvp7002_get_pad_format()
899 tvp7002_set_pad_format(struct v4l2_subdev *sd, struct v4l2_subdev_pad_config *cfg, in tvp7002_set_pad_format() argument
902 return tvp7002_get_pad_format(sd, cfg, fmt); in tvp7002_set_pad_format()
1002 struct v4l2_subdev *sd; in tvp7002_probe() local
1025 sd = &device->sd; in tvp7002_probe()
1030 v4l2_i2c_subdev_init(sd, c, &tvp7002_ops); in tvp7002_probe()
1034 error = tvp7002_read(sd, TVP7002_CHIP_REV, &revision); in tvp7002_probe()
1039 v4l2_info(sd, "Rev. %02x detected.\n", revision); in tvp7002_probe()
1041 v4l2_info(sd, "Unknown revision detected.\n"); in tvp7002_probe()
1044 error = tvp7002_write_inittab(sd, tvp7002_init_default); in tvp7002_probe()
1052 error = tvp7002_write(sd, TVP7002_SYNC_CTL_1, polarity_a); in tvp7002_probe()
1059 error = tvp7002_write(sd, TVP7002_MISC_CTL_3, polarity_b); in tvp7002_probe()
1065 error = tvp7002_s_dv_timings(sd, &timings); in tvp7002_probe()
1069 device->sd.flags |= V4L2_SUBDEV_FL_HAS_DEVNODE; in tvp7002_probe()
1070 device->sd.entity.flags |= MEDIA_ENT_T_V4L2_SUBDEV_DECODER; in tvp7002_probe()
1072 error = media_entity_init(&device->sd.entity, 1, &device->pad, 0); in tvp7002_probe()
1080 sd->ctrl_handler = &device->hdl; in tvp7002_probe()
1087 error = v4l2_async_register_subdev(&device->sd); in tvp7002_probe()
1096 media_entity_cleanup(&device->sd.entity); in tvp7002_probe()
1110 struct v4l2_subdev *sd = i2c_get_clientdata(c); in tvp7002_remove() local
1111 struct tvp7002 *device = to_tvp7002(sd); in tvp7002_remove()
1113 v4l2_dbg(1, debug, sd, "Removing tvp7002 adapter" in tvp7002_remove()
1115 v4l2_async_unregister_subdev(&device->sd); in tvp7002_remove()
1117 media_entity_cleanup(&device->sd.entity); in tvp7002_remove()