【全志平台】A64平台 TP9950 BT656输入驱动调试(1)驱动调试1
1. 前言
承接上篇文章, 这里主要是驱动调试部分
2. 调试记录
(1)硬件引脚梳理
9950没有上电时序要求,直接在dts中将PMU电配好即可
(2) 调试I2C
tp9950地址为0x44;
使用CCI测试 /sys/devices/tp9950;
发现I2C不通;
a.查看MCLK发现没有信号, MCLK正常
b. 查看I2C上拉情况, 正常
c. 查看电压情况, 1.8V正常
后来发现是操作原因导致
原因: I2C地址使用错了,应该确实是用0x88,而不是用七位地址0x44
(可能这个版本的I2C地址确实是加上读写位的)
I2C reg读取正常:
(3) 编译图像采集程序
全志平台SDK里面有测试通过的,图像采集程序
路径:
/linux-3.10/drivers/media/platform/sunxi-vfe/test
修改Makefile指定交叉工具链
(4)采集图像
测试命令: csi_test 0 0 640 480 ./ 0 10
尝试采集图像: 采集失败
采集log如下:
[ 2019.459831] [VFE]vfe_open
[ 2019.463020] [VFE]vfe_runtime_resume
[ 2019.479045] [VFE]..........................vfe clk open!.......................
[ 2019.487182] [VFE]vfe_open ok
[ 2019.490401] [VFE_WARN]NOT found this item: tp9950, you can add this sensor in the sensor_list_t!
[ 2019.500260] [VFE]Set csi core clk = 300000000, after Set csi core clk = 300000000
[ 2019.520016] [TW2866]CSI_SUBDEV_PWR_ON!
[ 2019.525402] [VFE]mclk on
[ 2019.596433] [TW2866]sensor_init
[ 2019.600049] [TW2866]reg 0x01 rdval = 0x8
[ 2019.604518] [TW2866]reg 0x02 rdval = 0xc2
[ 2019.609086] [TW2866]reg 0x06 rdval = 0x32
[ 2019.613551] [TW2866]sensor_s_parm
[ 2019.617178] [TW2866]sensor_s_fmt
[ 2019.630280] [TW2866]s_fmt = 2006, width = 1280, height = 720
[ 2019.636455] [TW2866]s_fmt end
[ 2019.639700] csi->frame_info.frm_byte_size = 1382400
resolution got from sensor = 128[ 2019.645324] [VFE]queue_setup, buffer count=8, size=1382400
0*720
[ 2019.654234] csi_test-842 ion_alloc:522 buffer alloc fail ! heap id 4, len 1384448
[ 2019.663091] ion_alloc carveout failed!!
[ 2019.668246] csi_test-842 ion_alloc:522 buffer alloc fail ! heap id 4, len 1384448
[ 2019.676645] ion_alloc carveout failed!!
[ 2019.681413] csi_test-842 ion_alloc:522 buffer alloc fail ! heap id 4, len 1384448
[ 2019.689579] ion_alloc carveout failed!!
[ 2019.694745] csi_test-842 ion_alloc:522 buffer alloc fail ! heap id 4, len 1384448
[ 2019.703067] ion_alloc carveout failed!!
[ 2019.707743] csi_test-842 ion_alloc:522 buffer alloc fail ! heap id 4, len 1384448
[ 2019.716130] ion_alloc carveout failed!!
[ 2019.721146] csi_test-842 ion_alloc:522 buffer alloc fail ! heap id 4, len 1384448
[ 2019.729311] ion_alloc carveout failed!!
[ 2019.734237] csi_test-842 ion_alloc:522 buffer alloc fail ! heap id 4, len 1384448
[ 2019.742555] ion_alloc carveout failed!!
[ 2019.747500] csi_test-842 ion_alloc:522 buffer alloc fail ! heap id 4, len 1384448
[ 2019.755893] ion_alloc carveout failed!!
VIDIOC_STREAMON ok
select timeout[ 2021.763256] [VFE]vfe_close
VIDIOC_STREAMOFF ok
*********[ 2021.767092] [TW2866]CSI_SUBDEV_PWR_OFF!
****************mode 0 test fail[ 2021.774226] [VFE]mclk off
ed at the 9 time!!
[ 2021.816503] [VFE]vfe_runtime_suspend
[ 2021.820487] [VFE]..........................vfe clk close!.......................
[ 2021.834875] [VFE]vfe_close end
#
(5)排查原因
a . tp9950信号测试
这边测了下MCLK Vsync D0~D7是有信号的
b. ion内存分配报错
可能原因: csi_test程序中申请了8个buffer,则 1280720302 8=442M,而A64的ion buffer只分配了256M
解决办法: 将csi_tesi的buffer申请到4个
现象: 发现也是一样的现象
看驱动源码继续查问题,发现ion应该申请成功了:
即上面的CARVEOUT申请失败了,但下面的DMA申请成功了
(因为下面的没有报错)
v4l2-core/videobuf2-dma-contig.c
所以这部分报错可以忽略
c. 查看A64寄存器
cd /sys/class/sunxi_dump/
echo 0x01cb0000,0x01cb009c>dump;cat dump
offset
0x80 1280
0x84 360
0x88 640 1280
0x8c 480 640
这是不接相机查的接口,发现和上面的一样的,这就郁闷了
- 分享
- 举报
-
浏览量:7033次2020-09-10 09:46:52
-
浏览量:13462次2020-09-07 11:31:46
-
浏览量:8416次2020-11-26 14:22:19
-
浏览量:8362次2021-01-20 17:04:49
-
浏览量:10996次2020-12-16 18:56:54
-
浏览量:7977次2021-01-08 15:04:53
-
浏览量:6221次2021-01-15 17:26:20
-
浏览量:4245次2020-09-23 19:01:05
-
浏览量:8729次2021-01-15 16:31:31
-
浏览量:7138次2021-01-16 14:52:44
-
浏览量:6079次2020-10-21 16:08:13
-
浏览量:10148次2021-01-22 16:07:20
-
浏览量:5380次2021-08-04 11:09:42
-
浏览量:6742次2020-09-28 16:30:39
-
浏览量:11324次2020-12-16 19:13:45
-
浏览量:5553次2021-01-08 16:18:43
-
浏览量:5622次2020-09-18 11:28:51
-
浏览量:6917次2020-11-26 17:02:47
-
浏览量:10280次2020-11-26 15:59:29
-
广告/SPAM
-
恶意灌水
-
违规内容
-
文不对题
-
重复发帖
free-jdx
感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明