|
[FAQ08102][Camera Drv]Mt6572黑屏,绿屏,花屏,卡等问题分析思路
+ e9 I( S2 k% y( q0 U6 C" f, d( i7 B% i& E" Y4 p: e( ?
[DESCRIPTION]
) _/ w+ X# H/ E [; B如果在进入camera的时候,发现有读到ID,可是确黑屏或者绿屏,或者出现一条绿线等,请先将ISP寄存器dump出来做。
- `- _: K" x. q% O1 ^( q9 L- u8 g3 f0 t
第一手分析' G! ?8 G) L" W1 R
[SOLUTION]* Q- ?# Q$ I, V7 C i
2 R$ P3 M b) W1 X; C# _& R一,ISP寄存器dump出来的方法:
8 h+ j' |# b6 e, Y. ]3 G 1,直接在进入camera之后通过adb dump,命令“adb shell cat /proc/driver/isp_reg > 'your path' ”7 s! x+ _5 L& |; z* ^# f2 r1 \
2,手机有debug机制,遇到数据抓不满的时候会自动dump,在kernel log中搜索“K_ISP +”下面就是dump出来的寄存器。
7 S8 M# v8 | J$ C: h' P
) b% h0 ^! Q0 Q5 D二,分析Tg那边的寄存器来排查是sensor的数据有问题还是后端处理有问题:% l' v# t: O# f T, ~6 P
1,看TG Grab Window的配置:# m/ S6 ?* U, P; u& B0 ^
K_ISP0xF4013418 0x06310001 GRAB PIXEL Start/End$ |" S/ w; C" g
X1 q5 B* g3 h5 f/ T
6 [) P5 R& ~& h* V
K_ISP0xF401341C 0x02530001 GRAB LineStart/End
& Y1 U5 h. j) ` 2,看Tg的input以及output
- ?, I1 Z( d, E8 a/ t K_ISP0xF4013440 0x000e5b60 TGOutPutDataNum=Widthx2×Height(此
" M/ S4 r1 e: y( V1 Y6 {- F处的Width和Height为Grabwindow的配置,对应到driver中的Get Resolution里面的
0 [0 m/ G8 e: {9 N% ?值) 8 O& ?% X2 @1 p. x* c7 _! d3 |
K_ISP0xF4013448 0x06440259 [30:16]Input frame line counter + n- Z4 k# U$ W _# x1 E" W9 H
[15:0]Input frame pixel counter ' H) A p# M/ j* m0 i
6 H& ]" N+ A' n$ B& _/ v
注意:由于yuv1个pixel是由2个byte组成的,所以宽会等于抓到的byte/2;高是从
" Y, o* E. ?2 W6 L, P1开始算的,所以会+19 y7 ]) r- L3 O8 H3 B+ y
如果Grab window配置不对,请检查sensor driver中Getinfo函数中的startx,starty以及GetResolution函数中的/ l H( @; h. E# }1 M X0 }
Width和Height。
" r- q" a. ?( o2 [Tg In为sensor实际吐出来的数据,如果不对,需要检查sensor的setting,有可能是sensor吐出来的数据量不够或者配
. ?6 ?6 }. ?( v( e. n, X5 I- D置错误导致抓不到data;Tg OutPut为实际往后面输出的size,它应该等于GetResolution中的Width×Height×2,注意Tg的GrabWindow不能比TG的Input还要大,否则会抓不满报错。
7 A f% r6 t3 _* Q( X m6 q+ z$ z3 o! V+ m+ [5 M
我的设备打印出来的 K_ISP0xF4013440 为 0 也就是TGOutPutDataNum等于0 。有可能是什么原因造成的呢? sensor driver中Getinfo函数中的startx,starty应该怎么设置?
, w; b! i- z) Z: z9 } |
|