|
@@ -496,13 +496,6 @@ static int __exynos_sysmmu_enable(struct device *dev, phys_addr_t pgtable,
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
|
-int exynos_sysmmu_enable(struct device *dev, phys_addr_t pgtable)
|
|
|
-{
|
|
|
- BUG_ON(!memblock_is_memory(pgtable));
|
|
|
-
|
|
|
- return __exynos_sysmmu_enable(dev, pgtable, NULL);
|
|
|
-}
|
|
|
-
|
|
|
static bool exynos_sysmmu_disable(struct device *dev)
|
|
|
{
|
|
|
unsigned long flags;
|
|
@@ -594,30 +587,6 @@ static void sysmmu_tlb_invalidate_entry(struct device *dev, sysmmu_iova_t iova,
|
|
|
spin_unlock_irqrestore(&data->lock, flags);
|
|
|
}
|
|
|
|
|
|
-void exynos_sysmmu_tlb_invalidate(struct device *dev)
|
|
|
-{
|
|
|
- struct exynos_iommu_owner *owner = dev->archdata.iommu;
|
|
|
- unsigned long flags;
|
|
|
- struct sysmmu_drvdata *data;
|
|
|
-
|
|
|
- data = dev_get_drvdata(owner->sysmmu);
|
|
|
-
|
|
|
- spin_lock_irqsave(&data->lock, flags);
|
|
|
- if (is_sysmmu_active(data)) {
|
|
|
- if (!IS_ERR(data->clk_master))
|
|
|
- clk_enable(data->clk_master);
|
|
|
- if (sysmmu_block(data->sfrbase)) {
|
|
|
- __sysmmu_tlb_invalidate(data->sfrbase);
|
|
|
- sysmmu_unblock(data->sfrbase);
|
|
|
- }
|
|
|
- if (!IS_ERR(data->clk_master))
|
|
|
- clk_disable(data->clk_master);
|
|
|
- } else {
|
|
|
- dev_dbg(dev, "disabled. Skipping TLB invalidation\n");
|
|
|
- }
|
|
|
- spin_unlock_irqrestore(&data->lock, flags);
|
|
|
-}
|
|
|
-
|
|
|
static int __init exynos_sysmmu_probe(struct platform_device *pdev)
|
|
|
{
|
|
|
int irq, ret;
|