This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Re: Linux LPM driver failing

I too was getting the same error on my platform EVM3730. I followed the sequence suggested in this thread.

1) I commented out the defensive mecahnism  Dirk referred to in the file lpm_omap.c and in the function LPM_off

2) I added the bypass mechanism too.

Here is the modified code

    TRACE("lpm.ko: --> LPM_off\n");

    if ((REG(cm + CM_CLKEN_PLL_IVA2) & 0x7) == 0x1) {
        TRACE("lpm.ko: Found IVA2 DPLL in low power stop mode; changing to bypass\n");
        REG(cm + CM_CLKEN_PLL_IVA2) = (REG(cm + CM_CLKEN_PLL_IVA2) & ~0x7) | 0x5;
        REG(cm + CM_CLKEN_PLL_IVA2);
    }

#if 0
    /* make sure the IVA2 DPLL is enabled */
    if ((REG(cm + CM_CLKEN_PLL_IVA2) & 0x7) == 0x1) {
        hndl->os_trace("Error: IVA2 PLL is not enabled (needed by LPM)");
        status = LPM_EFAIL;
        goto fail;
    }
#endif

    /* MPU controlled ON + ACTIVE */


While I did see some improvement (originally my app would fail after 2 3 runs with following error)

[  148.898468] --> lpm_open
[  148.901123] <-- lpm_open
[  148.903778] --> lpm_ioctl, cmd: 0x10001003
[  148.908081] ioctl: ON, args = 0x0
[  148.911529] ref = 1
[  148.913757] --> LPM_on
[  148.916198] lpm.ko: --> LPM_off
[  149.197448] lpm.ko: Error: IVA2 power domain not OFF (1)
[  149.203002] lpm.ko: <-- LPM_off: stat = 0x1
[  149.207366] <-- LPM_on: stat = 0x1
[  149.210937] <-- lpm_ioctl
App-> Devnode En[  149.216339] --> lpm_release
gine opened FAIL[  149.219360] ref = 0
ED.
app: error:[  149.222930] lpm.ko: --> LPM_off
 can't open devnode engine CodecEngine Error=3
app done.
[  149.505615] lpm.ko: Error: IVA2 power domain not OFF (1)
[  149.511169] lpm.ko: <-- LPM_off: stat = 0x1
[  149.515533] <-- lpm_release

It now runs 5/6 times but then fails with following error.


This is the last[  101.933929] --> lpm_ioctl, cmd: 0x10001001
 run of DEVNODE_[  101.938812] ioctl: DISCONNECT
process with sam[  101.943298] + LPM_disconnect
pling frequency [  101.947692] - LPM_disconnect: stat = 0x0
= 16000
1039 Fr[  101.953186] <-- lpm_ioctl
ames playout/captured for 11 sec
[  101.960479] --> lpm_ioctl, cmd: 0x10001002
[  101.964752] ioctl: OFF
[  101.967254] ref = 0
[  101.969451] lpm.ko: --> LPM_off
[  102.250732] lpm.ko: Error: IVA2 power domain not OFF (2)
[  102.256286] lpm.ko: <-- LPM_off: stat = 0x1
[  102.260650] <-- lpm_ioctl
[  102.264190] --> lpm_release
[  102.267120] <-- lpm_release
app done.

I am using CE 2.26.02.11, LPM 1.24.03.10. Any suggestion on what else I can try? Unfortunately modifying the boot option is not an option I have.

  • For the archives, we identified off-line a DSP-side device driver that had enabled some clocks that was preventing the complete power off of the domain.  The driver needs to stop using its resources before calling Engine_close()/LPM_off().

    Chris

  • sachinpdesai said:

    Unfortunately modifying the boot option is not an option I have.

    Does anyone know what boot option this is?  I may be able to modify it, but having searched in vain for 2 hours, I can't find it...
    Thanks
    Andy