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.

sleeping OMAP3530 DSP between video frames

Other Parts Discussed in Thread: OMAP3530

I wanted to sleep the DSP between encoding video frames.  I have send in an input video frame that the DSP returns encoded.  Between each arriving video frame I want to the DSP to sleep until the next video frame is ready, at which I would wakeup the DSP and resume encoding the next frame.

I am following the guidelines from /local_power_manager_1_23_01/packages/ti/bios/power/src/doc/overview.txt and integrated the LPM code into my own, however when I run the LPM_resume(), the function fails and I cannot get the DSP to resume operations.  LPM_setPowerState(hLPM, LPM_HIBERNATE) does work and I can view the power comsumption on the drop accordingly.  Once in the Hibernation state I cannot resume operations.

I'm am running the OMAP3530 based on the modified 2.6.22-omap kernel.

Following the example in /dvsdk_3_00_00_36/codec_engine_2_23_01/examples/ti/sdo/ce/examples/apps/image1_copy

Following the example in /dvsdk_3_00_00_36/local_power_manager_1_23_01/packages/ti/bios/power/src/doc/overview.txt

/* setup LPM */
LPM_init();

/* acquire an LPM handle */
lpmStat = LPM_open("/dev/lpm0", &hLPM);

/* open a Codec Engine */
Engine_open();

/* process loop */
while (work to be done) {

    /* do some work */
    ...

    /* now we can rest for a while */

    /* hibernate the DSP */
    lpmStat = LPM_setPowerState(hLPM, LPM_HIBERNATE);   <--- Returns Success

    /* DSP is now OFF (with context saved) */
    /* time passes ...                     */

    /* wake (resume) the DSP */
    lpmStat = LPM_resume(hLPM);    <--- Returns Failure
}

/* close the Codec Engine */
Engine_close();

/* finalize LPM module */
lpmStat = LPM_close(hLPM);
LPM_exit();