mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-12-11 13:56:30 +00:00
3cc537842f
The support for #address-cells=2 has a loophole: if the reg is actually 0,
but the #address-cells is actually 1, like in such case below:
syscon {
#address-cells = <1>;
phy {
reg = <0 0x10>;
};
};
then the second u32 of the 'reg' is the size, not the address.
The code should check for the parent's #address-cells value, and not
assume that if the first u32 is 0, then the #address-cells is 2, and the
reg property is something like
reg = <0 0xff00 0x10>;
Fixed this by looking for the #address-cells value and retrieving the
reg address only if this is ==2.
To avoid breaking anything I also kept the check `if reg==0` as some DT's
may have a wrong #address-cells as parent and even if this commit is
correct, it might break the existing wrong device-trees.
Fixes:
|
||
---|---|---|
.. | ||
Kconfig | ||
Makefile | ||
phy-rockchip-inno-dsidphy.c | ||
phy-rockchip-inno-usb2.c | ||
phy-rockchip-naneng-combphy.c | ||
phy-rockchip-pcie.c | ||
phy-rockchip-snps-pcie3.c | ||
phy-rockchip-typec.c |