Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

rtc: rtc-vt8500: use devm_ioremap_resource()

Use devm_ioremap_resource() in order to make the code simpler, and move
'struct resource *res' from 'struct vt8500_rtc' to vt8500_rtc_probe()
because the 'res' variable is used only in vt8500_rtc_probe().

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Cc: Tony Prisk <linux@prisktech.co.nz>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

authored by

Jingoo Han and committed by
Linus Torvalds
caa3af25 1e6789f6

+5 -23
+5 -23
drivers/rtc/rtc-vt8500.c
··· 79 79 80 80 struct vt8500_rtc { 81 81 void __iomem *regbase; 82 - struct resource *res; 83 82 int irq_alarm; 84 83 struct rtc_device *rtc; 85 84 spinlock_t lock; /* Protects this structure */ ··· 208 209 static int vt8500_rtc_probe(struct platform_device *pdev) 209 210 { 210 211 struct vt8500_rtc *vt8500_rtc; 212 + struct resource *res; 211 213 int ret; 212 214 213 215 vt8500_rtc = devm_kzalloc(&pdev->dev, ··· 219 219 spin_lock_init(&vt8500_rtc->lock); 220 220 platform_set_drvdata(pdev, vt8500_rtc); 221 221 222 - vt8500_rtc->res = platform_get_resource(pdev, IORESOURCE_MEM, 0); 223 - if (!vt8500_rtc->res) { 224 - dev_err(&pdev->dev, "No I/O memory resource defined\n"); 225 - return -ENXIO; 226 - } 227 - 228 222 vt8500_rtc->irq_alarm = platform_get_irq(pdev, 0); 229 223 if (vt8500_rtc->irq_alarm < 0) { 230 224 dev_err(&pdev->dev, "No alarm IRQ resource defined\n"); 231 225 return vt8500_rtc->irq_alarm; 232 226 } 233 227 234 - vt8500_rtc->res = devm_request_mem_region(&pdev->dev, 235 - vt8500_rtc->res->start, 236 - resource_size(vt8500_rtc->res), 237 - "vt8500-rtc"); 238 - if (vt8500_rtc->res == NULL) { 239 - dev_err(&pdev->dev, "failed to request I/O memory\n"); 240 - return -EBUSY; 241 - } 242 - 243 - vt8500_rtc->regbase = devm_ioremap(&pdev->dev, vt8500_rtc->res->start, 244 - resource_size(vt8500_rtc->res)); 245 - if (!vt8500_rtc->regbase) { 246 - dev_err(&pdev->dev, "Unable to map RTC I/O memory\n"); 247 - ret = -EBUSY; 248 - goto err_return; 249 - } 228 + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); 229 + vt8500_rtc->regbase = devm_ioremap_resource(&pdev->dev, res); 230 + if (IS_ERR(vt8500_rtc->regbase)) 231 + return PTR_ERR(vt8500_rtc->regbase); 250 232 251 233 /* Enable RTC and set it to 24-hour mode */ 252 234 writel(VT8500_RTC_CR_ENABLE,