|
@@ -993,3 +993,36 @@ const struct tegra_mc_soc tegra124_mc_soc = {
|
|
|
.smmu = &tegra124_smmu_soc,
|
|
|
};
|
|
|
#endif /* CONFIG_ARCH_TEGRA_124_SOC */
|
|
|
+
|
|
|
+#ifdef CONFIG_ARCH_TEGRA_132_SOC
|
|
|
+static void tegra132_flush_dcache(struct page *page, unsigned long offset,
|
|
|
+ size_t size)
|
|
|
+{
|
|
|
+ void *virt = page_address(page) + offset;
|
|
|
+
|
|
|
+ __flush_dcache_area(virt, size);
|
|
|
+}
|
|
|
+
|
|
|
+static const struct tegra_smmu_ops tegra132_smmu_ops = {
|
|
|
+ .flush_dcache = tegra132_flush_dcache,
|
|
|
+};
|
|
|
+
|
|
|
+static const struct tegra_smmu_soc tegra132_smmu_soc = {
|
|
|
+ .clients = tegra124_mc_clients,
|
|
|
+ .num_clients = ARRAY_SIZE(tegra124_mc_clients),
|
|
|
+ .swgroups = tegra124_swgroups,
|
|
|
+ .num_swgroups = ARRAY_SIZE(tegra124_swgroups),
|
|
|
+ .supports_round_robin_arbitration = true,
|
|
|
+ .supports_request_limit = true,
|
|
|
+ .num_asids = 128,
|
|
|
+ .ops = &tegra132_smmu_ops,
|
|
|
+};
|
|
|
+
|
|
|
+const struct tegra_mc_soc tegra132_mc_soc = {
|
|
|
+ .clients = tegra124_mc_clients,
|
|
|
+ .num_clients = ARRAY_SIZE(tegra124_mc_clients),
|
|
|
+ .num_address_bits = 34,
|
|
|
+ .atom_size = 32,
|
|
|
+ .smmu = &tegra132_smmu_soc,
|
|
|
+};
|
|
|
+#endif /* CONFIG_ARCH_TEGRA_132_SOC */
|