在MT6572平臺上面調試camera
遇到isp timeout
硬體訊號都正常!這是一些LOG
css
K_ISP ERR: Timeout: Clear(1), IrqStatus(0x00000080), WaitStatus(0x00000001), Timeout(2000)
K_ISP INF: +
而我看MTK FAQ08102 裏這麼說
markdown
[FAQ08102][Camera Drv]Mt6572黑屏,綠屏,花
屏,卡等問題分析思路
[DESCRIPTION]
如果在進入camera的時候,發現有讀到ID,可是確黑屏或者綠屏,或者出現一條綠線等,請先將ISP寄存器dump出來做
第一手分析
[SOLUTION]
一,ISP寄存器dump出來的方法:
1,直接在進入camera之後通過adb dump,命令"adb shell cat /proc/driver/isp_reg > 'your path' "
2,手機有debug機制,遇到數據抓不滿的時候會自動dump,在kernel log中蒐索"K_ISP +"下麵就是dump出來的寄
存器
二,分析Tg那邊的寄存器來排查是sensor的數據有問題還是後端處理有問題:
1,看TG Grab Window的配寘:
K_ISP0xF4013418 0x06310001 GRAB PIXEL Start/End
K_ISP0xF401341C 0x02530001 GRAB LineStart/End
2,看Tg的input以及output
K_ISP0xF4013440 0x000e5b60 TGOutPutDataNum=Widthx2×Height(此
處的Width和Height為Grabwindow的配寘,對應到driver中的Get Resolution裡面的
值)
K_ISP0xF4013448 0x06440259 [30:16]Input frame line counter
[15:0]Input frame pixel counter
注意:由於YUV1個pixel是由2個byte組成的,所以寬會等於抓到的byte/2;高是從
1開始算的,所以會+1
如果Grab window配寘不對,請檢查sensor driver中Getinfo函數中的startx,starty以及GetResolution函數中的
Width和Height。
Tg In為sensor實際吐出來的數據,如果不對,需要檢查sensor的setting,有可能是sensor吐出來的數據量不够或者配
置錯誤導致抓不到data;Tg OutPut為實際往後面輸出的size,它應該等於GetResolution中的Width×Height×2,注意
Tg的GrabWindow不能比TG的Input還要大,否則會抓不滿報錯
我的設備列印出來的 K_ISP0xF4013440 為 0 也就是TGOutPutDataNum等於0 。有可能是什麼原因造成的呢?sensor driver中Getinfo函數中的startx,starty應該怎麼設定?
Hal的log
perl
E/ImgSensorDrv( 141): [setScenario]Err( 595):[setScenario]: Sensor clock too slow = 24 753
E/iio/camio( 141): iio/camio[mediatek/platform/mt6572/hardware/camera/core/imageio/pipe/CamIOPipe/CamIOPipe.cpp, sendCommand, line0731] ERROR: CamIOPipe sendCommand NOT SUPPORT!
E/iio/camio( 141): iio/camio[mediatek/platform/mt6572/hardware/camera/core/imageio/pipe/CamIOPipe/CamIOPipe.cpp, sendCommand, line0731] ERROR: CamIOPipe sendCommand NOT SUPPORT!
E/iio/camio( 141): iio/camio[mediatek/platform/mt6572/hardware/camera/core/imageio/pipe/CamIOPipe/CamIOPipe.cpp, sendCommand, line0731] ERROR: CamIOPipe sendCommand NOT SUPPORT!
E/iio/camio( 141): iio/camio[mediatek/platform/mt6572/hardware/camera/core/imageio/pipe/CamIOPipe/CamIOPipe.cpp, sendCommand, line0731] ERROR: CamIOPipe sendCommand NOT SUPPORT!
E/iio/camio( 141): iio/camio[mediatek/platform/mt6572/hardware/camera/core/imageio/pipe/CamIOPipe/CamIOPipe.cpp, irq, line0610] ERROR: IRQ:NOT SUPPORT pass path
E/IspDrv ( 141): IspDrv[mediatek/platform/mt6572/hardware/camera/core/drv/isp/isp_drv.cpp, waitIrq, line0399] ERROR: ISP_IOC_WAIT_IRQ fail(-1)
E/IspDrv ( 141): IspDrv[mediatek/platform/mt6572/hardware/camera/core/drv/isp/isp_drv.cpp, waitIrq, line0405] ERROR: SENINF reg 0x14014018=0x00000078
E/IspDrv ( 141): IspDrv[mediatek/platform/mt6572/hardware/camera/core/drv/isp/isp_drv.cpp, waitIrq, line0411] ERROR: SENINF reg 0x14014618=0x00000000
E/IspDrv ( 141): IspDrv[mediatek/platform/mt6572/hardware/camera/core/drv/isp/isp_drv.cpp, waitBufReady, line1139] ERROR: waitIrq( ISP_DRV_INT_PASS1_TG1_DON_ST ) fail
E/iio/camio( 141): iio/camio[mediatek/platform/mt6572/hardware/camera/core/imageio/pipe/CamIOPipe/CamIOPipe.cpp, dequeOutBuf, line0332] ERROR: waitBufReady failed
E/MtkCam/VSSScen( 141): [deque] mpCamIOPipe->dequeOutBuf fail (deque){#740:mediatek/platform/mt6572/hardware/camera/core/hwscenario/VSSScenario.cpp}
E/MtkCam/PrvCQT( 141): (1957)[dropFrame] drop frame failed (dropFrame){#1432:mediatek/platform/mt6572/hardware/camera/hal/adapter/MtkPhoto/Preview/PreviewCmdQueThread.cpp}
E/IspDrv ( 141): IspDrv[mediatek/platform/mt6572/hardware/camera/core/drv/isp/isp_drv.cpp, waitIrq, line0399] ERROR: ISP_IOC_WAIT_IRQ fail(-1)
网友评论:
ISP TIMEOUT 是因為BB已經跟CAMERA通訊上了,但是BB等待camera吐數據超時,我遇到過幾次,十有八九都是DATA線的問題,72並口有幾根線跟MIPI LANE是共用的,檢查一下。
大家有遇到类似问题吗,觉的会是什么原因呢?
文章来源:https://bbs.16rd.com/thread-20140-1-42.html
《Android Camera开发入门》、《Camx初认识》已经上架,可以点击了解 -> 小驰成长圈 |期待见证彼此的成长
觉得不错,点个赞呗