Re: [PATCHv3] w1: omap-hdq: Simplify driver with PM runtime autosuspend

From: Andreas Kemnade
Date: Fri Apr 17 2020 - 11:36:54 EST


On Fri, 17 Apr 2020 08:14:47 -0700
Tony Lindgren <tony@xxxxxxxxxxx> wrote:

> * Tony Lindgren <tony@xxxxxxxxxxx> [200417 15:08]:
> > Maybe the PM runtime usecounts get unbalanced somewhere in the
> > driver where we end up with driver permanently in disabled state?
>
> Or it could be that with omap_hdq.c no longer blocking SoC
> deeper idle states, omap_hdq.c now loses context if you have
> omap3 off mode enabled during idle?
>
I run twice (to get mmc access cached):

root@(none):/# sleep 15 ; /usr/local/bin/idledump >/run/idledump ; cat /sys/cla
ss/power_supply/bq27000-battery/current_now ; cat /run/idledump
32665
CM_IDLEST1_CORE 00000042
CM_IDLEST3_CORE 00000000
CM_FCLKEN1_CORE 00000000
CM_FCLKEN3_CORE 00000002
CM_CLKSTST_CORE 00000003
CM_IDLEST_CKGEN 00000001
CM_IDLEST2_CKGEN 00000000
CM_FCLKEN_DSS 00000000
CM_IDLEST_DSS 00000000
CM_FCLKEN_CAM 00000000
CM_IDLEST_CAM 00000000
CM_FCLKEN_PER 00000000
CM_IDLEST_PER 00030000
root@(none):/#
root@(none):/# cat /sys/kernel/debug/pm_debug/count
usbhost_pwrdm (ON),OFF:754,RET:9148,INA:0,ON:9903,RET-LOGIC-OFF:0,RET-MEMBANK1-OFF:0
sgx_pwrdm (OFF),OFF:1,RET:0,INA:1,ON:2,RET-LOGIC-OFF:0,RET-MEMBANK1-OFF:0
core_pwrdm (ON),OFF:0,RET:0,INA:0,ON:1,RET-LOGIC-OFF:0,RET-MEMBANK1-OFF:0,RET-MEMBANK2-OFF:0
per_pwrdm (ON),OFF:237,RET:1202,INA:0,ON:1440,RET-LOGIC-OFF:0,RET-MEMBANK1-OFF:0
dss_pwrdm (ON),OFF:754,RET:9148,INA:0,ON:9903,RET-LOGIC-OFF:0,RET-MEMBANK1-OFF:0
cam_pwrdm (OFF),OFF:1,RET:1,INA:0,ON:2,RET-LOGIC-OFF:0,RET-MEMBANK1-OFF:0
neon_pwrdm (ON),OFF:638,RET:9015,INA:250,ON:9904,RET-LOGIC-OFF:0
mpu_pwrdm (ON),OFF:638,RET:9014,INA:250,ON:9903,RET-LOGIC-OFF:0,RET-MEMBANK1-OFF:0
iva2_pwrdm (OFF),OFF:1,RET:1,INA:0,ON:2,RET-LOGIC-OFF:0,RET-MEMBANK1-OFF:0,RET-MEMBANK2-OFF:0,RET-MEMBANK3-OFF:0,RET-MEMBANK4-OFF:0
usbhost_clkdm->usbhost_pwrdm (1)
sgx_clkdm->sgx_pwrdm (0)
per_clkdm->per_pwrdm (16)
cam_clkdm->cam_pwrdm (0)
dss_clkdm->dss_pwrdm (1)
d2d_clkdm->core_pwrdm (0)
iva2_clkdm->iva2_pwrdm (0)
mpu_clkdm->mpu_pwrdm (0)
core_l4_clkdm->core_pwrdm (21)
core_l3_clkdm->core_pwrdm (1)
neon_clkdm->neon_pwrdm (0)

Regards,
Andreas