<rsv>
what is the difference between AFTR mode and LPA mode
<krzk>
rsv: the difference is in number of powered down blocks
<krzk>
rsv: you can compare the PMU configuration for these
<rsv>
okay
<rsv>
is it mandatory to have mmc2 declared in the dts file for LPA and other modes to work
<rsv>
i tried commenting it out. but the code just hangs. uncommenting it out makes it work. i also tried commenting out the notifiers for mmc2 for lpa. but it did not work though
<krzk>
rsv: what kernel are you taking about?
<krzk>
and board?
<krzk>
in general most of mainline board do not support aftr nor lpa...
<rsv>
it is a custom samsungs kernel
<krzk>
so how the heck could we know?
<rsv>
its an odroid's kernel on a custom board
<rsv>
yeah i agree. just thought you might have faced a similar issue
<krzk>
they could code whatever they want.. depend on dts or ignore it, check register manually
<krzk>
whatever idea they had :)
<krzk>
on mainline only aftr is supported and not on all boards
<rsv>
krzk: the kernel just hangs... i dont have jtag connection
<rsv>
which makes it difficult for me to pinpoint the issue. if you give lots of prints. things works though
<krzk>
in general, entering lpa requires some of the blocks to be idle
<krzk>
like mmc should be idle
<rsv>
i have used mmc2 to be connected to some other pins
<rsv>
mmc2 pins are used to control certain other devices. which is why its not in the dts file. so what could one do in that case?
<rsv>
i shall turn off the clocks for mmc2 and check that
<krzk>
rsv: some vendor drivers for LPA were checking the clocks before entering the LPA. If clocks are enabled, then LPA could not be entered.
<krzk>
rsv: I can easily imagine that they ugly code was just checking one MMC (like the primary one with storage) anbd ignoring other
<krzk>
rsv: a lot of things can happen... this is ugly vendor code
<rsv>
there are these notifiers which do a save and restore
<rsv>
i tried commenting out the save and restore for mmc2. but it wont help
<rsv>
i did not quite understand what you mean by idle here... since the pmu configuration does a whole lot of configuration
<rsv>
forcefully.
<rsv>
okay, i got ya... you mean mmc module being busy
<rsv>
host->req_state == DW_MMC_REQ_BUSY something like that.. okay thats done as well