BTW, the 9 clocks active on per are: gpio{2-6}_ick per_l4_ick uart3_ick uart3_fck per_48m_fck During sleep, I get (for the per_clkdm only): clockdomain: clkdm per_clkdm: removing clk uart3_ick clockdomain: clkdm per_clkdm: removing clk per_48m_fck clockdomain: clkdm per_clkdm: removing clk uart3_fck clockdomain: clkdm per_clkdm: adding clk uart3_ick clockdomain: clkdm per_clkdm: adding clk uart3_fck clockdomain: clkdm per_clkdm: adding clk per_48m_fck So it looks like to me that the per_clkdm isn't shutting down because of per_l4_ick and the gpio interface clocks. On Mon, Mar 30, 2009 at 4:01 PM, Russ Dill <russ.dill@xxxxxxxxx> wrote: > On Mon, Mar 30, 2009 at 11:43 AM, Kevin Hilman > <khilman@xxxxxxxxxxxxxxxxxxx> wrote: >> Russ Dill <russ.dill@xxxxxxxxx> writes: >> >>> On Mon, Mar 30, 2009 at 3:08 AM, Premi, Sanjeev <premi@xxxxxx> wrote: >> [...] >>>> >>>> I had found that two drivers that could prevent clocks_off are >>>> USB and DSS because of the way they use clk_enable(). >>>> >>>> Can you try building without theses drivers just for verification? >>>> >>> >>> Building without dss makes things worse: >>> >>> Powerdomain (dss_pwrdm) didn't enter target state 0 >>> >>> Maybe by looking at what the dss driver is doing I can get core and >>> per to turn off. >> >> Russ, >> >> Can you try with the latest HEAD of PM branch. After suspend/resume, >> do >> >> # cat /debug/pm_debug/registers/1 >> >> and post results to list. We can then see the exact state of PM >> registers before going into WFI. > > root@beagleboard:/sys# cat /debug/pm_debug/registers/1 > MOD: CM_IVA2 (48014000) > 04 => 00000037 20 => 00000001 34 => 00000001 40 => 0009680c > 44 => 00000001 48 => 00000003 > MOD: CM_OCP (48004800) > 00 => 00000010 10 => 00000001 > MOD: CM_MPU (48004900) > 04 => 00000037 24 => 00000001 34 => 00000001 40 => 0011f40c > 44 => 00000001 48 => 00000003 4c => 00000001 > MOD: CM_CORE (48004a00) > 10 => 00000042 20 => ffffffbd 24 => 0000001f 28 => 0000000d > 30 => fffffed9 34 => 0000001f 38 => 0000000c 40 => 0000030a > 48 => 0000003f 4c => 00000003 > MOD: CM_SGX (48004b00) > 20 => 00000001 48 => 00000003 > MOD: CM_WKUP (48004c00) > 10 => 0000000e 20 => 000002f1 30 => 0000003f 40 => 00000015 > MOD: CM_CCR (48004d00) > 00 => f8311037 04 => 00000017 20 => 00000201 30 => 00000009 > 34 => 00000001 40 => 094c0c00 44 => 0001b00c 48 => 00000009 > 50 => 00000001 70 => 00000003 > MOD: CM_DSS (48004e00) > 20 => 00000003 30 => 00000001 40 => 00001006 48 => 00000003 > MOD: CM_CAM (48004f00) > 20 => 00000001 30 => 00000001 40 => 00000004 48 => 00000003 > MOD: CM_PER (48005000) > 10 => 0003e000 20 => 00001fff 30 => 0003ffff 40 => 000000ff > 44 => 00000006 48 => 00000003 4c => 00000001 > MOD: CM_EMU (48005100) > 40 => 03020a50 48 => 00000002 4c => 00000001 > MOD: CM_NEON (48005300) > 48 => 00000003 > MOD: CM_USB (48005400) > 20 => 00000003 30 => 00000001 48 => 00000003 > MOD: PRM_IVA2 (48316000) > 50 => 00000007 e0 => 00ff0f04 f8 => 00000007 > MOD: PRM_OCP (48306800) > 04 => 00000010 14 => 00000001 1c => 00000201 > MOD: PRM_MPU (48306900) > 58 => 00000005 d4 => 00000012 e0 => 00030104 e4 => 000000c7 > e8 => 000000c7 > MOD: PRM_CORE (48306a00) > 58 => 00000301 a0 => c33ffe18 a4 => c33ffe18 a8 => c33ffe18 > e0 => 000f0304 e4 => 000000f7 e8 => 000000f7 f0 => 00000004 > f4 => 00000004 f8 => 00000004 > MOD: PRM_SGX (48306b00) > e0 => 00030104 > MOD: PRM_WKUP (48306c00) > a0 => 0000010b a4 => 0000010b > MOD: PRM_CCR (48306d00) > 40 => 00000003 > MOD: PRM_DSS (48306e00) > 58 => 00000005 a0 => 00000001 e0 => 00030104 > MOD: PRM_CAM (48306f00) > 58 => 00000001 e0 => 00030104 > MOD: PRM_PER (48307000) > 58 => 00000001 a0 => 0003efff a4 => 0003efff a8 => 0003efff > c8 => 00000007 e0 => 00030104 e4 => 00000007 e8 => 00000007 > MOD: PRM_EMU (48307100) > 58 => 00000005 e4 => 00000103 > MOD: PRM_GLBL (48307200) > 20 => 00120012 24 => 00010000 2c => 301e1e30 30 => 2c1e1e2c > 34 => 00120000 38 => 00000018 54 => 00001006 58 => 00000001 > 60 => 0000000e 64 => 00000050 70 => 00000088 90 => 0fff0fff > 94 => 000000ff 98 => 000000ff 9c => 00000002 a0 => 000000ff > c4 => 00000001 e4 => 00000001 > MOD: PRM_NEON (48307300) > 58 => 00000005 c8 => 00000002 e0 => 00000004 e4 => 00000003 > e8 => 00000003 > MOD: PRM_USB (48307400) > 58 => 00000001 a0 => 00000001 a4 => 00000001 a8 => 00000001 > e0 => 00030104 > > >> Also, post dump of >> > > root@beagleboard:/sys# cat /debug/pm_debug/count > usbhost_pwrdm (OFF),OFF:1,RET:1,INA:0,ON:1 > sgx_pwrdm (OFF),OFF:1,RET:0,INA:0,ON:1 > per_pwrdm (ON),OFF:0,RET:0,INA:0,ON:1 > dss_pwrdm (ON),OFF:2,RET:0,INA:0,ON:3 > cam_pwrdm (OFF),OFF:1,RET:1,INA:0,ON:1 > core_pwrdm (ON),OFF:0,RET:0,INA:0,ON:1 > neon_pwrdm (ON),OFF:2,RET:0,INA:14100,ON:14103 > mpu_pwrdm (ON),OFF:2,RET:0,INA:14100,ON:14103 > iva2_pwrdm (OFF),OFF:1,RET:1,INA:0,ON:1 > per_clkdm->per_pwrdm (9) > usbhost_clkdm->usbhost_pwrdm (0) > cam_clkdm->cam_pwrdm (0) > dss_clkdm->dss_pwrdm (2) > core_l4_clkdm->core_pwrdm (8) > 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) > virt_opp_clkdm->wkup_pwrdm (0) > prm_clkdm->wkup_pwrdm (10) > cm_clkdm->core_pwrdm (3) > > > >> Thanks, >> >> Kevin >> >> >> >> > -- 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