Lines Matching full:decoder
4 * TI TVP5146/47 decoder driver
60 MODULE_DESCRIPTION("TVP514X linux decoder driver");
88 * struct tvp514x_decoder - TVP5146/47 decoder object
93 * @streaming: TVP5146/47 decoder streaming - enabled or disabled.
296 * Write a value to a register in an TVP5146/47 decoder device.
438 * @decoder: ptr to tvp514x_decoder structure
443 struct tvp514x_decoder *decoder) in tvp514x_configure() argument
449 tvp514x_write_regs(sd, decoder->tvp514x_regs); in tvp514x_configure()
462 * @decoder: pointer to tvp514x_decoder structure
471 struct tvp514x_decoder *decoder) in tvp514x_detect() argument
494 decoder->ver = rom_ver; in tvp514x_detect()
497 client->name, decoder->ver, in tvp514x_detect()
503 * tvp514x_querystd() - V4L2 decoder interface handler for querystd
512 struct tvp514x_decoder *decoder = to_decoder(sd); in tvp514x_querystd() local
527 input_sel = decoder->input; in tvp514x_querystd()
569 *std_id = decoder->std_list[current_std].standard.id; in tvp514x_querystd()
572 decoder->std_list[current_std].standard.name); in tvp514x_querystd()
577 * tvp514x_s_std() - V4L2 decoder interface handler for s_std
586 struct tvp514x_decoder *decoder = to_decoder(sd); in tvp514x_s_std() local
589 for (i = 0; i < decoder->num_stds; i++) in tvp514x_s_std()
590 if (std_id & decoder->std_list[i].standard.id) in tvp514x_s_std()
593 if ((i == decoder->num_stds) || (i == STD_INVALID)) in tvp514x_s_std()
597 decoder->std_list[i].video_std); in tvp514x_s_std()
601 decoder->current_std = i; in tvp514x_s_std()
602 decoder->tvp514x_regs[REG_VIDEO_STD].val = in tvp514x_s_std()
603 decoder->std_list[i].video_std; in tvp514x_s_std()
606 decoder->std_list[i].standard.name); in tvp514x_s_std()
611 * tvp514x_s_routing() - V4L2 decoder interface handler for s_routing
624 struct tvp514x_decoder *decoder = to_decoder(sd); in tvp514x_s_routing() local
644 if (!decoder->streaming) in tvp514x_s_routing()
661 decoder->tvp514x_regs[REG_INPUT_SEL].val = input_sel; in tvp514x_s_routing()
662 decoder->tvp514x_regs[REG_OUTPUT_FORMATTER1].val = output_sel; in tvp514x_s_routing()
708 /* Allow decoder to sync up with new input */ in tvp514x_s_routing()
721 decoder->input = input; in tvp514x_s_routing()
722 decoder->output = output; in tvp514x_s_routing()
730 * tvp514x_s_ctrl() - V4L2 decoder interface handler for s_ctrl
739 struct tvp514x_decoder *decoder = to_decoder(sd); in tvp514x_s_ctrl() local
748 decoder->tvp514x_regs[REG_BRIGHTNESS].val = value; in tvp514x_s_ctrl()
753 decoder->tvp514x_regs[REG_CONTRAST].val = value; in tvp514x_s_ctrl()
758 decoder->tvp514x_regs[REG_SATURATION].val = value; in tvp514x_s_ctrl()
767 decoder->tvp514x_regs[REG_HUE].val = value; in tvp514x_s_ctrl()
772 decoder->tvp514x_regs[REG_AFE_GAIN_CTRL].val = value; in tvp514x_s_ctrl()
782 * tvp514x_enum_mbus_fmt() - V4L2 decoder interface handler for enum_mbus_fmt
801 * tvp514x_mbus_fmt_cap() - V4L2 decoder interface handler for try/s/g_mbus_fmt
810 struct tvp514x_decoder *decoder = to_decoder(sd); in tvp514x_mbus_fmt() local
817 current_std = decoder->current_std; in tvp514x_mbus_fmt()
820 f->width = decoder->std_list[current_std].width; in tvp514x_mbus_fmt()
821 f->height = decoder->std_list[current_std].height; in tvp514x_mbus_fmt()
831 * tvp514x_g_parm() - V4L2 decoder interface handler for g_parm
835 * Returns the decoder's video CAPTURE parameters.
840 struct tvp514x_decoder *decoder = to_decoder(sd); in tvp514x_g_parm() local
852 current_std = decoder->current_std; in tvp514x_g_parm()
857 decoder->std_list[current_std].standard.frameperiod; in tvp514x_g_parm()
863 * tvp514x_s_parm() - V4L2 decoder interface handler for s_parm
867 * Configures the decoder to use the input parameters, if possible. If
873 struct tvp514x_decoder *decoder = to_decoder(sd); in tvp514x_s_parm() local
887 current_std = decoder->current_std; in tvp514x_s_parm()
890 decoder->std_list[current_std].standard.frameperiod; in tvp514x_s_parm()
896 * tvp514x_s_stream() - V4L2 decoder i/f handler for s_stream
906 struct tvp514x_decoder *decoder = to_decoder(sd); in tvp514x_s_stream() local
908 if (decoder->streaming == enable) in tvp514x_s_stream()
917 v4l2_err(sd, "Unable to turn off decoder\n"); in tvp514x_s_stream()
920 decoder->streaming = enable; in tvp514x_s_stream()
931 v4l2_err(sd, "Unable to turn on decoder\n"); in tvp514x_s_stream()
935 err = tvp514x_detect(sd, decoder); in tvp514x_s_stream()
937 v4l2_err(sd, "Unable to detect decoder\n"); in tvp514x_s_stream()
940 err = tvp514x_configure(sd, decoder); in tvp514x_s_stream()
942 v4l2_err(sd, "Unable to configure decoder\n"); in tvp514x_s_stream()
945 decoder->streaming = enable; in tvp514x_s_stream()
997 * tvp514x_probe() - decoder driver i2c probe handler
1001 * Register decoder as an i2c client device and V4L2
1007 struct tvp514x_decoder *decoder; in tvp514x_probe() local
1019 decoder = kzalloc(sizeof(*decoder), GFP_KERNEL); in tvp514x_probe()
1020 if (!decoder) in tvp514x_probe()
1024 *decoder = tvp514x_dev; in tvp514x_probe()
1026 memcpy(decoder->tvp514x_regs, tvp514x_reg_list_default, in tvp514x_probe()
1030 decoder->pdata = client->dev.platform_data; in tvp514x_probe()
1037 decoder->tvp514x_regs[REG_OUTPUT_FORMATTER2].val |= in tvp514x_probe()
1038 (decoder->pdata->clk_polarity << 1); in tvp514x_probe()
1039 decoder->tvp514x_regs[REG_SYNC_CONTROL].val |= in tvp514x_probe()
1040 ((decoder->pdata->hs_polarity << 2) | in tvp514x_probe()
1041 (decoder->pdata->vs_polarity << 3)); in tvp514x_probe()
1043 decoder->tvp514x_regs[REG_VIDEO_STD].val = in tvp514x_probe()
1047 sd = &decoder->sd; in tvp514x_probe()
1050 v4l2_ctrl_handler_init(&decoder->hdl, 5); in tvp514x_probe()
1051 v4l2_ctrl_new_std(&decoder->hdl, &tvp514x_ctrl_ops, in tvp514x_probe()
1053 v4l2_ctrl_new_std(&decoder->hdl, &tvp514x_ctrl_ops, in tvp514x_probe()
1055 v4l2_ctrl_new_std(&decoder->hdl, &tvp514x_ctrl_ops, in tvp514x_probe()
1057 v4l2_ctrl_new_std(&decoder->hdl, &tvp514x_ctrl_ops, in tvp514x_probe()
1059 v4l2_ctrl_new_std(&decoder->hdl, &tvp514x_ctrl_ops, in tvp514x_probe()
1061 sd->ctrl_handler = &decoder->hdl; in tvp514x_probe()
1062 if (decoder->hdl.error) { in tvp514x_probe()
1063 int err = decoder->hdl.error; in tvp514x_probe()
1065 v4l2_ctrl_handler_free(&decoder->hdl); in tvp514x_probe()
1066 kfree(decoder); in tvp514x_probe()
1069 v4l2_ctrl_handler_setup(&decoder->hdl); in tvp514x_probe()
1071 v4l2_info(sd, "%s decoder driver registered !!\n", sd->name); in tvp514x_probe()
1078 * tvp514x_remove() - decoder driver i2c remove handler
1081 * Unregister decoder as an i2c client device and V4L2
1087 struct tvp514x_decoder *decoder = to_decoder(sd); in tvp514x_remove() local
1090 v4l2_ctrl_handler_free(&decoder->hdl); in tvp514x_remove()
1091 kfree(decoder); in tvp514x_remove()