[RFC 2/2] Revert "dm: core: device: switch off power domain after device removal"
Oliver Graute
oliver.graute at gmail.com
Fri Feb 14 11:30:44 CET 2020
On 14/02/20, Lokesh Vutla wrote:
>
>
> On 14/02/20 2:48 PM, Oliver Graute wrote:
> > On 14/02/20, Lokesh Vutla wrote:
> >>
> >>
> >> On 13/02/20 10:42 PM, Neil Armstrong wrote:
> >>> Hi,
> >>>
> >>> On 03/02/2020 14:59, Oliver Graute wrote:
> >>>> The conga-imx8 board isn't booting without this revert. Can someone tell me
> >>>> what I need to Do so that this revert is not necessary?
> >>
> >> Can you give more details on where the failure is happening?(logs would really
> >> help).
> >
> > without that revert patch u-boot is stuck at "Starting kernel ..."
> > Is there a way to get more details here? currently I don't know howto
> > debug that power-domain stuff deeper.
>
> Can you enable debug prints in:
> - drivers/power/domain/power-domain-uclass.c
> - drivers/power/domain/imx8-power-domain*.c
>
> and provide the logs? this will help which power-domain is causing the issue.
thx a lot that helped. So it looks like the board is in some endless
loop with lsio_power_domain.
here the log:
Loading: #####
2 MiB/s
done
Bytes transferred = 21224 (52e8 hex)
## Flattened Device Tree blob at 83000000
Booting using the fdt blob at 0x83000000
Using Device Tree in place at 0000000083000000, end 00000000830082e7
Starting kernel ...
power_domain_get_by_index() power_domain_get_by_index(dev=00000000fdae88f0, power_domain=00000000fdae0058)
imx8_power_domain_of_xlate() imx8_power_domain_of_xlate(power_domain=00000000fdae0058)
imx8_power_domain_request() imx8_power_domain_request(power_domain=00000000fdae0058)
power_domain_off() power_domain_off(power_domain=00000000fdae0058)
imx8_power_domain_off() imx8_power_domain_off(power_domain=00000000fdae0058)
imx8_power_domain_off_node() imx8_power_domain_off_node, lsio_power_domain, state_on 1
imx8_power_domain_off() Can't power off the node of dev lsio_power_domain, ret = -1
power_domain_get_by_index() power_domain_get_by_index(dev=00000000fdae88f0, power_domain=00000000fdadff48)
imx8_power_domain_of_xlate() imx8_power_domain_of_xlate(power_domain=00000000fdadff48)
imx8_power_domain_request() imx8_power_domain_request(power_domain=00000000fdadff48)
power_domain_off() power_domain_off(power_domain=00000000fdadff48)
imx8_power_domain_off() imx8_power_domain_off(power_domain=00000000fdadff48)
imx8_power_domain_off_node() imx8_power_domain_off_node, lsio_power_domain, state_on 1
imx8_power_domain_off() Can't power off the node of dev lsio_power_domain, ret = -1
power_domain_get_by_index() power_domain_get_by_index(dev=00000000fdae88f0, power_domain=00000000fdadfe38)
imx8_power_domain_of_xlate() imx8_power_domain_of_xlate(power_domain=00000000fdadfe38)
imx8_power_domain_request() imx8_power_domain_request(power_domain=00000000fdadfe38)
power_domain_off() power_domain_off(power_domain=00000000fdadfe38)
imx8_power_domain_off() imx8_power_domain_off(power_domain=00000000fdadfe38)
imx8_power_domain_off_node() imx8_power_domain_off_node, lsio_power_domain, state_on 1
imx8_power_domain_off() Can't power off the node of dev lsio_power_domain, ret = -1
power_domain_get_by_index() power_domain_get_by_index(dev=00000000fdae88f0, power_domain=00000000fdadfd28)
imx8_power_domain_of_xlate() imx8_power_domain_of_xlate(power_domain=00000000fdadfd28)
imx8_power_domain_request() imx8_power_domain_request(power_domain=00000000fdadfd28)
power_domain_off() power_domain_off(power_domain=00000000fdadfd28)
imx8_power_domain_off() imx8_power_domain_off(power_domain=00000000fdadfd28)
imx8_power_domain_off_node() imx8_power_domain_off_node, lsio_power_domain, state_on 1
imx8_power_domain_off() Can't power off the node of dev lsio_power_domain, ret = -1
power_domain_get_by_index() power_domain_get_by_index(dev=00000000fdae88f0, power_domain=00000000fdadfc18)
imx8_power_domain_of_xlate() imx8_power_domain_of_xlate(power_domain=00000000fdadfc18)
imx8_power_domain_request() imx8_power_domain_request(power_domain=00000000fdadfc18)
power_domain_off() power_domain_off(power_domain=00000000fdadfc18)
imx8_power_domain_off() imx8_power_domain_off(power_domain=00000000fdadfc18)
imx8_power_domain_off_node() imx8_power_domain_off_node, lsio_power_domain, state_on 1
imx8_power_domain_off() Can't power off the node of dev lsio_power_domain, ret = -1
power_domain_get_by_index() power_domain_get_by_index(dev=00000000fdae88f0, power_domain=00000000fdadfb08)
imx8_power_domain_of_xlate() imx8_power_domain_of_xlate(power_domain=00000000fdadfb08)
imx8_power_domain_request() imx8_power_domain_request(power_domain=00000000fdadfb08)
power_domain_off() power_domain_off(power_domain=00000000fdadfb08)
imx8_power_domain_off() imx8_power_domain_off(power_domain=00000000fdadfb08)
imx8_power_domain_off_node() imx8_power_domain_off_node, lsio_power_domain, state_on 1
imx8_power_domain_off() Can't power off the node of dev lsio_power_domain, ret = -1
power_domain_get_by_index() power_domain_get_by_index(dev=00000000fdae88f0, power_domain=00000000fdadf9f8)
imx8_power_domain_of_xlate() imx8_power_domain_of_xlate(power_domain=00000000fdadf9f8)
imx8_power_domain_request() imx8_power_domain_request(power_domain=00000000fdadf9f8)
power_domain_off() power_domain_off(power_domain=00000000fdadf9f8)
imx8_power_domain_off() imx8_power_domain_off(power_domain=00000000fdadf9f8)
imx8_power_domain_off_node() imx8_power_domain_off_node, lsio_power_domain, state_on 1
imx8_power_domain_off() Can't power off the node of dev lsio_power_domain, ret = -1
power_domain_get_by_index() power_domain_get_by_index(dev=00000000fdae88f0, power_domain=00000000fdadf8e8)
imx8_power_domain_of_xlate() imx8_power_domain_of_xlate(power_domain=00000000fdadf8e8)
imx8_power_domain_request() imx8_power_domain_request(power_domain=00000000fdadf8e8)
power_domain_off() power_domain_off(power_domain=00000000fdadf8e8)
imx8_power_domain_off() imx8_power_domain_off(power_domain=00000000fdadf8e8)
imx8_power_domain_off_node() imx8_power_domain_off_node, lsio_power_domain, state_on 1
imx8_power_domain_off() Can't power off the node of dev lsio_power_domain, ret = -1
power_domain_get_by_index() power_domain_get_by_index(dev=00000000fdae88f0, power_domain=00000000fdadf7d8)
imx8_power_domain_of_xlate() imx8_power_domain_of_xlate(power_domain=00000000fdadf7d8)
imx8_power_domain_request() imx8_power_domain_request(power_domain=00000000fdadf7d8)
power_domain_off() power_domain_off(power_domain=00000000fdadf7d8)
imx8_power_domain_off() imx8_power_domain_off(power_domain=00000000fdadf7d8)
imx8_power_domain_off_node() imx8_power_domain_off_node, lsio_power_domain, state_on 1
imx8_power_domain_off() Can't power off the node of dev lsio_power_domain, ret = -1
power_domain_get_by_index() power_domain_get_by_index(dev=00000000fdae88f0, power_domain=00000000fdadf6c8)
imx8_power_domain_of_xlate() imx8_power_domain_of_xlate(power_domain=00000000fdadf6c8)
imx8_power_domain_request() imx8_power_domain_request(power_domain=00000000fdadf6c8)
power_domain_off() power_domain_off(power_domain=00000000fdadf6c8)
imx8_power_domain_off() imx8_power_domain_off(power_domain=00000000fdadf6c8)
imx8_power_domain_off_node() imx8_power_domain_off_node, lsio_power_domain, state_on 1
imx8_power_domain_off() Can't power off the node of dev lsio_power_domain, ret = -1
power_domain_get_by_index() power_domain_get_by_index(dev=00000000fdae88f0, power_domain=00000000fdadf5b8)
imx8_power_domain_of_xlate() imx8_power_domain_of_xlate(power_domain=00000000fdadf5b8)
imx8_power_domain_request() imx8_power_domain_request(power_domain=00000000fdadf5b8)
power_domain_off() power_domain_off(power_domain=00000000fdadf5b8)
imx8_power_domain_off() imx8_power_domain_off(power_domain=00000000fdadf5b8)
imx8_power_domain_off_node() imx8_power_domain_off_node, lsio_power_domain, state_on 1
imx8_power_domain_off() Can't power off the node of dev lsio_power_domain, ret = -1
power_domain_get_by_index() power_domain_get_by_index(dev=00000000fdae88f0, power_domain=00000000fdadf4a8)
imx8_power_domain_of_xlate() imx8_power_domain_of_xlate(power_domain=00000000fdadf4a8)
imx8_power_domain_request() imx8_power_domain_request(power_domain=00000000fdadf4a8)
power_domain_off() power_domain_off(power_domain=00000000fdadf4a8)
imx8_power_domain_off() imx8_power_domain_off(power_domain=00000000fdadf4a8)
imx8_power_domain_off_node() imx8_power_domain_off_node, lsio_power_domain, state_on 1
imx8_power_domain_off() Can't power off the node of dev lsio_power_domain, ret = -1
power_domain_get_by_index() power_domain_get_by_index(dev=00000000fdae88f0, power_domain=00000000fdadf398)
---snipped off--
Best Regards,
Oliver
More information about the U-Boot
mailing list