Hi Steve,

> 
>  /**
> diff --git a/arch/arm/mach-msm/iommu_dev.c b/arch/arm/mach-msm/iommu_dev.c
> index b83c73b..69acd1e 100644
> --- a/arch/arm/mach-msm/iommu_dev.c
> +++ b/arch/arm/mach-msm/iommu_dev.c
> @@ -1,4 +1,4 @@
> -/* Copyright (c) 2010, Code Aurora Forum. All rights reserved.
> +/* Copyright (c) 2010-2011, Code Aurora Forum. All rights reserved.
>   *
>   * This program is free software; you can redistribute it and/or modify
>   * it under the terms of the GNU General Public License version 2 and
> @@ -29,6 +29,7 @@
> 
>  #include <mach/iommu_hw-8xxx.h>
>  #include <mach/iommu.h>
> +#include <mach/clk.h>
> 
>  struct iommu_ctx_iter_data {
>       /* input */
> @@ -130,117 +131,134 @@ static int msm_iommu_probe(struct platform_device 
> *pdev)
>  {
>       struct resource *r, *r2;
>       struct clk *iommu_clk;
> +     struct clk *iommu_pclk;
>       struct msm_iommu_drvdata *drvdata;
>       struct msm_iommu_dev *iommu_dev = pdev->dev.platform_data;

const please.

> +     iommu_pclk = clk_get(NULL, "smmu_pclk");
> +     if (IS_ERR(iommu_pclk)) {
> +             ret = -ENODEV;
> +             goto fail;
> +     }

I am not a big fan of this when you have the "device" around. You should just do

iommu_pclk = clk_get(&pdev->dev, NULL);

...error logic...

iommu_clk = clk_get(&pdev->dev, "iommu_clk");

...error logic...


> +
> +     ret = clk_enable(iommu_pclk);
> +     if (ret)
> +             goto fail_enable;
> +
> +     iommu_clk = clk_get(&pdev->dev, "iommu_clk");
> +
> +     if (!IS_ERR(iommu_clk)) {
> +             if (clk_get_rate(iommu_clk) == 0)
> +                     clk_set_min_rate(iommu_clk, 1);
> +
> +             ret = clk_enable(iommu_clk);
> +             if (ret) {
>                       clk_put(iommu_clk);
> +                     goto fail_pclk;
>               }
> +     } else
> +             iommu_clk = NULL;
> 
> -             r = platform_get_resource_byname(pdev, IORESOURCE_MEM,
> -                                              "physbase");
> -             if (!r) {
> -                     ret = -ENODEV;
> -                     goto fail;
> -             }
> +     r = platform_get_resource_byname(pdev, IORESOURCE_MEM, "physbase");
> 
> -             len = r->end - r->start + 1;
> +     if (!r) {
> +             ret = -ENODEV;
> +             goto fail_clk;
> +     }
> 
> -             r2 = request_mem_region(r->start, len, r->name);
> -             if (!r2) {
> -                     pr_err("Could not request memory region: "
> -                     "start=%p, len=%d\n", (void *) r->start, len);
> -                     ret = -EBUSY;
> -                     goto fail;
> -             }
> +     len = r->end - r->start + 1;


resource_size please.


---Trilok Soni


-- 
Sent by a consultant of the Qualcomm Innovation Center, Inc.
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum.
--
To unsubscribe from this list: send the line "unsubscribe linux-arm-msm" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to