This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Capture video from FPGA

Other Parts Discussed in Thread: TVP7002

Hi,

I am working on the custom 8148 board which doesnt have a tvp7002/tvp514x decoder chips we intend to get the video data from the FPGA and feed it into vip0/1, but the capture driver seems to make subdev calls to subdev driver (tvp7002/tv514x) as per v4l framework. So I intend to write a dummy decoder driver which registers a v4l2 subdev and return success for the subdev calls made by the bridge/host driver.

My question is the above work around fine Or is there any easy way to get around this ?

Thanks,

--Prabhakar Lad

  • Hello,

    Here is some link which might be in help:

    http://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/716/t/169616
    http://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/717/p/218042/773907#pi239031349=1
    http://e2e.ti.com/support/embedded/linux/f/354/t/162958
    http://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/717/t/321313

    Best Regards,
    Margarita
  • Hi Margarita,

    Thanks for links! But none of the links talk about FPGA emulating as subdevice so that OMX calls wont fail.

    Thanks,
    --Prabhakar Lad
  • Hello,

    The capture modules takes the pdata from ti81xxvin_config structure, to the capture driver, with the following piece of code:

    static int __init ti81xx_vin_init(void)
    {
    int r;
    hdvpss_capture_dev.dev.platform_data = &ti81xx_hsvpss_capture_cfg;
    if (cpu_is_ti814x()) {
    hdvpss_capture_sdev_info[0].ti81xxvin_select_decoder =
    vps_ti814x_select_video_decoder;
    hdvpss_capture_sdev_info[0].ti81xxvin_set_mode =
    vps_ti814x_set_tvp7002_filter;
    hdvpss_capture_sdev_info[0].decoder_id = 0;
    hdvpss_capture_sdev_info[0].i2c_adapter_id = 3;
    hdvpss_capture_sdev_info[1].ti81xxvin_select_decoder =
    NULL;
    hdvpss_capture_sdev_info[1].ti81xxvin_set_mode =
    NULL;
    hdvpss_capture_sdev_info[1].decoder_id = 0;
    hdvpss_capture_sdev_info[1].i2c_adapter_id = 3;
    } else {
    .....
    }
    r = platform_device_register(&hdvpss_capture_dev);
    if (r)
    printk(KERN_ERR "unable to register ti81xx_vin device\n");
    else
    printk(KERN_INFO "registered ti81xx_vin device\n");
    return r;

    }

    In my case since the decoder is a fpga I'll fill the decoder_id/i2c_adapter_id to 0 (dont care) Is this data being also used by HDVPSS firmware ? Does the HDVPSS (for which no source code is available) makes calls to subdev using above data ?

    Thanks,
    --Prabhakar Lad