Hi Tony, When I try to do suspend from userspace, I get better results and it seems that all domain been put to RET or OFF but on checking power state time it still shows 0. Do you know why ? usbhost_pwrdm (ON),OFF:0,RET:2,INA:0,ON:3,RET-LOGIC-OFF:0,RET-MEMBANK1-OFF:0 sgx_pwrdm (OFF),OFF:1,RET:0,INA:0,ON:1,RET-LOGIC-OFF:0,RET-MEMBANK1-OFF:0 per_pwrdm (ON),OFF:0,RET:2,INA:0,ON:3,RET-LOGIC-OFF:0,RET-MEMBANK1-OFF:0 dss_pwrdm (ON),OFF:0,RET:5,INA:4,ON:9,RET-LOGIC-OFF:0,RET-MEMBANK1-OFF:0 cam_pwrdm (RET),OFF:0,RET:1,INA:0,ON:1,RET-LOGIC-OFF:0,RET-MEMBANK1-OFF:0 core_pwrdm (ON),OFF:0,RET:2,INA:0,ON:3,RET-LOGIC-OFF:0,RET-MEMBANK1-OFF:0,RET-MEMBANK2-OFF:0 neon_pwrdm (ON),OFF:0,RET:2,INA:0,ON:3,RET-LOGIC-OFF:0 mpu_pwrdm (ON),OFF:0,RET:2,INA:0,ON:3,RET-LOGIC-OFF:0,RET-MEMBANK1-OFF:0 iva2_pwrdm (RET),OFF:0,RET:1,INA:0,ON:1,RET-LOGIC-OFF:0,RET-MEMBANK1-OFF:0,RET-MEMBANK2-OFF:0,RET-MEMBANK3-OFF:0,RET-MEMBANK4-OFF:0 per_clkdm->per_pwrdm (11) usbhost_clkdm->usbhost_pwrdm (3) cam_clkdm->cam_pwrdm (0) dss_clkdm->dss_pwrdm (2) core_l4_clkdm->core_pwrdm (12) core_l3_clkdm->core_pwrdm (4) d2d_clkdm->core_pwrdm (0) sgx_clkdm->sgx_pwrdm (0) iva2_clkdm->iva2_pwrdm (0) neon_clkdm->neon_pwrdm (0) mpu_clkdm->mpu_pwrdm (0) prm_clkdm->wkup_pwrdm (0) cm_clkdm->core_pwrdm (0) Thank you, Ran On Mon, Nov 17, 2014 at 11:09 PM, Ran Shalit <ranshalit@xxxxxxxxx> wrote: > Hi Tony, > >>Just printing the registers out in the idle loop most likely will give >>you the info you need. > > Probably a dumb question... But if I try to print them won't it > automatically wakes up the serial (by the way should the serial wakeup > be configured to RX pin only ?) > Another thing I don't understand... Can it be that there is some > ongoing kernel process that also prevent me for entering retention ? > I think maybe I should try first to suspend (instead of trying to > enter retention in idle) , maybe it might bring better result ? > > Thanks very much, > Ran > > On Mon, Nov 17, 2014 at 10:38 PM, Tony Lindgren <tony@xxxxxxxxxxx> wrote: >> * Ran Shalit <ranshalit@xxxxxxxxx> [141117 11:48]: >>> >You need to look if you have some devices blocking deeper >>> >idle states in cm_idlest*_core and cm_idlest_per registers. >>> >>> >The device will automatically idle whatever it can if there >>> >are no blockers. I believe at least EHCI still is blocking, >>> >and MUSB if configured and cable connected. >>> >>> I'll check the registers value, should I then try to modify this >>> registers in order to get into retention ? >> >> No, those are read-only status registers. You need idle the >> drivers that show as blocking in those registers. >> >>> I will still have to disable serial right ? Maybe some kernel process >>> which run in background prevents retention ? >> >> Yes otherwise the UART bits will show as blocking in those >> registers. >> >>> Is there some simple way to debug this or do I need to modify these registers ? >> >> Just printing them out in the idle loop most likely will give >> you the info you need. >> >> Regards, >> >> Tony -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html