A patch to fix MX51 VPU resume failure based on Android R10.4

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

A patch to fix MX51 VPU resume failure based on Android R10.4

A patch to fix MX51 VPU resume failure based on Android R10.4

Issue Description

When running Android R10.4 on MX51 BBG, the system can not resume sometimes by following the test steps:

1) Enable CLAA-WVGA lcd panel - single display.

2) Play a video in Gallery.

3) Press power key to suspend the system.

4) Press power key to resume the system.

5) Do 3) and 4) continuously.

Debug Details

When adding the following debug information into vpu_resume function in file drivers/mxc/vpu/mxc_vpu.c, the system gets hang into while loop with the log "VPU Blocking 1**************":

static int vpu_resume(struct platform_device *pdev) {

        int i;

                WRITE_REG(BITVAL_PIC_RUN, BIT_INT_ENABLE);

                WRITE_REG(0x1, BIT_BUSY_FLAG);

                WRITE_REG(0x1, BIT_CODE_RUN);

                while (READ_REG(BIT_BUSY_FLAG)) {

                          printk("VPU Blocking 1**************\r\n");

               };

}

Root Cause

In some use cases,  VPU power gating didn't happen after vpu_suspend() returned successfully because some other devices refused to suspend or other reasons. So vpu_resume() ran FW init code when VPU was idle instead of power off, which could keep BIT_BUSY_FLAG always be 1.

Solution

In vpu_resume(), if VPU PC is not 0, which means VPU is still running, skip running FW init code. See attached patch based on R10.4.

添付
%3CLINGO-SUB%20id%3D%22lingo-sub-1117439%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3EAndroid%20R10.4%E3%81%AB%E5%9F%BA%E3%81%A5%E3%81%8FMX51%20VPU%E3%81%AE%E5%86%8D%E9%96%8B%E5%A4%B1%E6%95%97%E3%82%92%E4%BF%AE%E6%AD%A3%E3%81%99%E3%82%8B%E3%81%9F%E3%82%81%E3%81%AE%E3%83%91%E3%83%83%E3%83%81%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1117439%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%26lt%3Bmeta%20http-equiv%3D%22Content-Type%22%20content%3D%22text%2Fhtml%3B%20charset%3Dutf-8%22%20%2F%26gt%3B%0A%3CH1%20id%3D%22toc-hId-381620979%22%20id%3D%22toc-hId-1304245544%22%3E%E5%95%8F%E9%A1%8C%E3%81%AE%E8%AA%AC%E6%98%8E%3C%2FH1%3E%3CP%3EAndroid%20R10.4%E3%82%92MX51%20BBG%E3%81%A7%E5%AE%9F%E8%A1%8C%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%E5%A0%B4%E5%90%88%E3%80%81%E3%83%86%E3%82%B9%E3%83%88%E6%89%8B%E9%A0%86%E3%81%AB%E5%BE%93%E3%81%A3%E3%81%A6%E3%82%82%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E3%81%8C%E5%86%8D%E9%96%8B%E3%81%A7%E3%81%8D%E3%81%AA%E3%81%84%E5%A0%B4%E5%90%88%E3%81%8C%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3CP%3E1)CLAA-WVGA%E6%B6%B2%E6%99%B6%E3%83%91%E3%83%8D%E3%83%AB%E3%82%92%E6%9C%89%E5%8A%B9%E3%81%AB%E3%81%97%E3%81%BE%E3%81%99-%E3%82%B7%E3%83%B3%E3%82%B0%E3%83%AB%E3%83%87%E3%82%A3%E3%82%B9%E3%83%97%E3%83%AC%E3%82%A4%E3%80%82%3C%2FP%3E%3CP%3E2)%E3%82%AE%E3%83%A3%E3%83%A9%E3%83%AA%E3%83%BC%E3%81%A7%E3%83%93%E3%83%87%E3%82%AA%E3%82%92%E5%86%8D%E7%94%9F%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3CP%3E3)%E9%9B%BB%E6%BA%90%E3%82%AD%E3%83%BC%E3%82%92%E6%8A%BC%E3%81%97%E3%81%A6%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E3%82%92%E4%B8%80%E6%99%82%E5%81%9C%E6%AD%A2%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3CP%3E4)%E9%9B%BB%E6%BA%90%E3%82%AD%E3%83%BC%E3%82%92%E6%8A%BC%E3%81%97%E3%81%A6%E3%80%81%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E3%82%92%E5%86%8D%E9%96%8B%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3CP%3E5)3)%E3%81%A84)%E3%82%92%E9%80%A3%E7%B6%9A%E3%81%97%E3%81%A6%E8%A1%8C%E3%81%84%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CH1%20id%3D%22toc-hId--1425833484%22%20id%3D%22toc-hId--503208919%22%3E%3C%2FH1%3E%3CH1%20id%3D%22toc-hId-1061679349%22%20id%3D%22toc-hId-1984303914%22%3E%E3%83%87%E3%83%90%E3%83%83%E3%82%B0%E3%81%AE%E8%A9%B3%E7%B4%B0%3C%2FH1%3E%3CP%3E%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%20drivers%2Fmxc%2Fvpu%2Fmxc_vpu.c%20%E3%81%AE%20vpu_resume%20%E9%96%A2%E6%95%B0%E3%81%AB%E6%AC%A1%E3%81%AE%E3%83%87%E3%83%90%E3%83%83%E3%82%B0%E6%83%85%E5%A0%B1%E3%82%92%E8%BF%BD%E5%8A%A0%E3%81%99%E3%82%8B%E3%81%A8%E3%80%81%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E3%81%AF%E3%83%AD%E3%82%B0%20%22VPU%20Blocking%201**************%22%20%E3%81%A7%20while%20%E3%83%AB%E3%83%BC%E3%83%97%E3%81%AB%E9%99%A5%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3CP%3Estatic%20int%20vpu_resume(struct%20platform_device%20*pdev)%20%7B%3C%2FP%3E%3CP%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20int%20i%3B%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3EWRITE_REG(BITVAL_PIC_RUN%E3%80%81BIT_INT_ENABLE)%3B%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3EWRITE_REG(0x1%E3%80%81BIT_BUSY_FLAG)%3B%3C%2FP%3E%3CP%3EWRITE_REG(0x1%2C%20BIT_CODE_RUN)%3B%3C%2FP%3E%3CP%3Ewhile%20(READ_REG(BIT_BUSY_FLAG))%20%7B%3C%2FP%3E%3CP%3Eprintk(%22VPU%E3%83%96%E3%83%AD%E3%83%83%E3%82%AD%E3%83%B3%E3%82%B0%201**************%5Cr%5Cn%22)%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%26nbsp%3B%20%7D%3B%3C%2FP%3E%3CP%3E%7D%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CH1%20id%3D%22toc-hId--745775114%22%20id%3D%22toc-hId-176849451%22%3E%E6%A0%B9%E6%9C%AC%E5%8E%9F%E5%9B%A0%3C%2FH1%3E%3CP%3E%E4%B8%80%E9%83%A8%E3%81%AE%E3%83%A6%E3%83%BC%E3%82%B9%E3%82%B1%E3%83%BC%E3%82%B9%E3%81%A7%E3%81%AF%E3%80%81%E4%BB%96%E3%81%AE%E3%83%87%E3%83%90%E3%82%A4%E3%82%B9%E3%81%8C%E4%B8%80%E6%99%82%E5%81%9C%E6%AD%A2%E3%82%92%E6%8B%92%E5%90%A6%E3%81%97%E3%81%9F%E3%81%AA%E3%81%A9%E3%81%AE%E7%90%86%E7%94%B1%E3%81%A7%E3%80%81vpu_suspend()%20%E3%81%8C%E6%AD%A3%E5%B8%B8%E3%81%AB%E6%88%BB%E3%81%A3%E3%81%9F%E5%BE%8C%E3%81%AB%20VPU%20%E3%83%91%E3%83%AF%E3%83%BC%E3%82%B2%E3%83%BC%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0%E3%81%8C%E7%99%BA%E7%94%9F%E3%81%97%E3%81%BE%E3%81%9B%E3%82%93%E3%81%A7%E3%81%97%E3%81%9F%E3%80%82%E3%81%9D%E3%81%AE%E3%81%9F%E3%82%81%E3%80%81vpu_resume()%20%E3%81%AF%E3%80%81VPU%20%E3%81%8C%E9%9B%BB%E6%BA%90%E3%82%AA%E3%83%95%E3%81%A7%E3%81%AF%E3%81%AA%E3%81%8F%E3%82%A2%E3%82%A4%E3%83%89%E3%83%AB%E7%8A%B6%E6%85%8B%E3%81%AE%E3%81%A8%E3%81%8D%E3%81%AB%20FW%20init%20%E3%82%B3%E3%83%BC%E3%83%89%E3%82%92%E5%AE%9F%E8%A1%8C%E3%81%97%E3%80%81BIT_BUSY_FLAG%20%E3%82%92%E5%B8%B8%E3%81%AB%201%20%E3%81%AB%E4%BF%9D%E3%81%A4%E3%81%93%E3%81%A8%E3%81%8C%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CH1%20id%3D%22toc-hId-1741737719%22%20id%3D%22toc-hId--1630605012%22%3E%E8%A7%A3%E6%B1%BA%E7%AD%96%3C%2FH1%3E%3CP%3Evpu_resume()%20%E3%81%A7%E3%80%81VPU%20PC%20%E3%81%8C%200%20%E3%81%A7%E3%81%AA%E3%81%84%E5%A0%B4%E5%90%88%E3%80%81%E3%81%A4%E3%81%BE%E3%82%8A%20VPU%20%E3%81%8C%E3%81%BE%E3%81%A0%E5%AE%9F%E8%A1%8C%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%E5%A0%B4%E5%90%88%E3%81%AF%E3%80%81FW%20init%20%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AE%E5%AE%9F%E8%A1%8C%E3%82%92%E3%82%B9%E3%82%AD%E3%83%83%E3%83%97%E3%81%97%E3%81%BE%E3%81%99%E3%80%82R10.4%20%E3%81%AB%E5%9F%BA%E3%81%A5%E3%81%8F%E6%B7%BB%E4%BB%98%E3%83%91%E3%83%83%E3%83%81%E3%82%92%E5%8F%82%E7%85%A7%E3%81%97%E3%81%A6%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84%E3%80%82%3C%2FP%3E%3C%2FLINGO-BODY%3E
評価なし
バージョン履歴
最終更新日:
‎01-17-2013 03:29 AM
更新者: