Lines Matching refs:sd

37 	struct v4l2_subdev sd;  member
75 static inline struct adv7183 *to_adv7183(struct v4l2_subdev *sd) in to_adv7183() argument
77 return container_of(sd, struct adv7183, sd); in to_adv7183()
81 return &container_of(ctrl->handler, struct adv7183, hdl)->sd; in to_sd()
84 static inline int adv7183_read(struct v4l2_subdev *sd, unsigned char reg) in adv7183_read() argument
86 struct i2c_client *client = v4l2_get_subdevdata(sd); in adv7183_read()
91 static inline int adv7183_write(struct v4l2_subdev *sd, unsigned char reg, in adv7183_write() argument
94 struct i2c_client *client = v4l2_get_subdevdata(sd); in adv7183_write()
99 static int adv7183_writeregs(struct v4l2_subdev *sd, in adv7183_writeregs() argument
106 v4l2_err(sd, "invalid regs array\n"); in adv7183_writeregs()
115 adv7183_write(sd, reg, data); in adv7183_writeregs()
120 static int adv7183_log_status(struct v4l2_subdev *sd) in adv7183_log_status() argument
122 struct adv7183 *decoder = to_adv7183(sd); in adv7183_log_status()
124 v4l2_info(sd, "adv7183: Input control = 0x%02x\n", in adv7183_log_status()
125 adv7183_read(sd, ADV7183_IN_CTRL)); in adv7183_log_status()
126 v4l2_info(sd, "adv7183: Video selection = 0x%02x\n", in adv7183_log_status()
127 adv7183_read(sd, ADV7183_VD_SEL)); in adv7183_log_status()
128 v4l2_info(sd, "adv7183: Output control = 0x%02x\n", in adv7183_log_status()
129 adv7183_read(sd, ADV7183_OUT_CTRL)); in adv7183_log_status()
130 v4l2_info(sd, "adv7183: Extended output control = 0x%02x\n", in adv7183_log_status()
131 adv7183_read(sd, ADV7183_EXT_OUT_CTRL)); in adv7183_log_status()
132 v4l2_info(sd, "adv7183: Autodetect enable = 0x%02x\n", in adv7183_log_status()
133 adv7183_read(sd, ADV7183_AUTO_DET_EN)); in adv7183_log_status()
134 v4l2_info(sd, "adv7183: Contrast = 0x%02x\n", in adv7183_log_status()
135 adv7183_read(sd, ADV7183_CONTRAST)); in adv7183_log_status()
136 v4l2_info(sd, "adv7183: Brightness = 0x%02x\n", in adv7183_log_status()
137 adv7183_read(sd, ADV7183_BRIGHTNESS)); in adv7183_log_status()
138 v4l2_info(sd, "adv7183: Hue = 0x%02x\n", in adv7183_log_status()
139 adv7183_read(sd, ADV7183_HUE)); in adv7183_log_status()
140 v4l2_info(sd, "adv7183: Default value Y = 0x%02x\n", in adv7183_log_status()
141 adv7183_read(sd, ADV7183_DEF_Y)); in adv7183_log_status()
142 v4l2_info(sd, "adv7183: Default value C = 0x%02x\n", in adv7183_log_status()
143 adv7183_read(sd, ADV7183_DEF_C)); in adv7183_log_status()
144 v4l2_info(sd, "adv7183: ADI control = 0x%02x\n", in adv7183_log_status()
145 adv7183_read(sd, ADV7183_ADI_CTRL)); in adv7183_log_status()
146 v4l2_info(sd, "adv7183: Power Management = 0x%02x\n", in adv7183_log_status()
147 adv7183_read(sd, ADV7183_POW_MANAGE)); in adv7183_log_status()
148 v4l2_info(sd, "adv7183: Status 1 2 and 3 = 0x%02x 0x%02x 0x%02x\n", in adv7183_log_status()
149 adv7183_read(sd, ADV7183_STATUS_1), in adv7183_log_status()
150 adv7183_read(sd, ADV7183_STATUS_2), in adv7183_log_status()
151 adv7183_read(sd, ADV7183_STATUS_3)); in adv7183_log_status()
152 v4l2_info(sd, "adv7183: Ident = 0x%02x\n", in adv7183_log_status()
153 adv7183_read(sd, ADV7183_IDENT)); in adv7183_log_status()
154 v4l2_info(sd, "adv7183: Analog clamp control = 0x%02x\n", in adv7183_log_status()
155 adv7183_read(sd, ADV7183_ANAL_CLAMP_CTRL)); in adv7183_log_status()
156 v4l2_info(sd, "adv7183: Digital clamp control 1 = 0x%02x\n", in adv7183_log_status()
157 adv7183_read(sd, ADV7183_DIGI_CLAMP_CTRL_1)); in adv7183_log_status()
158 v4l2_info(sd, "adv7183: Shaping filter control 1 and 2 = 0x%02x 0x%02x\n", in adv7183_log_status()
159 adv7183_read(sd, ADV7183_SHAP_FILT_CTRL), in adv7183_log_status()
160 adv7183_read(sd, ADV7183_SHAP_FILT_CTRL_2)); in adv7183_log_status()
161 v4l2_info(sd, "adv7183: Comb filter control = 0x%02x\n", in adv7183_log_status()
162 adv7183_read(sd, ADV7183_COMB_FILT_CTRL)); in adv7183_log_status()
163 v4l2_info(sd, "adv7183: ADI control 2 = 0x%02x\n", in adv7183_log_status()
164 adv7183_read(sd, ADV7183_ADI_CTRL_2)); in adv7183_log_status()
165 v4l2_info(sd, "adv7183: Pixel delay control = 0x%02x\n", in adv7183_log_status()
166 adv7183_read(sd, ADV7183_PIX_DELAY_CTRL)); in adv7183_log_status()
167 v4l2_info(sd, "adv7183: Misc gain control = 0x%02x\n", in adv7183_log_status()
168 adv7183_read(sd, ADV7183_MISC_GAIN_CTRL)); in adv7183_log_status()
169 v4l2_info(sd, "adv7183: AGC mode control = 0x%02x\n", in adv7183_log_status()
170 adv7183_read(sd, ADV7183_AGC_MODE_CTRL)); in adv7183_log_status()
171 v4l2_info(sd, "adv7183: Chroma gain control 1 and 2 = 0x%02x 0x%02x\n", in adv7183_log_status()
172 adv7183_read(sd, ADV7183_CHRO_GAIN_CTRL_1), in adv7183_log_status()
173 adv7183_read(sd, ADV7183_CHRO_GAIN_CTRL_2)); in adv7183_log_status()
174 v4l2_info(sd, "adv7183: Luma gain control 1 and 2 = 0x%02x 0x%02x\n", in adv7183_log_status()
175 adv7183_read(sd, ADV7183_LUMA_GAIN_CTRL_1), in adv7183_log_status()
176 adv7183_read(sd, ADV7183_LUMA_GAIN_CTRL_2)); in adv7183_log_status()
177 v4l2_info(sd, "adv7183: Vsync field control 1 2 and 3 = 0x%02x 0x%02x 0x%02x\n", in adv7183_log_status()
178 adv7183_read(sd, ADV7183_VS_FIELD_CTRL_1), in adv7183_log_status()
179 adv7183_read(sd, ADV7183_VS_FIELD_CTRL_2), in adv7183_log_status()
180 adv7183_read(sd, ADV7183_VS_FIELD_CTRL_3)); in adv7183_log_status()
181 v4l2_info(sd, "adv7183: Hsync position control 1 2 and 3 = 0x%02x 0x%02x 0x%02x\n", in adv7183_log_status()
182 adv7183_read(sd, ADV7183_HS_POS_CTRL_1), in adv7183_log_status()
183 adv7183_read(sd, ADV7183_HS_POS_CTRL_2), in adv7183_log_status()
184 adv7183_read(sd, ADV7183_HS_POS_CTRL_3)); in adv7183_log_status()
185 v4l2_info(sd, "adv7183: Polarity = 0x%02x\n", in adv7183_log_status()
186 adv7183_read(sd, ADV7183_POLARITY)); in adv7183_log_status()
187 v4l2_info(sd, "adv7183: ADC control = 0x%02x\n", in adv7183_log_status()
188 adv7183_read(sd, ADV7183_ADC_CTRL)); in adv7183_log_status()
189 v4l2_info(sd, "adv7183: SD offset Cb and Cr = 0x%02x 0x%02x\n", in adv7183_log_status()
190 adv7183_read(sd, ADV7183_SD_OFFSET_CB), in adv7183_log_status()
191 adv7183_read(sd, ADV7183_SD_OFFSET_CR)); in adv7183_log_status()
192 v4l2_info(sd, "adv7183: SD saturation Cb and Cr = 0x%02x 0x%02x\n", in adv7183_log_status()
193 adv7183_read(sd, ADV7183_SD_SATURATION_CB), in adv7183_log_status()
194 adv7183_read(sd, ADV7183_SD_SATURATION_CR)); in adv7183_log_status()
195 v4l2_info(sd, "adv7183: Drive strength = 0x%02x\n", in adv7183_log_status()
196 adv7183_read(sd, ADV7183_DRIVE_STR)); in adv7183_log_status()
197 v4l2_ctrl_handler_log_status(&decoder->hdl, sd->name); in adv7183_log_status()
201 static int adv7183_g_std(struct v4l2_subdev *sd, v4l2_std_id *std) in adv7183_g_std() argument
203 struct adv7183 *decoder = to_adv7183(sd); in adv7183_g_std()
209 static int adv7183_s_std(struct v4l2_subdev *sd, v4l2_std_id std) in adv7183_s_std() argument
211 struct adv7183 *decoder = to_adv7183(sd); in adv7183_s_std()
214 reg = adv7183_read(sd, ADV7183_IN_CTRL) & 0xF; in adv7183_s_std()
233 adv7183_write(sd, ADV7183_IN_CTRL, reg); in adv7183_s_std()
240 static int adv7183_reset(struct v4l2_subdev *sd, u32 val) in adv7183_reset() argument
244 reg = adv7183_read(sd, ADV7183_POW_MANAGE) | 0x80; in adv7183_reset()
245 adv7183_write(sd, ADV7183_POW_MANAGE, reg); in adv7183_reset()
251 static int adv7183_s_routing(struct v4l2_subdev *sd, in adv7183_s_routing() argument
254 struct adv7183 *decoder = to_adv7183(sd); in adv7183_s_routing()
262 reg = adv7183_read(sd, ADV7183_IN_CTRL) & 0xF0; in adv7183_s_routing()
312 adv7183_write(sd, ADV7183_IN_CTRL, reg); in adv7183_s_routing()
317 reg = adv7183_read(sd, ADV7183_OUT_CTRL) & 0xC0; in adv7183_s_routing()
326 adv7183_write(sd, ADV7183_OUT_CTRL, reg); in adv7183_s_routing()
334 struct v4l2_subdev *sd = to_sd(ctrl); in adv7183_s_ctrl() local
341 adv7183_write(sd, ADV7183_BRIGHTNESS, val); in adv7183_s_ctrl()
344 adv7183_write(sd, ADV7183_CONTRAST, val); in adv7183_s_ctrl()
347 adv7183_write(sd, ADV7183_SD_SATURATION_CB, val >> 8); in adv7183_s_ctrl()
348 adv7183_write(sd, ADV7183_SD_SATURATION_CR, (val & 0xFF)); in adv7183_s_ctrl()
351 adv7183_write(sd, ADV7183_SD_OFFSET_CB, val >> 8); in adv7183_s_ctrl()
352 adv7183_write(sd, ADV7183_SD_OFFSET_CR, (val & 0xFF)); in adv7183_s_ctrl()
361 static int adv7183_querystd(struct v4l2_subdev *sd, v4l2_std_id *std) in adv7183_querystd() argument
363 struct adv7183 *decoder = to_adv7183(sd); in adv7183_querystd()
367 reg = adv7183_read(sd, ADV7183_IN_CTRL) & 0xF; in adv7183_querystd()
368 adv7183_write(sd, ADV7183_IN_CTRL, reg); in adv7183_querystd()
374 reg = adv7183_read(sd, ADV7183_STATUS_1); in adv7183_querystd()
406 adv7183_s_std(sd, decoder->std); in adv7183_querystd()
410 static int adv7183_g_input_status(struct v4l2_subdev *sd, u32 *status) in adv7183_g_input_status() argument
415 reg = adv7183_read(sd, ADV7183_STATUS_1); in adv7183_g_input_status()
423 static int adv7183_enum_mbus_code(struct v4l2_subdev *sd, in adv7183_enum_mbus_code() argument
434 static int adv7183_set_fmt(struct v4l2_subdev *sd, in adv7183_set_fmt() argument
438 struct adv7183 *decoder = to_adv7183(sd); in adv7183_set_fmt()
462 static int adv7183_get_fmt(struct v4l2_subdev *sd, in adv7183_get_fmt() argument
466 struct adv7183 *decoder = to_adv7183(sd); in adv7183_get_fmt()
475 static int adv7183_s_stream(struct v4l2_subdev *sd, int enable) in adv7183_s_stream() argument
477 struct adv7183 *decoder = to_adv7183(sd); in adv7183_s_stream()
488 static int adv7183_g_register(struct v4l2_subdev *sd, struct v4l2_dbg_register *reg) in adv7183_g_register() argument
490 reg->val = adv7183_read(sd, reg->reg & 0xff); in adv7183_g_register()
495 static int adv7183_s_register(struct v4l2_subdev *sd, const struct v4l2_dbg_register *reg) in adv7183_s_register() argument
497 adv7183_write(sd, reg->reg & 0xff, reg->val & 0xff); in adv7183_s_register()
540 struct v4l2_subdev *sd; in adv7183_probe() local
579 sd = &decoder->sd; in adv7183_probe()
580 v4l2_i2c_subdev_init(sd, client, &adv7183_ops); in adv7183_probe()
593 sd->ctrl_handler = hdl; in adv7183_probe()
613 adv7183_writeregs(sd, adv7183_init_regs, ARRAY_SIZE(adv7183_init_regs)); in adv7183_probe()
614 adv7183_s_std(sd, decoder->std); in adv7183_probe()
617 adv7183_set_fmt(sd, NULL, &fmt); in adv7183_probe()
631 struct v4l2_subdev *sd = i2c_get_clientdata(client); in adv7183_remove() local
633 v4l2_device_unregister_subdev(sd); in adv7183_remove()
634 v4l2_ctrl_handler_free(sd->ctrl_handler); in adv7183_remove()