• Home
  • Raw
  • Download

Lines Matching refs:sd

78 	struct v4l2_subdev sd;  member
89 static inline struct tvp5150 *to_tvp5150(struct v4l2_subdev *sd) in to_tvp5150() argument
91 return container_of(sd, struct tvp5150, sd); in to_tvp5150()
94 static int tvp5150_read(struct v4l2_subdev *sd, unsigned char addr) in tvp5150_read() argument
96 struct i2c_client *c = v4l2_get_subdevdata(sd); in tvp5150_read()
102 v4l2_dbg(0, debug, sd, "i2c i/o error: rc == %d (should be 1)\n", rc); in tvp5150_read()
107 v4l2_dbg(0, debug, sd, "i2c i/o error: rc == %d (should be 1)\n", rc); in tvp5150_read()
109 v4l2_dbg(2, debug, sd, "tvp5150: read 0x%02x = 0x%02x\n", addr, buffer[0]); in tvp5150_read()
114 static inline void tvp5150_write(struct v4l2_subdev *sd, unsigned char addr, in tvp5150_write() argument
117 struct i2c_client *c = v4l2_get_subdevdata(sd); in tvp5150_write()
123 v4l2_dbg(2, debug, sd, "tvp5150: writing 0x%02x 0x%02x\n", buffer[0], buffer[1]); in tvp5150_write()
125 v4l2_dbg(0, debug, sd, "i2c i/o error: rc == %d (should be 2)\n", rc); in tvp5150_write()
128 static void dump_reg_range(struct v4l2_subdev *sd, char *s, u8 init, in dump_reg_range() argument
139 printk("%02x ", tvp5150_read(sd, init)); in dump_reg_range()
147 static int tvp5150_log_status(struct v4l2_subdev *sd) in tvp5150_log_status() argument
150 tvp5150_read(sd, TVP5150_VD_IN_SRC_SEL_1)); in tvp5150_log_status()
152 tvp5150_read(sd, TVP5150_ANAL_CHL_CTL)); in tvp5150_log_status()
154 tvp5150_read(sd, TVP5150_OP_MODE_CTL)); in tvp5150_log_status()
156 tvp5150_read(sd, TVP5150_MISC_CTL)); in tvp5150_log_status()
158 tvp5150_read(sd, TVP5150_AUTOSW_MSK)); in tvp5150_log_status()
160 tvp5150_read(sd, TVP5150_COLOR_KIL_THSH_CTL)); in tvp5150_log_status()
162 tvp5150_read(sd, TVP5150_LUMA_PROC_CTL_1), in tvp5150_log_status()
163 tvp5150_read(sd, TVP5150_LUMA_PROC_CTL_2), in tvp5150_log_status()
164 tvp5150_read(sd, TVP5150_LUMA_PROC_CTL_3)); in tvp5150_log_status()
166 tvp5150_read(sd, TVP5150_BRIGHT_CTL)); in tvp5150_log_status()
168 tvp5150_read(sd, TVP5150_SATURATION_CTL)); in tvp5150_log_status()
170 tvp5150_read(sd, TVP5150_HUE_CTL)); in tvp5150_log_status()
172 tvp5150_read(sd, TVP5150_CONTRAST_CTL)); in tvp5150_log_status()
174 tvp5150_read(sd, TVP5150_DATA_RATE_SEL)); in tvp5150_log_status()
176 tvp5150_read(sd, TVP5150_CONF_SHARED_PIN)); in tvp5150_log_status()
178 tvp5150_read(sd, TVP5150_ACT_VD_CROP_ST_MSB), in tvp5150_log_status()
179 tvp5150_read(sd, TVP5150_ACT_VD_CROP_ST_LSB)); in tvp5150_log_status()
181 tvp5150_read(sd, TVP5150_ACT_VD_CROP_STP_MSB), in tvp5150_log_status()
182 tvp5150_read(sd, TVP5150_ACT_VD_CROP_STP_LSB)); in tvp5150_log_status()
184 tvp5150_read(sd, TVP5150_GENLOCK)); in tvp5150_log_status()
186 tvp5150_read(sd, TVP5150_HORIZ_SYNC_START)); in tvp5150_log_status()
188 tvp5150_read(sd, TVP5150_VERT_BLANKING_START)); in tvp5150_log_status()
190 tvp5150_read(sd, TVP5150_VERT_BLANKING_STOP)); in tvp5150_log_status()
192 tvp5150_read(sd, TVP5150_CHROMA_PROC_CTL_1), in tvp5150_log_status()
193 tvp5150_read(sd, TVP5150_CHROMA_PROC_CTL_2)); in tvp5150_log_status()
195 tvp5150_read(sd, TVP5150_INT_RESET_REG_B)); in tvp5150_log_status()
197 tvp5150_read(sd, TVP5150_INT_ENABLE_REG_B)); in tvp5150_log_status()
199 tvp5150_read(sd, TVP5150_INTT_CONFIG_REG_B)); in tvp5150_log_status()
201 tvp5150_read(sd, TVP5150_VIDEO_STD)); in tvp5150_log_status()
203 tvp5150_read(sd, TVP5150_CB_GAIN_FACT), in tvp5150_log_status()
204 tvp5150_read(sd, TVP5150_CR_GAIN_FACTOR)); in tvp5150_log_status()
206 tvp5150_read(sd, TVP5150_MACROVISION_ON_CTR)); in tvp5150_log_status()
208 tvp5150_read(sd, TVP5150_MACROVISION_OFF_CTR)); in tvp5150_log_status()
210 (tvp5150_read(sd, TVP5150_REV_SELECT) & 1) ? 3 : 4); in tvp5150_log_status()
212 tvp5150_read(sd, TVP5150_MSB_DEV_ID), in tvp5150_log_status()
213 tvp5150_read(sd, TVP5150_LSB_DEV_ID)); in tvp5150_log_status()
215 tvp5150_read(sd, TVP5150_ROM_MAJOR_VER), in tvp5150_log_status()
216 tvp5150_read(sd, TVP5150_ROM_MINOR_VER)); in tvp5150_log_status()
218 tvp5150_read(sd, TVP5150_VERT_LN_COUNT_MSB), in tvp5150_log_status()
219 tvp5150_read(sd, TVP5150_VERT_LN_COUNT_LSB)); in tvp5150_log_status()
221 tvp5150_read(sd, TVP5150_INT_STATUS_REG_B)); in tvp5150_log_status()
223 tvp5150_read(sd, TVP5150_INT_ACTIVE_REG_B)); in tvp5150_log_status()
225 tvp5150_read(sd, TVP5150_STATUS_REG_1), in tvp5150_log_status()
226 tvp5150_read(sd, TVP5150_STATUS_REG_2), in tvp5150_log_status()
227 tvp5150_read(sd, TVP5150_STATUS_REG_3), in tvp5150_log_status()
228 tvp5150_read(sd, TVP5150_STATUS_REG_4), in tvp5150_log_status()
229 tvp5150_read(sd, TVP5150_STATUS_REG_5)); in tvp5150_log_status()
231 dump_reg_range(sd, "Teletext filter 1", TVP5150_TELETEXT_FIL1_INI, in tvp5150_log_status()
233 dump_reg_range(sd, "Teletext filter 2", TVP5150_TELETEXT_FIL2_INI, in tvp5150_log_status()
237 tvp5150_read(sd, TVP5150_TELETEXT_FIL_ENA)); in tvp5150_log_status()
239 tvp5150_read(sd, TVP5150_INT_STATUS_REG_A)); in tvp5150_log_status()
241 tvp5150_read(sd, TVP5150_INT_ENABLE_REG_A)); in tvp5150_log_status()
243 tvp5150_read(sd, TVP5150_INT_CONF)); in tvp5150_log_status()
245 tvp5150_read(sd, TVP5150_VDP_STATUS_REG)); in tvp5150_log_status()
247 tvp5150_read(sd, TVP5150_FIFO_WORD_COUNT)); in tvp5150_log_status()
249 tvp5150_read(sd, TVP5150_FIFO_INT_THRESHOLD)); in tvp5150_log_status()
251 tvp5150_read(sd, TVP5150_FIFO_RESET)); in tvp5150_log_status()
253 tvp5150_read(sd, TVP5150_LINE_NUMBER_INT)); in tvp5150_log_status()
255 tvp5150_read(sd, TVP5150_PIX_ALIGN_REG_HIGH), in tvp5150_log_status()
256 tvp5150_read(sd, TVP5150_PIX_ALIGN_REG_LOW)); in tvp5150_log_status()
258 tvp5150_read(sd, TVP5150_FIFO_OUT_CTRL)); in tvp5150_log_status()
260 tvp5150_read(sd, TVP5150_FULL_FIELD_ENA)); in tvp5150_log_status()
262 tvp5150_read(sd, TVP5150_FULL_FIELD_MODE_REG)); in tvp5150_log_status()
264 dump_reg_range(sd, "CC data", TVP5150_CC_DATA_INI, in tvp5150_log_status()
267 dump_reg_range(sd, "WSS data", TVP5150_WSS_DATA_INI, in tvp5150_log_status()
270 dump_reg_range(sd, "VPS data", TVP5150_VPS_DATA_INI, in tvp5150_log_status()
273 dump_reg_range(sd, "VITC data", TVP5150_VITC_DATA_INI, in tvp5150_log_status()
276 dump_reg_range(sd, "Line mode", TVP5150_LINE_MODE_INI, in tvp5150_log_status()
285 static inline void tvp5150_selmux(struct v4l2_subdev *sd) in tvp5150_selmux() argument
288 struct tvp5150 *decoder = to_tvp5150(sd); in tvp5150_selmux()
309 v4l2_dbg(1, debug, sd, "Selecting video route: route input=%i, output=%i " in tvp5150_selmux()
314 tvp5150_write(sd, TVP5150_OP_MODE_CTL, opmode); in tvp5150_selmux()
315 tvp5150_write(sd, TVP5150_VD_IN_SRC_SEL_1, input); in tvp5150_selmux()
320 val = tvp5150_read(sd, TVP5150_MISC_CTL); in tvp5150_selmux()
325 tvp5150_write(sd, TVP5150_MISC_CTL, val); in tvp5150_selmux()
593 static int tvp5150_write_inittab(struct v4l2_subdev *sd, in tvp5150_write_inittab() argument
597 tvp5150_write(sd, regs->reg, regs->value); in tvp5150_write_inittab()
603 static int tvp5150_vdp_init(struct v4l2_subdev *sd, in tvp5150_vdp_init() argument
609 tvp5150_write(sd, TVP5150_FULL_FIELD_ENA, 0); in tvp5150_vdp_init()
613 tvp5150_write(sd, i, 0xff); in tvp5150_vdp_init()
617 tvp5150_write(sd, TVP5150_CONF_RAM_ADDR_HIGH, regs->reg >> 8); in tvp5150_vdp_init()
618 tvp5150_write(sd, TVP5150_CONF_RAM_ADDR_LOW, regs->reg); in tvp5150_vdp_init()
621 tvp5150_write(sd, TVP5150_VDP_CONF_RAM_DATA, regs->values[i]); in tvp5150_vdp_init()
629 static int tvp5150_g_sliced_vbi_cap(struct v4l2_subdev *sd, in tvp5150_g_sliced_vbi_cap() argument
635 v4l2_dbg(1, debug, sd, "VIDIOC_G_SLICED_VBI_CAP\n"); in tvp5150_g_sliced_vbi_cap()
662 static int tvp5150_set_vbi(struct v4l2_subdev *sd, in tvp5150_set_vbi() argument
667 struct tvp5150 *decoder = to_tvp5150(sd); in tvp5150_set_vbi()
673 v4l2_err(sd, "VBI can't be configured without knowing number of lines\n"); in tvp5150_set_vbi()
701 tvp5150_write(sd, reg, type); in tvp5150_set_vbi()
705 tvp5150_write(sd, reg+1, type); in tvp5150_set_vbi()
711 static int tvp5150_get_vbi(struct v4l2_subdev *sd, in tvp5150_get_vbi() argument
714 struct tvp5150 *decoder = to_tvp5150(sd); in tvp5150_get_vbi()
720 v4l2_err(sd, "VBI can't be configured without knowing number of lines\n"); in tvp5150_get_vbi()
732 pos = tvp5150_read(sd, reg) & 0x0f; in tvp5150_get_vbi()
736 pos = tvp5150_read(sd, reg + 1) & 0x0f; in tvp5150_get_vbi()
743 static int tvp5150_set_std(struct v4l2_subdev *sd, v4l2_std_id std) in tvp5150_set_std() argument
745 struct tvp5150 *decoder = to_tvp5150(sd); in tvp5150_set_std()
770 v4l2_dbg(1, debug, sd, "Set video std register to %d.\n", fmt); in tvp5150_set_std()
771 tvp5150_write(sd, TVP5150_VIDEO_STD, fmt); in tvp5150_set_std()
775 static int tvp5150_s_std(struct v4l2_subdev *sd, v4l2_std_id std) in tvp5150_s_std() argument
777 struct tvp5150 *decoder = to_tvp5150(sd); in tvp5150_s_std()
782 return tvp5150_set_std(sd, std); in tvp5150_s_std()
785 static int tvp5150_reset(struct v4l2_subdev *sd, u32 val) in tvp5150_reset() argument
787 struct tvp5150 *decoder = to_tvp5150(sd); in tvp5150_reset()
790 msb_id = tvp5150_read(sd, TVP5150_MSB_DEV_ID); in tvp5150_reset()
791 lsb_id = tvp5150_read(sd, TVP5150_LSB_DEV_ID); in tvp5150_reset()
792 msb_rom = tvp5150_read(sd, TVP5150_ROM_MAJOR_VER); in tvp5150_reset()
793 lsb_rom = tvp5150_read(sd, TVP5150_ROM_MINOR_VER); in tvp5150_reset()
796 v4l2_info(sd, "tvp%02x%02xam1 detected.\n", msb_id, lsb_id); in tvp5150_reset()
799 tvp5150_write(sd, TVP5150_REV_SELECT, 0); in tvp5150_reset()
802 v4l2_info(sd, "tvp%02x%02xa detected.\n", msb_id, lsb_id); in tvp5150_reset()
804 v4l2_info(sd, "*** unknown tvp%02x%02x chip detected.\n", in tvp5150_reset()
806 v4l2_info(sd, "*** Rom ver is %d.%d\n", msb_rom, lsb_rom); in tvp5150_reset()
811 tvp5150_write_inittab(sd, tvp5150_init_default); in tvp5150_reset()
814 tvp5150_vdp_init(sd, vbi_ram_default); in tvp5150_reset()
817 tvp5150_selmux(sd); in tvp5150_reset()
820 tvp5150_write_inittab(sd, tvp5150_init_enable); in tvp5150_reset()
823 tvp5150_write(sd, TVP5150_BRIGHT_CTL, decoder->bright); in tvp5150_reset()
824 tvp5150_write(sd, TVP5150_CONTRAST_CTL, decoder->contrast); in tvp5150_reset()
825 tvp5150_write(sd, TVP5150_SATURATION_CTL, decoder->contrast); in tvp5150_reset()
826 tvp5150_write(sd, TVP5150_HUE_CTL, decoder->hue); in tvp5150_reset()
828 tvp5150_set_std(sd, decoder->norm); in tvp5150_reset()
832 static int tvp5150_g_ctrl(struct v4l2_subdev *sd, struct v4l2_control *ctrl) in tvp5150_g_ctrl() argument
834 v4l2_dbg(1, debug, sd, "VIDIOC_G_CTRL called\n"); in tvp5150_g_ctrl()
838 ctrl->value = tvp5150_read(sd, TVP5150_BRIGHT_CTL); in tvp5150_g_ctrl()
841 ctrl->value = tvp5150_read(sd, TVP5150_CONTRAST_CTL); in tvp5150_g_ctrl()
844 ctrl->value = tvp5150_read(sd, TVP5150_SATURATION_CTL); in tvp5150_g_ctrl()
847 ctrl->value = tvp5150_read(sd, TVP5150_HUE_CTL); in tvp5150_g_ctrl()
853 static int tvp5150_s_ctrl(struct v4l2_subdev *sd, struct v4l2_control *ctrl) in tvp5150_s_ctrl() argument
864 v4l2_dbg(1, debug, sd, "VIDIOC_S_CTRL: id=%d, value=%d\n", in tvp5150_s_ctrl()
871 tvp5150_write(sd, TVP5150_BRIGHT_CTL, ctrl->value); in tvp5150_s_ctrl()
874 tvp5150_write(sd, TVP5150_CONTRAST_CTL, ctrl->value); in tvp5150_s_ctrl()
877 tvp5150_write(sd, TVP5150_SATURATION_CTL, ctrl->value); in tvp5150_s_ctrl()
880 tvp5150_write(sd, TVP5150_HUE_CTL, ctrl->value); in tvp5150_s_ctrl()
890 static int tvp5150_s_routing(struct v4l2_subdev *sd, const struct v4l2_routing *route) in tvp5150_s_routing() argument
892 struct tvp5150 *decoder = to_tvp5150(sd); in tvp5150_s_routing()
895 tvp5150_selmux(sd); in tvp5150_s_routing()
899 static int tvp5150_s_fmt(struct v4l2_subdev *sd, struct v4l2_format *fmt) in tvp5150_s_fmt() argument
912 tvp5150_write(sd, TVP5150_LUMA_PROC_CTL_1, 0x70); in tvp5150_s_fmt()
914 tvp5150_write(sd, TVP5150_VERT_BLANKING_START, 0x00); in tvp5150_s_fmt()
915 tvp5150_write(sd, TVP5150_VERT_BLANKING_STOP, 0x01); in tvp5150_s_fmt()
926 tvp5150_set_vbi(sd, vbi_ram_default, in tvp5150_s_fmt()
930 tvp5150_write(sd, TVP5150_FIFO_OUT_CTRL, 1); in tvp5150_s_fmt()
933 tvp5150_write(sd, TVP5150_FIFO_OUT_CTRL, 0); in tvp5150_s_fmt()
936 tvp5150_write(sd, TVP5150_FULL_FIELD_ENA, 0); in tvp5150_s_fmt()
940 tvp5150_write(sd, i, 0xff); in tvp5150_s_fmt()
945 static int tvp5150_g_fmt(struct v4l2_subdev *sd, struct v4l2_format *fmt) in tvp5150_g_fmt() argument
957 tvp5150_get_vbi(sd, vbi_ram_default, i); in tvp5150_g_fmt()
965 static int tvp5150_g_chip_ident(struct v4l2_subdev *sd, in tvp5150_g_chip_ident() argument
969 struct i2c_client *client = v4l2_get_subdevdata(sd); in tvp5150_g_chip_ident()
971 rev = tvp5150_read(sd, TVP5150_ROM_MAJOR_VER) << 8 | in tvp5150_g_chip_ident()
972 tvp5150_read(sd, TVP5150_ROM_MINOR_VER); in tvp5150_g_chip_ident()
980 static int tvp5150_g_register(struct v4l2_subdev *sd, struct v4l2_dbg_register *reg) in tvp5150_g_register() argument
982 struct i2c_client *client = v4l2_get_subdevdata(sd); in tvp5150_g_register()
988 reg->val = tvp5150_read(sd, reg->reg & 0xff); in tvp5150_g_register()
993 static int tvp5150_s_register(struct v4l2_subdev *sd, struct v4l2_dbg_register *reg) in tvp5150_s_register() argument
995 struct i2c_client *client = v4l2_get_subdevdata(sd); in tvp5150_s_register()
1001 tvp5150_write(sd, reg->reg & 0xff, reg->val & 0xff); in tvp5150_s_register()
1006 static int tvp5150_g_tuner(struct v4l2_subdev *sd, struct v4l2_tuner *vt) in tvp5150_g_tuner() argument
1008 int status = tvp5150_read(sd, 0x88); in tvp5150_g_tuner()
1014 static int tvp5150_queryctrl(struct v4l2_subdev *sd, struct v4l2_queryctrl *qc) in tvp5150_queryctrl() argument
1018 v4l2_dbg(1, debug, sd, "VIDIOC_QUERYCTRL called\n"); in tvp5150_queryctrl()
1077 struct v4l2_subdev *sd; in tvp5150_probe() local
1088 sd = &core->sd; in tvp5150_probe()
1089 v4l2_i2c_subdev_init(sd, c, &tvp5150_ops); in tvp5150_probe()
1102 tvp5150_log_status(sd); in tvp5150_probe()
1108 struct v4l2_subdev *sd = i2c_get_clientdata(c); in tvp5150_remove() local
1110 v4l2_dbg(1, debug, sd, in tvp5150_remove()
1114 v4l2_device_unregister_subdev(sd); in tvp5150_remove()
1115 kfree(to_tvp5150(sd)); in tvp5150_remove()