Loading drivers/iommu/exynos-iommu.c +25 −43 Original line number Diff line number Diff line Loading @@ -343,7 +343,6 @@ static bool __exynos_sysmmu_disable(struct sysmmu_drvdata *data) __raw_writel(CTRL_DISABLE, data->sfrbase + REG_MMU_CTRL); if (!IS_ERR(data->clk)) clk_disable(data->clk); disabled = true; Loading Loading @@ -387,7 +386,6 @@ static int __exynos_sysmmu_enable(struct sysmmu_drvdata *data, goto finish; } if (!IS_ERR(data->clk)) clk_enable(data->clk); data->pgtable = pgtable; Loading Loading @@ -499,49 +497,43 @@ void exynos_sysmmu_tlb_invalidate(struct device *dev) static int exynos_sysmmu_probe(struct platform_device *pdev) { int ret; int irq, ret; struct device *dev = &pdev->dev; struct sysmmu_drvdata *data; struct resource *res; data = kzalloc(sizeof(*data), GFP_KERNEL); if (!data) { dev_dbg(dev, "Not enough memory\n"); ret = -ENOMEM; goto err_alloc; } data = devm_kzalloc(dev, sizeof(*data), GFP_KERNEL); if (!data) return -ENOMEM; res = platform_get_resource(pdev, IORESOURCE_MEM, 0); if (!res) { dev_dbg(dev, "Unable to find IOMEM region\n"); ret = -ENOENT; goto err_init; } data->sfrbase = ioremap(res->start, resource_size(res)); if (!data->sfrbase) { dev_dbg(dev, "Unable to map IOMEM @ PA:%#x\n", res->start); ret = -ENOENT; goto err_res; } data->sfrbase = devm_ioremap_resource(dev, res); if (IS_ERR(data->sfrbase)) return PTR_ERR(data->sfrbase); ret = platform_get_irq(pdev, 0); if (ret <= 0) { irq = platform_get_irq(pdev, 0); if (irq <= 0) { dev_dbg(dev, "Unable to find IRQ resource\n"); goto err_irq; return irq; } ret = request_irq(ret, exynos_sysmmu_irq, 0, ret = devm_request_irq(dev, irq, exynos_sysmmu_irq, 0, dev_name(dev), data); if (ret) { dev_dbg(dev, "Unabled to register interrupt handler\n"); goto err_irq; dev_err(dev, "Unabled to register handler of irq %d\n", irq); return ret; } if (dev_get_platdata(dev)) { data->clk = clk_get(dev, "sysmmu"); if (IS_ERR(data->clk)) dev_dbg(dev, "No clock descriptor registered\n"); data->clk = devm_clk_get(dev, "sysmmu"); if (IS_ERR(data->clk)) { dev_err(dev, "Failed to get clock!\n"); return PTR_ERR(data->clk); } else { ret = clk_prepare(data->clk); if (ret) { dev_err(dev, "Failed to prepare clk\n"); return ret; } } data->sysmmu = dev; Loading @@ -554,17 +546,7 @@ static int exynos_sysmmu_probe(struct platform_device *pdev) pm_runtime_enable(dev); dev_dbg(dev, "Initialized\n"); return 0; err_irq: free_irq(platform_get_irq(pdev, 0), data); err_res: iounmap(data->sfrbase); err_init: kfree(data); err_alloc: dev_err(dev, "Failed to initialize\n"); return ret; } static struct platform_driver exynos_sysmmu_driver = { Loading Loading
drivers/iommu/exynos-iommu.c +25 −43 Original line number Diff line number Diff line Loading @@ -343,7 +343,6 @@ static bool __exynos_sysmmu_disable(struct sysmmu_drvdata *data) __raw_writel(CTRL_DISABLE, data->sfrbase + REG_MMU_CTRL); if (!IS_ERR(data->clk)) clk_disable(data->clk); disabled = true; Loading Loading @@ -387,7 +386,6 @@ static int __exynos_sysmmu_enable(struct sysmmu_drvdata *data, goto finish; } if (!IS_ERR(data->clk)) clk_enable(data->clk); data->pgtable = pgtable; Loading Loading @@ -499,49 +497,43 @@ void exynos_sysmmu_tlb_invalidate(struct device *dev) static int exynos_sysmmu_probe(struct platform_device *pdev) { int ret; int irq, ret; struct device *dev = &pdev->dev; struct sysmmu_drvdata *data; struct resource *res; data = kzalloc(sizeof(*data), GFP_KERNEL); if (!data) { dev_dbg(dev, "Not enough memory\n"); ret = -ENOMEM; goto err_alloc; } data = devm_kzalloc(dev, sizeof(*data), GFP_KERNEL); if (!data) return -ENOMEM; res = platform_get_resource(pdev, IORESOURCE_MEM, 0); if (!res) { dev_dbg(dev, "Unable to find IOMEM region\n"); ret = -ENOENT; goto err_init; } data->sfrbase = ioremap(res->start, resource_size(res)); if (!data->sfrbase) { dev_dbg(dev, "Unable to map IOMEM @ PA:%#x\n", res->start); ret = -ENOENT; goto err_res; } data->sfrbase = devm_ioremap_resource(dev, res); if (IS_ERR(data->sfrbase)) return PTR_ERR(data->sfrbase); ret = platform_get_irq(pdev, 0); if (ret <= 0) { irq = platform_get_irq(pdev, 0); if (irq <= 0) { dev_dbg(dev, "Unable to find IRQ resource\n"); goto err_irq; return irq; } ret = request_irq(ret, exynos_sysmmu_irq, 0, ret = devm_request_irq(dev, irq, exynos_sysmmu_irq, 0, dev_name(dev), data); if (ret) { dev_dbg(dev, "Unabled to register interrupt handler\n"); goto err_irq; dev_err(dev, "Unabled to register handler of irq %d\n", irq); return ret; } if (dev_get_platdata(dev)) { data->clk = clk_get(dev, "sysmmu"); if (IS_ERR(data->clk)) dev_dbg(dev, "No clock descriptor registered\n"); data->clk = devm_clk_get(dev, "sysmmu"); if (IS_ERR(data->clk)) { dev_err(dev, "Failed to get clock!\n"); return PTR_ERR(data->clk); } else { ret = clk_prepare(data->clk); if (ret) { dev_err(dev, "Failed to prepare clk\n"); return ret; } } data->sysmmu = dev; Loading @@ -554,17 +546,7 @@ static int exynos_sysmmu_probe(struct platform_device *pdev) pm_runtime_enable(dev); dev_dbg(dev, "Initialized\n"); return 0; err_irq: free_irq(platform_get_irq(pdev, 0), data); err_res: iounmap(data->sfrbase); err_init: kfree(data); err_alloc: dev_err(dev, "Failed to initialize\n"); return ret; } static struct platform_driver exynos_sysmmu_driver = { Loading