Loading drivers/memory/tegra/tegra186.c +19 −10 Original line number Diff line number Diff line Loading @@ -6,15 +6,11 @@ #include <linux/io.h> #include <linux/module.h> #include <linux/mod_devicetable.h> #include <linux/of_device.h> #include <linux/platform_device.h> #include <dt-bindings/memory/tegra186-mc.h> struct tegra_mc { struct device *dev; void __iomem *regs; }; struct tegra186_mc_client { const char *name; unsigned int sid; Loading @@ -24,10 +20,16 @@ struct tegra186_mc_client { } regs; }; struct tegra186_mc_soc { const struct tegra186_mc_client *clients; unsigned int num_clients; }; struct tegra186_mc { struct memory_controller base; struct device *dev; void __iomem *regs; const struct tegra186_mc_soc *soc; }; static const struct tegra186_mc_client tegra186_mc_clients[] = { Loading Loading @@ -538,17 +540,24 @@ static const struct tegra186_mc_client tegra186_mc_clients[] = { }, }; static const struct tegra186_mc_soc tegra186_mc_soc = { .num_clients = ARRAY_SIZE(tegra186_mc_clients), .clients = tegra186_mc_clients, }; static int tegra186_mc_probe(struct platform_device *pdev) { struct tegra186_mc *mc; struct resource *res; unsigned int i; int err = 0; int err; mc = devm_kzalloc(&pdev->dev, sizeof(*mc), GFP_KERNEL); if (!mc) return -ENOMEM; mc->soc = of_device_get_match_data(&pdev->dev); res = platform_get_resource(pdev, IORESOURCE_MEM, 0); mc->regs = devm_ioremap_resource(&pdev->dev, res); if (IS_ERR(mc->regs)) Loading @@ -556,8 +565,8 @@ static int tegra186_mc_probe(struct platform_device *pdev) mc->dev = &pdev->dev; for (i = 0; i < ARRAY_SIZE(tegra186_mc_clients); i++) { const struct tegra186_mc_client *client = &tegra186_mc_clients[i]; for (i = 0; i < mc->soc->num_clients; i++) { const struct tegra186_mc_client *client = &mc->soc->clients[i]; u32 override, security; override = readl(mc->regs + client->regs.override); Loading @@ -583,7 +592,7 @@ static int tegra186_mc_probe(struct platform_device *pdev) } static const struct of_device_id tegra186_mc_of_match[] = { { .compatible = "nvidia,tegra186-mc", }, { .compatible = "nvidia,tegra186-mc", .data = &tegra186_mc_soc }, { /* sentinel */ } }; MODULE_DEVICE_TABLE(of, tegra186_mc_of_match); Loading Loading
drivers/memory/tegra/tegra186.c +19 −10 Original line number Diff line number Diff line Loading @@ -6,15 +6,11 @@ #include <linux/io.h> #include <linux/module.h> #include <linux/mod_devicetable.h> #include <linux/of_device.h> #include <linux/platform_device.h> #include <dt-bindings/memory/tegra186-mc.h> struct tegra_mc { struct device *dev; void __iomem *regs; }; struct tegra186_mc_client { const char *name; unsigned int sid; Loading @@ -24,10 +20,16 @@ struct tegra186_mc_client { } regs; }; struct tegra186_mc_soc { const struct tegra186_mc_client *clients; unsigned int num_clients; }; struct tegra186_mc { struct memory_controller base; struct device *dev; void __iomem *regs; const struct tegra186_mc_soc *soc; }; static const struct tegra186_mc_client tegra186_mc_clients[] = { Loading Loading @@ -538,17 +540,24 @@ static const struct tegra186_mc_client tegra186_mc_clients[] = { }, }; static const struct tegra186_mc_soc tegra186_mc_soc = { .num_clients = ARRAY_SIZE(tegra186_mc_clients), .clients = tegra186_mc_clients, }; static int tegra186_mc_probe(struct platform_device *pdev) { struct tegra186_mc *mc; struct resource *res; unsigned int i; int err = 0; int err; mc = devm_kzalloc(&pdev->dev, sizeof(*mc), GFP_KERNEL); if (!mc) return -ENOMEM; mc->soc = of_device_get_match_data(&pdev->dev); res = platform_get_resource(pdev, IORESOURCE_MEM, 0); mc->regs = devm_ioremap_resource(&pdev->dev, res); if (IS_ERR(mc->regs)) Loading @@ -556,8 +565,8 @@ static int tegra186_mc_probe(struct platform_device *pdev) mc->dev = &pdev->dev; for (i = 0; i < ARRAY_SIZE(tegra186_mc_clients); i++) { const struct tegra186_mc_client *client = &tegra186_mc_clients[i]; for (i = 0; i < mc->soc->num_clients; i++) { const struct tegra186_mc_client *client = &mc->soc->clients[i]; u32 override, security; override = readl(mc->regs + client->regs.override); Loading @@ -583,7 +592,7 @@ static int tegra186_mc_probe(struct platform_device *pdev) } static const struct of_device_id tegra186_mc_of_match[] = { { .compatible = "nvidia,tegra186-mc", }, { .compatible = "nvidia,tegra186-mc", .data = &tegra186_mc_soc }, { /* sentinel */ } }; MODULE_DEVICE_TABLE(of, tegra186_mc_of_match); Loading