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.

[参考译文] TVP5146M2:AM5728-EVM 与 TVP5146m2模块、无法设置格式错误

Guru**** 1673970 points
Other Parts Discussed in Thread: TVP5146, AM5728
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/932709/tvp5146m2-am5728-evm-with-tvp5146m2-module-unable-to-set-format-error

器件型号:TVP5146M2
主题中讨论的其他器件:TVP5146

大家好

我正在尝试从 AM5728-EVM 上的 TVP5146模块中的 TVP5146模拟视频解码器捕获电影、并使用"ti-processor-sdk-linux-am57xx-evm-06.03.00.106" SDK。 我使用'AM5728VIP 和 V4L2接口以及 TVP5146模拟视频解码器问题'线程、现在我可以在'dmesg'输出上看到这些消息。

[3.547762]  tvp514x 4-005D:tvp514x 4-005D 已注册解码器驱动程序!!
(笑声)
[71.493672] vin3a:port a:using subdev tvp514x 4-005D for capture
[71.556900] YU3:matched fourcc:
 1 [7556908] vincc:
 vincc:fouryV:code:2006 idx:1 [7556908] vinc:matched
 vincc:vincc:vincc:vincc:2006 vincc:1 [75515:viny2:viny2006 viny:vidx:2006 vidx:vinc:2006 vinc:v64x:vinc:vinc
3...
[71.569860] vin3a-0:登记为 video1的设备
[71.591215] vin3a-0:登记为 video2的设备
[71.605026] vin3a-0:登记为 video3
的设备[71.621337] vin3a-0:登记为 video4
的设备...
[80.214845] vin3a:subdev 默认 MBUS_fmt 0000不匹配。
 [80.267339] vin3a:init_port set_fmt 在 subdev 中失败:(-22)
[80.267346] vin3a:vIP_init_port:g_MBUS_Fmt subdev MBUS_code:2006 fourcc:UYVY 大小:0x0
[80.267396] vin3a :gvive_port_v3a:g_v0.128_v248b_size_ve:ve0:v248b@v64x248b@v64x248b@vina.v64_v0@vine@v64x248b@v64x248b@vina.v0@v64x248v@v64x85b@vina.v@v0@vina.v0@v0@v64x248v0@v64x248v@vina.vina.v0@
 
 
 流实例0x0000ec495000
[ 80.303069] vin3a:CALC_FORMAT_SIZE:FourCC:UYVY 大小:128x128 BPL:256 img_size:32768
[ 80.303078] vin3a 0:init_stream four3a:UYVY 大小:128x128 BPL:256_SIZE:32768
 :0x000080248v0_v0_vinc
 
 :vinc:0x802483208v0_v0_v0_v3.3a
 init_stream vpdma 数据类型:0x27
[80.329246] vin3a-0:vIP_init_stream:流实例0x000000494000
[80.329314] vin3a:init_format_size:inc:128x128 bPL:256 img_size:32768
[ 80.329323] vin3a:vincc:0x0000803a-v64_vin流
 大小:0x00003236326_v3vinc:v0_v3v3v3.3a:vini20_v3.3a v3.3a vini20_v3.3a:v3.3bv3.3a vini20_v3.3bv3.3bv3.3bv3.3bv3.3bv3.3bv3.3bv3.3bv3.3bv3.3bv3.3bv3.3a
 :v3.3bv3.3bv3.3bv3.3bv3.3bv
 vip_release
[80.411004] vin3a-0:vip_release_stream:stream instance 0x186bfccdec495000
[80.412996] vin3a-0:vip_release
[80.413015] vin3a-0:vip_release_stream:vip_dec4979 [80.432817] vive_release_vive_vive_release_vive_vive_vive_release_vive_vive_vive_vive_vive_vive-04840806400000
 
 
 
 :vip:vive_vive_v648064806400780647040 vip:vip:v648064806400000 vip:vip:vip vin648064806480648064806400000 vip:vip:vip:vip vinv 

当我运行 Yavta 命令'yavta -C60 -fUYVY -Fvout_720x576_yuiv.yUV -s720x576 /dev/video1时、系统无法设置格式:

器件/dev/video1已打开。
器件`platform:vip2:vin3a:stream0'上的`vip'是视频输出(不含 mplanes)器件。
无法设置格式:无效参数(22)。 

执行 yavta 命令后的'dmesg'输出如下所示:

[1460.287542] vin3a-0:vIP_open
[1460.312409] vin3a:subdev 默认 MBUS_Fmt 0000不匹配。
[1460.341420] vin3a:init_port set_fmt 在 subdev 中失败:(-22)
[1460.341425] vin3a:vIP_init_port:g_MBUS_Fmt subdev MBUS_code:2006 fourcc:UYVY 大小:0x0
[1460.341471] vin3a:gv64_format_v248_v_simp:

vinv83a:0x248_v_sime_ve64_ve= 0x83a:vinve64_v0_vinve0
:vinve248_v_sim_ve= 0x83a:ve64_v0_ve64_ve64_ve= 0x83a:vinvinve248_v_sim_ve= 0x248_v_sim_ve= 0x83a:ve= 0x83a: 流实例0x0000ec494000
[ 1460.424091] vin3a-0:s_fmt 输入 fourcc:UYVY 大小:720x576 BPL:0 img_size:0
[ 1460.424099] vinaca-0:try fmt four3a:UYVY 大小:720x576
[ 1460.424120] vinc:vinc
0
:vinc 0:vinc
0:vintry_v04824168:vinc:vinc:vinc s_fvinmt fourcc:UYVY 大小:128x128 bpl:256 img_size:32768
[ 1460.424173] vin3a-0:s_fpix_TO_MBUS MBUS_code:2006大小:0x0
[ 1460.453179] vinmta-0:set_fmt 在 subdev
中失败[ 0.45364_vip vinsp_release

:0x64_bvip vin流:0x36406246vip vin64] bvin64_bvidec1 vin0[14624364179] vinvin64_vinvinvip vin64_port_release:0x4000 vinvinvidc3640624364bvip vin

我调试了代码、我发现当调用'tvp514x_get_pad_format'时、'filed'、'code'、'colorspace'、'width' 返回格式的"高度"为零。 此外、"tvp514x_set_pad_format"始终返回"EINVAL"。 有人可以帮助我调试这两个函数、并找出系统无法设置格式的原因吗?

我在 tvp514x.c 文件的'tvp514x_get_pad_format'和'tvp514x_set_pad_format'中添加了一些调试消息、如下所示:

静态 int tvp514x_set_pad_format (struct v4l2_subdev * sd、
struct v4l2_subdev_pad_config * cfg、
struct v4l2_subdev_format * fmt)
{
struct tvp514x_decoder *解码器= TO_SD (SD);v4l2_subdev_format * fmt!
!"调试"%2_und_und_unde+!
"、"%2_undi!"、"%2_unde+!!"、"%2_unde_det_unde+!!" FMT->format.field、V4L2_field_interlaved);
v4l2_info (SD、"ALI-Debug %d、%d!!!\n"、 FMT->format.code、media_BUS_FMT_UYVY8_2X8);
v4l2_info (SD、"Ai-Debug %d、%d!!\n"、 FMT->format.colorspace、V4L2_colorspace_SMPTE170M);
v4l2_info (SD、"ALI-Debug %ld、%ld!!\n"、 fmt->format.width、tvp514x_std_list[decers->curry_std].width);
v4l2_info (SD、"ALI-Debug %ld、%ld!!!\n"、 fmt->format.height、tvp514x_std_list[解码器->curry_std].height);

if (fmt->format.field!= v4L2_field_interlaved ||
fmt->format.code != media_BUS_FMT_UYVY8_2X8||
fmt->format.colorspace!= V4L2_colorspace_SMPTE170M ||
fmt->format.width != tvp514x_std_list[decers->curry_std].width ||
fmt->format.height!= tvp514x_std_list[decer->curry_std].height)
return -eINVAL;

v4l2_info (SD、"Ali- Debug end %s!!!!\n"、__func__);
decoder -> format = fmt->info

;return 0
;}v4t_unstab_de2






= vt_unt + tude+ v32_unt + tude+ t_tradere+ tv32_t_t_tude+ t_t_tude+ t_tv32+ t_tude+






v4l2_info (SD、"ALI-Debug %d!!\n"、(= V4L2_SUBDEV_FORMAT_ACTIVE));
v4l2_info (SD、 "ALI-Debug %d、%d!!!\n"、decoder -> format.field、V4L2_field_interlaved);
v4l2_info (SD、 "ALI-Debug %d、%d!!!\n"、decoder -> format.code、media_BUS_FMT_UYVY8_2X8);
v4l2_info (SD、 "ALI-Debug %d、%d!!!\n"、解码器->format.colorspace、V4L2_colorspace_SMPTE170M);
v4l2_info (SD、 "ALI-Debug %ld、%ld!!!\n"、解码器->format.width、tvp514x_std_list[解码器->curry_std].width);
v4l2_info (SD、 "ALI-Debug %ld、%ld!!!\n"、DECODER->format.height、tvp514x_std_list[DECOer->curry_std].height);

if (= V4L2_SUBDEV_FORMAT_ACTIVE){
format->format = decoder ->
format 0;
}format->v4L2_codest.code

= v2_del_format=v_format>V4std_format->v40std_format->Vtv40std_format->v4std_format->v_format>v40st.64_format=v_format->v_format->v_format>v40std_format->v_format=v_format=v40_format=v_format=v_format=v40_format>v40_format->v40_format>v40_format>v_format=v40_format<= v40_v_





返回0;
}

这里是 dmesg 的输出

root@am57xx-EVM:~# dmesg | grep 'Ali-Debug'
[80.208283] tvp514x 4-005D:Ali-Debug start tvp514x_get_pad_format!
[80.220990] tvp514x 4-005D:ALI-Debug 1!
[80.251948] tvp514x 4-005D:Ali-Debug 0、4!!
[80.264053] tvp514x 4-005D:Ali-Debug 0、8198!!
[80.272094] tvp514x 4-005D:ALI-Debug 0、1!!
[80.300798] tvp514x 4-005D:ALI-Debug 0、0!!
[80.336792] tvp514x 4-005D:ALI-Debug 0、0!!
[80.405515] tvp514x 4-005D:ALI-Debug 启动 tvp514x_set_pad_format!
[80.447949] tvp514x 4-005D:Ali-Debug 0、4!!
[80.455601] tvp514x 4-005D:Ali-Debug 8198、8198!!
[80.504178] tvp514x 4-005D:ALI-Debug 0、1!!
[80.520343] tvp514x 4-005D:ALI-Debug 0、0!!
[80.551447] tvp514x 4-005D:ALI-Debug 0、0!!
[129.879144] tvp514x 4-005D:ALI-Debug 启动 tvp514x_get_pad_format!!
[129.887134] tvp514x 4-005D:ALI-Debug 1!!
[129.891249] tvp514x 4-005D:ALI-Debug 0、4!!
[129.896001] tvp514x 4-005D:Ali-Debug 0、8198!!
[129.900639] tvp514x 4-005D:ALI-Debug 0、1!!
[129.905451] tvp514x 4-005D:ALI-Debug 0、0!!
[129.909863] tvp514x 4-005D:ALI-Debug 0、0!!
[129.914737] tvp514x 4-005D:ALI-Debug 启动 tvp514x_set_pad_format!!
[129.921226] tvp514x 4-005D:ALI-Debug 0、4!!
[129.928232] tvp514x 4-005D:Ali-Debug 8198、8198!!
[129.934122] tvp514x 4-005D:Ali-Debug 0、1!!
[129.938617] tvp514x 4-005D:ALI-Debug 0、0!!
[129.943025] tvp514x 4-005D:ALI-Debug 0、0!!
[130.031589] tvp514x 4-005D:ALI-Debug 启动 tvp514x_set_pad_format!!
[130.038071] tvp514x 4-005D:ALI-Debug 1、4!!
[130.042474] tvp514x 4-005D:Ali-Debug 8198、8198!!
[130.047369] tvp514x 4-005D:ALI-Debug 1、1!!
[130.051770] tvp514x 4-005D:ALI-Debug 0、0!!
[130.056142] tvp514x 4-005D:ALI-Debug 0、0!!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    有人能帮我解决这个问题吗?

    此外、这是'i2cdump'命令的输出

    root@am57xx-EVM:~# i2cdump -f -y 4 0x5d
    、未指定大小(使用字节数据访问)
    0 1 2 3 4 5 6 7 8 9 A b c d f 0123456789abcdef
    00:00 0f 00 00 23 10 00 02 80 80 80 00 0e 00??????????????。
    10:80 80 80 80 80 80 80 55 00 25 03 00 40 00 04 00 ????? U.%?...@...
    20:07 00 01 00 15 00 00 00 cc 00 00 00 00 00 00 00 00 00 00 ??
    30:00 05 00 40 00 ff ff ff ff ff 00 11 38 00 6A 81……@…… ?8.j?
    40:00 20 0d 02 80 04 20 20 20 20 00 09 00 09 00 09 00 09。 ???? ???
    50:00 09 00 1 f 1 f 64 00 00 00 00 00 00 00 00 00 00 00
    60:00 00 00 00 00 00 00 00 00 0a 45 08 ff 04… “E”...
    70:08 00 19 00 16 8a 64 06 1e 40 00 00 03 00?????d??@?。
    80:51 46 00 09 00 00 00 00 00 00 00 00 00 00 7d 00 00 00 QF }。
    90:00 20 1D 64 03 00 00 00 00 00 00 00 00 24 00 06。 ?D?。。 $。?
    A0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    B0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 ?..
    C0:00 00 1e 00 22 00 50 00 00 00 00 00 00 00 00 00 00 00……………………………………………………
    D0:00 00 00 00 00 06 1b ff 00 00 00 00 00 00 00 00 00...... ???
    E0:FB fb 7f 00 fb fb fb fb 01 00 00 00 00 00 fb??????? … ?
    F0:00 00 00 00 00 00 00 00 00 fb fb fb fb fb fb FB fb… ?????? 

    此致、
    Ali