diff options
author | Joerg Roedel <jroedel@suse.de> | 2015-08-17 15:16:59 +0300 |
---|---|---|
committer | Joerg Roedel <jroedel@suse.de> | 2015-08-17 15:16:59 +0300 |
commit | 54e466fde4816455cc5b1893b73c2f3c7ca52e49 (patch) | |
tree | 402e1f22e0053ed4ee8155a5408bd0b1eac11113 /drivers/memory/tegra/tegra30.c | |
parent | 2c6625cd545bdd66acff14f3394865d43920a5c7 (diff) | |
parent | 11cec15bf3fb498206ef63b1fa26c27689e02d0e (diff) | |
download | linux-54e466fde4816455cc5b1893b73c2f3c7ca52e49.tar.xz |
Merge tag 'tegra-for-4.3-iommu' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into arm/tegra
iommu/tegra-smmu: Changes for v4.3-rc1
A bunch of improvements by Russell King, along with a fix to restore
display support when using the SMMU. This was due to the SMMU driver
writing the wrong value of active TLB lines, effectively disabling the
TLB and causing massive underflows on the display controller because
of the latency introduced by the SMMU.
Diffstat (limited to 'drivers/memory/tegra/tegra30.c')
-rw-r--r-- | drivers/memory/tegra/tegra30.c | 18 |
1 files changed, 1 insertions, 17 deletions
diff --git a/drivers/memory/tegra/tegra30.c b/drivers/memory/tegra/tegra30.c index 1abcd8f6f3ba..7e0694d80edb 100644 --- a/drivers/memory/tegra/tegra30.c +++ b/drivers/memory/tegra/tegra30.c @@ -9,8 +9,6 @@ #include <linux/of.h> #include <linux/mm.h> -#include <asm/cacheflush.h> - #include <dt-bindings/memory/tegra30-mc.h> #include "mc.h" @@ -936,20 +934,6 @@ static const struct tegra_smmu_swgroup tegra30_swgroups[] = { { .name = "isp", .swgroup = TEGRA_SWGROUP_ISP, .reg = 0x258 }, }; -static void tegra30_flush_dcache(struct page *page, unsigned long offset, - size_t size) -{ - phys_addr_t phys = page_to_phys(page) + offset; - void *virt = page_address(page) + offset; - - __cpuc_flush_dcache_area(virt, size); - outer_flush_range(phys, phys + size); -} - -static const struct tegra_smmu_ops tegra30_smmu_ops = { - .flush_dcache = tegra30_flush_dcache, -}; - static const struct tegra_smmu_soc tegra30_smmu_soc = { .clients = tegra30_mc_clients, .num_clients = ARRAY_SIZE(tegra30_mc_clients), @@ -957,8 +941,8 @@ static const struct tegra_smmu_soc tegra30_smmu_soc = { .num_swgroups = ARRAY_SIZE(tegra30_swgroups), .supports_round_robin_arbitration = false, .supports_request_limit = false, + .num_tlb_lines = 16, .num_asids = 4, - .ops = &tegra30_smmu_ops, }; const struct tegra_mc_soc tegra30_mc_soc = { |