|
|
[FAQ08102][Camera Drv]Mt6572黑屏,绿屏,花屏,卡等问题分析思路/ R, A$ P& H' E8 `1 E
$ a8 I2 r0 I- \2 |, m0 I[DESCRIPTION]$ S1 D5 P. i0 j- q
如果在进入camera的时候,发现有读到ID,可是确黑屏或者绿屏,或者出现一条绿线等,请先将ISP寄存器dump出来做。 h" o- U- c( e Y/ q
7 K, F* O# ^3 L h8 i第一手分析$ A+ l# v3 f& ^1 O8 K1 h: r
[SOLUTION]& M6 I2 y- K3 l! u1 d
% ~7 C/ A6 B# j% ^( @) e) B一,ISP寄存器dump出来的方法:
; {8 f+ g# Z& l! @, f+ d( q# ] 1,直接在进入camera之后通过adb dump,命令“adb shell cat /proc/driver/isp_reg > 'your path' ”
, ?7 J6 B! x6 }7 I H( T 2,手机有debug机制,遇到数据抓不满的时候会自动dump,在kernel log中搜索“K_ISP +”下面就是dump出来的寄存器。
* c& Q9 A# L$ k f1 L' q* i K5 \& y# ]/ F8 z: e( b
二,分析Tg那边的寄存器来排查是sensor的数据有问题还是后端处理有问题:
+ A! j. F& ^. r6 T7 I5 j 1,看TG Grab Window的配置:
' {0 M; P8 m8 v4 I K_ISP0xF4013418 0x06310001 GRAB PIXEL Start/End
3 L5 w1 L/ D* a; s
" y$ e0 K2 m8 l
7 `2 [. C$ u3 q0 C. P K_ISP0xF401341C 0x02530001 GRAB LineStart/End, E3 Z! y% ~* L0 a P1 H" _& [1 `
2,看Tg的input以及output7 Z, t o9 D+ G9 m
K_ISP0xF4013440 0x000e5b60 TGOutPutDataNum=Widthx2×Height(此6 l8 x& h$ h. B; C
处的Width和Height为Grabwindow的配置,对应到driver中的Get Resolution里面的- `! @& o% D. A% v. ]' ]% p8 T
值)
2 }2 W+ \# n2 P6 E, v$ u+ ^/ [ K_ISP0xF4013448 0x06440259 [30:16]Input frame line counter
% A1 g; u8 B9 S. J# k[15:0]Input frame pixel counter
/ d# P9 D, E: v8 j9 ~' h- s+ s- p
注意:由于yuv1个pixel是由2个byte组成的,所以宽会等于抓到的byte/2;高是从; u0 O2 L5 x. d1 Q3 v
1开始算的,所以会+1
7 E/ f$ s3 b! k5 E K: |如果Grab window配置不对,请检查sensor driver中Getinfo函数中的startx,starty以及GetResolution函数中的
4 o. C' V, _! a+ q3 @7 A- EWidth和Height。
+ U9 t- Z$ P. P" \" s) k# a0 tTg In为sensor实际吐出来的数据,如果不对,需要检查sensor的setting,有可能是sensor吐出来的数据量不够或者配
t/ m+ W5 {' R: H置错误导致抓不到data;Tg OutPut为实际往后面输出的size,它应该等于GetResolution中的Width×Height×2,注意Tg的GrabWindow不能比TG的Input还要大,否则会抓不满报错。
! u+ F5 S! j% f4 b( m3 s8 C1 X1 s
9 R8 J5 b( \; Q. P我的设备打印出来的 K_ISP0xF4013440 为 0 也就是TGOutPutDataNum等于0 。有可能是什么原因造成的呢? sensor driver中Getinfo函数中的startx,starty应该怎么设置?; H3 E9 H; X3 g
|
|