Lines Matching refs:decoder

29 MODULE_DESCRIPTION("Brooktree-819 video decoder driver");
77 static inline int bt819_write(struct bt819 *decoder, u8 reg, u8 value)
79 struct i2c_client *client = v4l2_get_subdevdata(&decoder->sd);
81 decoder->reg[reg] = value;
85 static inline int bt819_setbit(struct bt819 *decoder, u8 reg, u8 bit, u8 value)
87 return bt819_write(decoder, reg,
88 (decoder->reg[reg] & ~(1 << bit)) | (value ? (1 << bit) : 0));
91 static int bt819_write_block(struct bt819 *decoder, const u8 *data, unsigned int len)
93 struct i2c_client *client = v4l2_get_subdevdata(&decoder->sd);
109 decoder->reg[reg++] = data[1];
121 ret = bt819_write(decoder, reg, *data++);
131 static inline int bt819_read(struct bt819 *decoder, u8 reg)
133 struct i2c_client *client = v4l2_get_subdevdata(&decoder->sd);
174 struct bt819 *decoder = to_bt819(sd);
175 struct timing *timing = &timing_data[(decoder->norm & V4L2_STD_525_60) ? 1 : 0];
189 init[0x15 * 2 - 1] = (decoder->norm & V4L2_STD_625_50) ? 115 : 93; /* Chroma burst delay */
191 bt819_write(decoder, 0x1f, 0x00);
195 return bt819_write_block(decoder, init, sizeof(init));
202 struct bt819 *decoder = to_bt819(sd);
203 int status = bt819_read(decoder, 0x00);
237 struct bt819 *decoder = to_bt819(sd);
247 bt819_setbit(decoder, 0x01, 0, 1);
248 bt819_setbit(decoder, 0x01, 1, 0);
249 bt819_setbit(decoder, 0x01, 5, 0);
250 bt819_write(decoder, 0x18, 0x68);
251 bt819_write(decoder, 0x19, 0x5d);
252 /* bt819_setbit(decoder, 0x1a, 5, 1); */
256 bt819_setbit(decoder, 0x01, 0, 1);
257 bt819_setbit(decoder, 0x01, 1, 1);
258 bt819_setbit(decoder, 0x01, 5, 1);
259 bt819_write(decoder, 0x18, 0x7f);
260 bt819_write(decoder, 0x19, 0x72);
261 /* bt819_setbit(decoder, 0x1a, 5, 0); */
268 bt819_write(decoder, 0x03,
273 bt819_write(decoder, 0x04, timing->vdelay & 0xff);
274 bt819_write(decoder, 0x05, timing->vactive & 0xff);
275 bt819_write(decoder, 0x06, timing->hdelay & 0xff);
276 bt819_write(decoder, 0x07, timing->hactive & 0xff);
277 bt819_write(decoder, 0x08, (timing->hscale >> 8) & 0xff);
278 bt819_write(decoder, 0x09, timing->hscale & 0xff);
279 decoder->norm = std;
287 struct bt819 *decoder = to_bt819(sd);
297 if (decoder->input != input) {
299 decoder->input = input;
301 if (decoder->input == 0) {
302 bt819_setbit(decoder, 0x0b, 6, 0);
303 bt819_setbit(decoder, 0x1a, 1, 1);
305 bt819_setbit(decoder, 0x0b, 6, 1);
306 bt819_setbit(decoder, 0x1a, 1, 0);
315 struct bt819 *decoder = to_bt819(sd);
319 if (decoder->enable != enable) {
320 decoder->enable = enable;
321 bt819_setbit(decoder, 0x16, 7, !enable);
329 struct bt819 *decoder = to_bt819(sd);
334 bt819_write(decoder, 0x0a, ctrl->val);
338 bt819_write(decoder, 0x0c, ctrl->val & 0xff);
339 bt819_setbit(decoder, 0x0b, 2, ((ctrl->val >> 8) & 0x01));
343 bt819_write(decoder, 0x0d, (ctrl->val >> 7) & 0xff);
344 bt819_setbit(decoder, 0x0b, 1, ((ctrl->val >> 15) & 0x01));
349 bt819_write(decoder, 0x0e, (temp >> 7) & 0xff);
350 bt819_setbit(decoder, 0x0b, 0, (temp >> 15) & 0x01);
354 bt819_write(decoder, 0x0f, ctrl->val);
386 struct bt819 *decoder;
394 decoder = devm_kzalloc(&client->dev, sizeof(*decoder), GFP_KERNEL);
395 if (decoder == NULL)
397 sd = &decoder->sd;
400 ver = bt819_read(decoder, 0x17);
420 decoder->norm = V4L2_STD_NTSC;
421 decoder->input = 0;
422 decoder->enable = 1;
428 v4l2_ctrl_handler_init(&decoder->hdl, 4);
429 v4l2_ctrl_new_std(&decoder->hdl, &bt819_ctrl_ops,
431 v4l2_ctrl_new_std(&decoder->hdl, &bt819_ctrl_ops,
433 v4l2_ctrl_new_std(&decoder->hdl, &bt819_ctrl_ops,
435 v4l2_ctrl_new_std(&decoder->hdl, &bt819_ctrl_ops,
437 sd->ctrl_handler = &decoder->hdl;
438 if (decoder->hdl.error) {
439 int err = decoder->hdl.error;
441 v4l2_ctrl_handler_free(&decoder->hdl);
444 v4l2_ctrl_handler_setup(&decoder->hdl);
451 struct bt819 *decoder = to_bt819(sd);
454 v4l2_ctrl_handler_free(&decoder->hdl);