器件型号:DRA754
工具/软件:Linux
我们已将 adv7182视频解码器连接到 J6上用于其中一个目标的 vin3a 视频输入端口(VIP)。 adv7182的可用驱动程序(drivers/media/i2c/adv7180.c)用作 v4l2 subdev。 Subdev 注册成功、VIP 驱动程序和设备节点即将推出、但视频捕获 失败。 即将出现超时错误。 在开始流处理之前、vpdma 和 VIP 设置以及 IRQ 使能似乎正常、代码流符合预期。 将 ADV7182芯片设置为在自由运行模式下运行,在 status3寄存器中可以清楚地看到,它被设置为在自由运行模式下运行。 但在 VIP 上看不到中断。
以下是一些详细信息:
- 这是 DTS 的变化:
/* ADV7182视频编码器*/
vip2{(&V)
状态="正常";
};
vin3a{(&V)
状态="正常";
端点@0{
从模式;
远程端点=<&adv7182>;
};
};
i2c2{(&I)
状态="正常";
时钟频率=<400000>;
adv7182-in@20{
兼容="Adi、adv7182";
reg =<0x20>;
pwrdwn-GPIO =<&GPIO6 4 GPIO_ACTIVE_HIGH_>;
RESET-GPIO =<&GPIO6 18 GPIO_ACTIVE_HIGH_>;
INQ-GPIO =<&GPIO5 16 GPIO_ACTIVE_LOW_>;
远程=<&vip2>;
端口{
adv7182:端点{
总线宽度=<8>;
远程端点=<&V vin3a>;
CHANNELS =<0>;
};
};
};
};
- 将其设置为嵌入式同步 BT.656和8b 数据接口。
- 内核版本为 GSSDK 3.01。 *在 adv7180.c 驱动程序中,在此基础上添加了“adv7180_s_stream”函数 extra。
- 日志如下所示;
[2.766616] vip2-s0:vip_set_slice_path:
[2.774831] vip2-s0:vip_set_slice_path:data_path_select (0000010C):80008000
[2.782678] vip2-s1:vip_set_slice_path:
[2.790990] vip2-s1:vip_set_slice_path:data_path_select (00000110):80008000
[2.798482] VIP 48990000.VIP:正在加载固件 vpdma-1b8.bin
OMAP-HSMMC_HL_hwinfo = 0x0 memsize = 0x0
[2.818544] VIP 48990000.VIP:已加载 VPDMA 固件
[2.838065] vip2-s0:已记录内窥
[2.846825] vip2-s0:为1个子设备注册异步通知器
mnt# insmod adv7180.ko
[31.979539] adv7180 1-0020:找到的芯片@ 0x20 (OMAP I2C 适配器)
[32.054377] vip2-s0:vIP_async_bound
[32.058115] vip2-s0:端口 A:使用 subdev adv7180 1-0020进行捕获
[32.065199] vip2-s0:subdev adv7180 1-0020:代码:2006 idx:0
[32.071510] vip2-s0:匹配的 fourcc:YUYV:代码:2006 idx:0
[32.093108] vip2-s0:器件注册为 video0
[32.103259] vip2-s0:vIP_async_complete
[32.109483] vip2-s0:vIP_open
[32.109527] vip2-s0:vip_init_port:G_MBUS_Fmt subdev MBUS_code:2006 fourcc:YUYV 大小:720x480
[32.109541] vip2-s0:Calc_format_size:FourCC:YUV size:720x480 BPL:1440 img_size:691200
[32.109547] vip2-s0:init_stream fourcc:YUYV 大小:720x480 BPL:1440 img_size:691200
[32.1051] vip2-s0:init_stream vpdma 数据类型:0x07
[32.109556] vip2-s0:vip_init_stream:流实例0xec46a800
[32.109718] vip2-s0:vIP_release
[32.109727] vip2-s0:vip_release_stream:流实例0xec46a800
[32.109733] vip2-s0:vip_release_port:端口实例0xee97f810
运行测试应用程序:
:/mnt#./capture
***启动应用程序***
[36.193749] vip2-s0:vIP_open
[36.227863] vip2-s0:vip_init_port:g_MBUS_fmt subdev MBUS_code:2006 fourcc:YUYV 大小:720x480
[36.243799] vip2-s0:Calc_format_size:FourCC:YUV size:720x480 BPL:1440 img_size:691200
[36.252638] vip2-s0:init_stream fourcc:YUYV 大小:720x480 BPL:1440 img_size:691200
[36.260921] vip2-s0:init_stream vpdma 数据类型:0x07
[36.266291] vip2-s0:vip_init_stream:流实例0xec46a800
[36.294565] vip2-s0:裁剪(0、0)/720x480 (720x480)
[36.304630] vip2-s0:s_fmt input fourcc:YUYV size:720x576
[36.318473] vip2-s0:try _fmt fourcc:YUYV 大小:720x576
[36.324260] vip2-s0:try _fmt 最佳 subdev 大小:0x0
[36.335750] vip2-s0:Calc_format_size:FourCC:YUV size:128x128 BPL:256 img_size:32768
[36.344504] vip2-s0:s_fmt try_fmt fmt fcc:YUYV 大小:128x128
[36.350712] vip2-s0:s_fmt fourcc:YUYV 大小:128x128 BPL:256 img_size:32768
[36.357997] vip2-s0:s_fmt pix_TO_MBUS MBUS_CODE:2006大小:0x0
[36.400192] vip2-s0:s_fmt subdev fmt MBUS_code:2006大小:720x480
[36.406749] vip2-s0:s_fmt vpdma 数据类型:0x07
[36.428627] vip2-s0:获取4个大小均为32768的缓冲区。
[36.476174] vip2-s0:添加了 MMR_ADB 配置说明
[36.481404] vip2-s0:添加了 sc_coeff_h 配置描述
[36.486372] vip2-s0:添加了 sc_coeff_v 配置描述
[36.492254] vip2-s0:CFD SC_CLIENT 7 slice_id:0
[36.497125] vip2-s0:提交列表编号0上的描述
[36.515476] vip2-s0:vip_set_slice_path:
[36.524278] vip2-s0:vip_set_slice_path:data_path_select (0000010C):00010210
[36.578804] vip2-s0:start_streaming: buf 0xee6bf000 4.
[36.635164] vip2-s0:start_streaming: start_dma buf 0xee6bf000
[36.645388] vip2-s0:start_dma:buf:0xee6bf000、VB:0xec46ac68、dma_addr:bd480000
**启动捕获279 **
**主要694 **
选择超时
[38.690035] vip2-s0:vIP_release
[38.697601] vip2-s0:vIP_STOP_STREGUSIC:
[38.702255] vip2-s0:vIP_disable_sc_path:
[38.706454] vip2-s0:vip_set_slice_path:
[38.715048] vip2-s0:vip_set_slice_path:data_path_select (0000010C):20010200
[38.750216] vip2-s0:清除通道编号:102
[38.754614] vip2-s0:vip_release_stream:流实例0xec46a800
[38.761666] vip2-s0:vip_release_port:端口实例0xee97f810
如果我需要在 VIP 驱动程序中进行任何配置来支持 adv7182视频解码器,请告诉我们。