On 10/14/2012 3:43 AM, Hannu Heikkinen wrote:
> Use the devres managed resource functions in the probe routine.
> Also affects the remove routine where the previously used free and
> release functions are not needed.
> 
> The devm_* functions eliminate the need for manual resource releasing and
> simplify error handling.  Resources allocated by devm_* are freed
> automatically on driver detach.
> 
> Signed-off-by: Hannu Heikkinen <hann...@iki.fi>
> ---
>  drivers/rtc/rtc-davinci.c | 56 
> +++++++++++++----------------------------------
>  1 file changed, 15 insertions(+), 41 deletions(-)
> 
> diff --git a/drivers/rtc/rtc-davinci.c b/drivers/rtc/rtc-davinci.c
> index 14c2109..ffb09c2 100644
> --- a/drivers/rtc/rtc-davinci.c
> +++ b/drivers/rtc/rtc-davinci.c
> @@ -119,8 +119,6 @@ static DEFINE_SPINLOCK(davinci_rtc_lock);
>  struct davinci_rtc {
>       struct rtc_device               *rtc;
>       void __iomem                    *base;
> -     resource_size_t                 pbase;
> -     size_t                          base_size;
>       int                             irq;
>  };
>  
> @@ -482,22 +480,16 @@ static int __init davinci_rtc_probe(struct 
> platform_device *pdev)
>  {
>       struct device *dev = &pdev->dev;
>       struct davinci_rtc *davinci_rtc;
> -     struct resource *res, *mem;
> +     struct resource *res;
>       int ret = 0;
>  
> -     davinci_rtc = kzalloc(sizeof(struct davinci_rtc), GFP_KERNEL);
> +     davinci_rtc = devm_kzalloc(&pdev->dev, sizeof(struct tegra_rtc_info),

This line causes a build breakage because of wrong structure name.


> +             GFP_KERNEL);
>       if (!davinci_rtc) {
>               dev_dbg(dev, "could not allocate memory for private data\n");
>               return -ENOMEM;
>       }
>  
> -     davinci_rtc->irq = platform_get_irq(pdev, 0);
> -     if (davinci_rtc->irq < 0) {
> -             dev_err(dev, "no RTC irq\n");
> -             ret = davinci_rtc->irq;
> -             goto fail1;
> -     }
> -
>       res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
>       if (!res) {
>               dev_err(dev, "no mem resource\n");
> @@ -505,23 +497,16 @@ static int __init davinci_rtc_probe(struct 
> platform_device *pdev)
>               goto fail1;

This goto target does not exist anymore after this patch. This causes
build breakage too.

I was not able to test this on a DM365 EVM though. hwclock returned with
this error:

select() to /dev/rtc to wait for clock tick timed out

but this is not related to this patch since the same error occurs even
without this patch. May something to do with the particular board I
used, need to debug and check.

Thanks,
Sekhar
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to