在rk android14上面调了一款rk628H hdmi转lvds的板子,现在测试发现点屏的时候,开机会概率性的出现黑屏不显示的问题。
出现黑屏的时候,休眠唤醒发现有时可以亮,有时也亮不了。抓取了log,对比正常时和不正常时的log,发现clk上有些差异,但是多测试几遍,发现有时正常的时候,也和不正常时的clk一模一样。
bash
[ 3.530194][ T8] rk628 9-0050: hdmirx driver version: 0.1.0
[ 3.530746][ T8] rk628 9-0050: rk628_display_work: hdmirx detect status:0x15
[ 3.540269][ T83] usb 1-1: new high-speed USB device number 2 using xhci-hcd
[ 3.658402][ T8] rk628 9-0050: tmdsclk_cnt:1555, modetclk_cnt_hs:3, modetclk_cnt_vs:5914,vs:10
[ 3.658418][ T8] rk628 9-0050: read wxh:800x1280, total:920x1394, SCDC_REGS1:0x80000f00, cnt:0
[ 3.662696][ T8] rk628 9-0050: cnt_num:1000, tmds_cnt:1556, hs_cnt:3, vs_cnt:5914, hofs:28
[ 3.662711][ T8] rk628 9-0050: SCDC_REGS1:0x80000f00, act:800x1280, total:920x1394, fps:60, pixclk:77022000
[ 3.662724][ T8] rk628 9-0050: hfp:92, hs:5, hbp:23, vfp:78, vs:10, vbp:26, interlace:0
[ 3.688453][ T83] usb 1-1: New USB device found, idVendor=1a86, idProduct=8091, bcdDevice=13.10
[ 3.688467][ T83] usb 1-1: New USB device strings: Mfr=0, Product=2, SerialNumber=0
[ 3.688475][ T83] usb 1-1: Product: USB HUB
[ 3.735860][ T83] hub 1-1:1.0: USB hub found
[ 3.735942][ T83] hub 1-1:1.0: 4 ports detected
[ 3.745980][ T8] rk628 9-0050: hdmirx plug in
[ 3.745995][ T8] rk628 9-0050: input: 0, output: 0
[ 3.746538][ T8] rk628 9-0050: hdmirx success
[ 3.748034][ T8] rk628 9-0050: dsp_frame_vst:4 dsp_frame_hst:908
[ 3.808267][ T8] rk628 9-0050: adjust cpll to 1155330000Hz
[ 3.808281][ T8] rk628 9-0050: src 800x1280 clock:77022
[ 3.808292][ T8] rk628 9-0050: dst 800x1280 clock:77022
后面试着换timing参数看能不能解决。原来的timing参数如下:
bash
clock-frequency = <77000000>;
hactive = <800>;
vactive = <1280>;
hback-porch = <24>;
hfront-porch = <91>;
vback-porch = <26>;
vfront-porch = <78>;
hsync-len = <5>;
vsync-len = <10>;
换成后面的timing参数后测试没有出现黑屏的情况了:
bash
clock-frequency = <72000000>;
hactive = <800>;
vactive = <1280>;
hback-porch = <24>;
hfront-porch = <56>;
vback-porch = <26>;
vfront-porch = <14>;
hsync-len = <20>;
vsync-len = <10>;
原来的timing参数直接用lvds接口点是没有问题的,但是rk628H转出来就不行,这说明这个芯片对参数的要求还是比较苛刻,兼容性没有那么高。