IMX6Q - YOCTO - TVP5150 Configuration?

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

IMX6Q - YOCTO - TVP5150 Configuration?

Jump to solution
2,437 Views
michaeldale
Contributor II

Hello all,

I am currently trying to setup the IMX6Q sabresd board running the dora branch of the fsl yocto to work with a TVP5150 video decoder ic on CSI0. I have noticed a lot of places on the community where the chip is mentioned but have not come across any code examples/device settings. I have rewritten the OV5642 file to implement my new driver, set the chip to output BT656 (with embedded syncs) and that is fine the driver settings seem to be configured ok as well because running

./mxc_v4l2_tvin.out -ow 720 -oh 625 -ol 10 -ot 20 -f UYVY

works fine in the respect that nothing moans and i get a black window, but that is it no images, could someone please shed some light? I have attached a few debugs that may be helpful.

root@imx6qsabresd:/unit_tests#GST_DEBUG=*:3 ./mxc_v4l2_tvin.out -ow 720 -oh 625 -ol 10 -ot 20 -f UYVY

ioctl_g_ifparm!

ioctl_init!

ioctl_dev_init!

ioctl_g_chip_ident!

TV decoder chip is tvp5150_cameraioctl_g_parm!

ioctl_s_parm!

ioctl_g_ifparm!

driver=mxc_vout, card=DISP3 FG, bus=, version=0x00000000, capabilities=0x04000002

fmt RGB565: fourcc = 0x50424752

fmt BGR24: fourcc = 0x33524742

fmt RGB24: fourcc = 0x33424752

fmt RGB32: fourcc = 0x34424752

fmt BGR32: fourcc = 0x34524742

fmt NV12: fourcc = 0x3231564e

fmt UYVY: fourcc = 0x59565955

fmt YUYV: fourcc = 0x56595559

fmt YUV422 planar: fourcc = 0x50323234

fmt YUV444: fourcc = 0x34343459

fmt YUV420: fourcc = 0x32315559

fmt YVU420: fourcc = 0x32315659

fmt TILED NV12P: fourcc = 0x50564e54

fmt TILED NV12F: fourcc = 0x46564e54

fmt YUV444 planar: fourcc = 0x50343434

start time = 1399970894 s, 435077 us

root@imx6qsabresd:/unit_tests# GST_DEBUG=*:2 gst-launch mfw_v4lsrc ! mfw_v4lsink

MFW_GST_V4LSRC_PLUGIN 3.0.9 build on Apr 17 2014 10:51:15.w_v4lsrc ! mfw_v4lsink

ioctl_g_ifparm!

ioctl_init!

ioctl_dev_init!

ERROR: v4l2 capture: slave not found!

0:00:00.137862658  1151    0x6ece0 WARN   octl_g_ifparm!

m          mfw_v4lsink mfw_gst_v4lsink.c:303:mfw_gst_v4l2sink_query_support_formats: unrecognized format:[Y444]YUV444

MFW_GST_V4LSINK_PLUGIN 3.0.9 build on Apr 17 2014 10:51:05.

Setting pipeline to PAUSED ...

ioctl_init!

ioctl_dev_init!

ioctl_g_chip_ident!

ioctl_enum_framesizes!

ioctl_g_parm!

ioctl_s_parm!

ioctl_g_ifparm!

Pipeline is live and does not need PREROLL ...

Setting pipeline imx-ipuv3 imx-ipuv3.0: IPU Warning - IPU_INT_STAT_5 = 0x00000001

to PLAYING ...

0:00:00.258041658  1151    0x6ece0 WARN                     bin /home/michaeld/fsl-community-bsp/build/tmp/work/cortexa9hf-vfp-neon-poky-linux-gnueabi/gstreamer/0.10.36-r2/gstreamer-0.10.36/gst/gstbin.c:2399:gst_bin_do_latency_func:<pipeline0> failed to query latency

New clock: GstSystemClock

0:00:00.304081325  1151 0x2c302600 WARN                     bin /home/michaeld/fsl-community-bsp/build/tmp/work/cortexa9hf-vfp-neon-poky-linux-gnueabi/gstreamer/0.10.36-r2/gstreamer-0.10.36/gst/gstbin.c:2395:gst_bin_do_latency_func:<pipeline0> did not really configure latency of 0:00:00.000000000

full screen size:720x480

0:00:00.304748991  1151 0x2c302600 WARN             mfw_v4lsink mfw_gst_v4l.c:1516:mfw_gst_v4l2_display_init: Wrong display width information

0:00:00.304881991  1151 0x2c302600 WARN             mfw_v4lsink mfw_gst_v4l.c:1520:mfw_gst_v4l2_display_init: Wrong display height information

[V4L Update Display]: left=0, top=0, width=720, height=480

set v4l display crop sucessfully

set v4l rotate sucessfully

full screen size:720x480

0:00:00.305954325  1151    0x23c30 WARN             mfw_v4lsink mfw_gst_v4l.c:1516:mfw_gst_v4l2_display_init: Wrong display width information

0:00:00.306084325  1151    0x23c30 WARN             mfw_v4lsink mfw_gst_v4l.c:1520:mfw_gst_v4l2_display_init: Wrong display height information

>>V4L_SINK: Actually buffer status:

        hardware buffer : 12

        software buffer : 0

imx-ipuv3 imx-ipuv3.0: IPU Warning - IPU_INT_STAT_5 = 0x00000001

imx-ipuv3 imx-ipuv3.0: IPU Warning - IPU_INT_STAT_5 = 0x00000001

^CCaught interrupt -- handling interrupt.

Interrupt: Stopping pipeline ...

Execution ended after 2003870333 ns.

Setting pipeline to PAUSED ...

Running time 0:00:02.004623333 render fps 22.947

Setting pipeline to READY ...

Setting pipeline to NULL ...

Total rendered:46

static int ioctl_g_ifparm(struct v4l2_int_device *s, struct v4l2_ifparm *p)

{

    if (s == NULL) {

        printk("ERROR!! no slave device set!\n");

        return -1;

    }

    printk("ioctl_g_ifparm!\n");

    memset(p, 0, sizeof(*p));

    p->if_type = V4L2_IF_TYPE_BT656;

    p->u.bt656.frame_start_on_rising_vs = 1;

    p->u.bt656.swap = 0;

    p->u.bt656.nobt_hs_inv = 0;

    p->u.bt656.nobt_vs_inv = 0;

    p->u.bt656.mode = V4L2_IF_TYPE_BT656_MODE_BT_8BIT;

    p->u.bt656.clock_min = (27000000);

    p->u.bt656.clock_max = (27000000);

    p->u.bt656.nobt_hs_inv = 1;

    p->u.bt656.bt_sync_correct = 0;

    /* TVP5150 has a dedicated clock so no clock settings are needed */

    return 0;

}

part of probe function

    memset(&tvp5150_data, 0, sizeof(tvp5150_data));

    tvp5150_data.i2c_client = client;

    tvp5150_data.streamcap.timeperframe.denominator = DEFAULT_FPS;

    tvp5150_data.streamcap.timeperframe.numerator = 1;

    tvp5150_data.pix.width = 720;

    tvp5150_data.pix.height = 625;

    tvp5150_data.pix.pixelformat = V4L2_PIX_FMT_UYVY;

    tvp5150_data.pix.priv = 1;

    tvp5150_data.on = true;

part of dev init

    tvp5150_data.on = true;

    tvp5150_write_reg(0x02, 0x01);// powerdown

    tvp5150_write_reg(0x03, 0x0D);// all outputs enabled   

    tvp5150_write_reg(0x04, 0x00);// autoswitch all formats

    tvp5150_write_reg(0x0d, 0x47);// bt656 mode with embedded syncs

    tvp5150_write_reg(0x02, 0x04);// powerup

thanks,

Michael Dale

Tags (3)
0 Kudos
1 Solution
976 Views
igorpadykov
NXP Employee
NXP Employee

Hi michael

for TVP5150 there were solutions, for example below

Re: i.MX53 IPU Deinterlacer

or do you mean that you have problem only with yocto ?

Best regards

chip

View solution in original post

0 Kudos
5 Replies
977 Views
igorpadykov
NXP Employee
NXP Employee

Hi michael

for TVP5150 there were solutions, for example below

Re: i.MX53 IPU Deinterlacer

or do you mean that you have problem only with yocto ?

Best regards

chip

0 Kudos
976 Views
michaeldale
Contributor II

Thank you for pointing me in the right direction

0 Kudos
976 Views
artitrivedi
Contributor I

Hi Michael,

Can you please tell me how did you fixed TVP5150 driver to work with imx6? I also have

Imx6q board with linux 3.10 kernel, tvp5150 driver is in drivers/media/i2c, which does not have

v4l2-int device support, it does not have ioctls_g_ifparam and other ioctls. Can you send me driver

which you have used?

TIA,

-Aarti

0 Kudos
976 Views
Wlodek_D_
Senior Contributor II

Hello Michael Dale,

Thank you for your quick response.

For details please see general advice in document pointed in previous response: Where to post a Discussion? (or if you do not see hyperlink in your browser please use direct link to   https://community.freescale.com/docs/DOC-99909  ) .

Regards,

Wlodek_D.

976 Views
michaeldale
Contributor II

Thank you,

I removed the other posts for tidiness.