diff options
Diffstat (limited to 'drivers/rtc/rtc-davinci.c')
| -rw-r--r-- | drivers/rtc/rtc-davinci.c | 33 | 
1 files changed, 5 insertions, 28 deletions
diff --git a/drivers/rtc/rtc-davinci.c b/drivers/rtc/rtc-davinci.c index 24677ef8c39a..c0a3b59f65a2 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,14 +480,12 @@ 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 = devm_kzalloc(&pdev->dev, sizeof(struct davinci_rtc), GFP_KERNEL); -	if (!davinci_rtc) { -		dev_dbg(dev, "could not allocate memory for private data\n"); +	if (!davinci_rtc)  		return -ENOMEM; -	}  	davinci_rtc->irq = platform_get_irq(pdev, 0);  	if (davinci_rtc->irq < 0) { @@ -498,28 +494,9 @@ static int __init davinci_rtc_probe(struct platform_device *pdev)  	}  	res = platform_get_resource(pdev, IORESOURCE_MEM, 0); -	if (!res) { -		dev_err(dev, "no mem resource\n"); -		return -EINVAL; -	} - -	davinci_rtc->pbase = res->start; -	davinci_rtc->base_size = resource_size(res); - -	mem = devm_request_mem_region(dev, davinci_rtc->pbase, -				davinci_rtc->base_size, pdev->name); -	if (!mem) { -		dev_err(dev, "RTC registers at %08x are not free\n", -			davinci_rtc->pbase); -		return -EBUSY; -	} - -	davinci_rtc->base = devm_ioremap(dev, davinci_rtc->pbase, -					davinci_rtc->base_size); -	if (!davinci_rtc->base) { -		dev_err(dev, "unable to ioremap MEM resource\n"); -		return -ENOMEM; -	} +	davinci_rtc->base = devm_ioremap_resource(dev, res); +	if (IS_ERR(davinci_rtc->base)) +		return PTR_ERR(davinci_rtc->base);  	platform_set_drvdata(pdev, davinci_rtc);  | 
