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.

Trying to use LPM on OMAP3530 DSP

Other Parts Discussed in Thread: OMAP3530

I have a problem with LPM module on the OMAP3530 processor.  I can't set the DSP to sleep/hibernate and then wake/resume without rebooting the system.  After calling LPM Hibernate I am able to verify, that the DSP is off by the power draw change. I am running a 2.6.22 linux kernel and use the following kernel modules: dsplink 1.61.03, lpm 2.23.01, cmem 2.23.01

Here is what LPM operations that I am running:
1) LPM Open
2) LPM On
3) LPM Connect    <- Returns Erorr
4) LPM Hibernate  <- Returns Error
5) LPM Resume     <- Returns Error
6) LPM Disconnect <- Returns Error
7) LPM Off

Trace:
[   13.984375] cmem initialized 8 pools between 0x8cc00000 and 0x8ec00000
[   14.351562] DSPLINK Module (1.61.03) created on Date: Jul 29 2010 Time: 12:07:26
[   14.429687] --> lpm_init
[   14.429687] --> LPM_init
[   14.437500] LPM_init: os_remap pa = 0x48002000, va = 0xCD02C000
[   14.445312] LPM_init: os_remap pa = 0x48004000, va = 0xCD02E000
[   14.445312] LPM_init: os_remap pa = 0x48306000, va = 0xCD030000
[   14.453125] LPM_init: os_remap pa = 0x5D000000, va = 0xCD032000
[   14.460937] Control Revision: 0x10
[   14.468750] <-- LPM_init: stat = 0x0
[   14.484375] <-- lpm_init

1) LPM Open
[   32.718750] --> lpm_open
[   32.726562] <-- lpm_open

2) LPM On
[   32.726562] --> lpm_ioctl, cmd: 0x10001003
[   32.734375] ioctl: ON, args = 0x3
[   32.734375] ref = 1
[   32.734375] --> LPM_on
[   32.742187] lpm.ko: --> LPM_off
[   32.742187] lpm.ko: <-- LPM_off: stat = 0x0
[   32.750000] <-- LPM_on: stat = 0x0
[   32.750000] <-- lpm_ioctl

3) LPM Connect
[   32.757812] --> lpm_ioctl, cmd: 0x10001000
[   32.757812] ioctl: CONNECT
[   32.765625] --> LPM_connect
[   32.765625]     calling TAL_open
[   32.765625]     calling TAL_registerEvents
[   32.773437] Error: TAL_registerEvents failed (0x1)
[   32.773437] <-- LPM_connect: stat = 0x1
[   32.781250] <-- lpm_ioctl

4) LPM Hibernate
[   33.781250] --> lpm_ioctl, cmd: 0x10001005
[   33.789062] ioctl: SETPOWERSTATE, args = 0x402001
[   33.796875] --> LPM_setPowerState: state = 0x402001
[   33.796875] calling TAL_changeState
[   33.804687] TAL_changeState failed (0x1)
[   33.804687] <-- LPM_setPowerState: stat = 0x1
[   33.812500] <-- lpm_ioctl

5) LPM Resume
[   34.812500] --> lpm_ioctl, cmd: 0x10001004
[   34.820312] ioctl: RESUME
[   34.820312] --> LPM_resume
[   34.828125] calling TAL_sendEvent(PWRM_SH_RESUME)
[   34.828125] TAL_sendEvent failed (0x1)
[   34.835937] <-- LPM_resume: stat = 0x1
[   34.835937] <-- lpm_ioctl

6) LPM Disconnect
[   34.843750] --> lpm_ioctl, cmd: 0x10001001
[   34.843750] ioctl: DISCONNECT
[   34.843750] + LPM_disconnect
[   34.851562] LPM_disconnect: Error: LPM not in connected state
[   34.859375] - LPM_disconnect: stat = 0x1
[   34.859375] <-- lpm_ioctl

7) LPM Off
[   34.867187] --> lpm_release
[   34.867187] ref = 0
[   34.867187] lpm.ko: --> LPM_off
[   34.875000] lpm.ko: <-- LPM_off: stat = 0x0
[   34.875000] <-- lpm_release

Has anyone been able to hibernate then resume the DSP before?