soc/tegra: fuse: Correct straps' address for older Tegra124 device trees
authorDmitry Osipenko <digetx@gmail.com>
Wed, 18 Dec 2019 18:23:03 +0000 (21:23 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 28 Feb 2020 14:42:30 +0000 (15:42 +0100)
[ Upstream commit 2d9ea1934f8ef0dfb862d103389562cc28b4fc03 ]

Trying to read out Chip ID before APBMISC registers are mapped won't
succeed, in a result Tegra124 gets a wrong address for the HW straps
register if machine uses an old outdated device tree.

Fixes: 297c4f3dcbff ("soc/tegra: fuse: Restrict legacy code to 32-bit ARM")
Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/soc/tegra/fuse/tegra-apbmisc.c

index 5b18f6f..cd61c88 100644 (file)
@@ -134,7 +134,7 @@ void __init tegra_init_apbmisc(void)
                        apbmisc.flags = IORESOURCE_MEM;
 
                        /* strapping options */
-                       if (tegra_get_chip_id() == TEGRA124) {
+                       if (of_machine_is_compatible("nvidia,tegra124")) {
                                straps.start = 0x7000e864;
                                straps.end = 0x7000e867;
                        } else {