]> git.proxmox.com Git - mirror_ubuntu-eoan-kernel.git/commitdiff
memory: tegra: Adapt to Tegra20 device-tree binding changes
authorDmitry Osipenko <digetx@gmail.com>
Wed, 12 Dec 2018 20:38:52 +0000 (23:38 +0300)
committerJoerg Roedel <jroedel@suse.de>
Wed, 16 Jan 2019 12:54:11 +0000 (13:54 +0100)
The tegra20-mc device-tree binding has been changed, GART has been
squashed into Memory Controller and now the clock property is mandatory
for Tegra20, the DT compatible has been changed as well. Adapt driver to
the DT changes.

Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
Acked-by: Thierry Reding <treding@nvidia.com>
Signed-off-by: Joerg Roedel <jroedel@suse.de>
drivers/memory/tegra/mc.c
drivers/memory/tegra/mc.h
include/soc/tegra/mc.h

index b99f3c620f6c7d3148c99a68a281b4fa3f253fab..59db13287b475bc6cd3fec6a534e275532f0eec2 100644 (file)
@@ -51,7 +51,7 @@
 
 static const struct of_device_id tegra_mc_of_match[] = {
 #ifdef CONFIG_ARCH_TEGRA_2x_SOC
-       { .compatible = "nvidia,tegra20-mc", .data = &tegra20_mc_soc },
+       { .compatible = "nvidia,tegra20-mc-gart", .data = &tegra20_mc_soc },
 #endif
 #ifdef CONFIG_ARCH_TEGRA_3x_SOC
        { .compatible = "nvidia,tegra30-mc", .data = &tegra30_mc_soc },
@@ -638,24 +638,19 @@ static int tegra_mc_probe(struct platform_device *pdev)
        if (IS_ERR(mc->regs))
                return PTR_ERR(mc->regs);
 
+       mc->clk = devm_clk_get(&pdev->dev, "mc");
+       if (IS_ERR(mc->clk)) {
+               dev_err(&pdev->dev, "failed to get MC clock: %ld\n",
+                       PTR_ERR(mc->clk));
+               return PTR_ERR(mc->clk);
+       }
+
 #ifdef CONFIG_ARCH_TEGRA_2x_SOC
        if (mc->soc == &tegra20_mc_soc) {
-               res = platform_get_resource(pdev, IORESOURCE_MEM, 1);
-               mc->regs2 = devm_ioremap_resource(&pdev->dev, res);
-               if (IS_ERR(mc->regs2))
-                       return PTR_ERR(mc->regs2);
-
                isr = tegra20_mc_irq;
        } else
 #endif
        {
-               mc->clk = devm_clk_get(&pdev->dev, "mc");
-               if (IS_ERR(mc->clk)) {
-                       dev_err(&pdev->dev, "failed to get MC clock: %ld\n",
-                               PTR_ERR(mc->clk));
-                       return PTR_ERR(mc->clk);
-               }
-
                err = tegra_mc_setup_latency_allowance(mc);
                if (err < 0) {
                        dev_err(&pdev->dev, "failed to setup latency allowance: %d\n",
index 01065f12ebebe5991a86ba2320d97287f3fbe3b5..9856f085e4875cd9e3135b440616ba292b1138f3 100644 (file)
 
 static inline u32 mc_readl(struct tegra_mc *mc, unsigned long offset)
 {
-       if (mc->regs2 && offset >= 0x24)
-               return readl(mc->regs2 + offset - 0x3c);
-
        return readl(mc->regs + offset);
 }
 
 static inline void mc_writel(struct tegra_mc *mc, u32 value,
                             unsigned long offset)
 {
-       if (mc->regs2 && offset >= 0x24)
-               return writel(value, mc->regs2 + offset - 0x3c);
-
        writel(value, mc->regs + offset);
 }
 
index b43f37fea09697c3b9ea6ea05bfcfe2d80a05ad0..db5bfdf589b483abe6da3894d6a6a52a37340f5a 100644 (file)
@@ -144,7 +144,7 @@ struct tegra_mc_soc {
 struct tegra_mc {
        struct device *dev;
        struct tegra_smmu *smmu;
-       void __iomem *regs, *regs2;
+       void __iomem *regs;
        struct clk *clk;
        int irq;