Messages in this thread | | | Date | Tue, 9 Apr 2013 11:00:32 +0200 | From | Wolfram Sang <> | Subject | Re: [1/7] i2c-designware: move to managed functions (devm_*) |
| |
> @@ -108,32 +108,27 @@ static int dw_i2c_probe(struct platform_device *pdev) > return irq; /* -ENXIO */ > } > > - ioarea = request_mem_region(mem->start, resource_size(mem), > - pdev->name); > - if (!ioarea) { > - dev_err(&pdev->dev, "I2C region already claimed\n"); > - return -EBUSY; > - } > + dev = devm_kzalloc(&pdev->dev, sizeof(struct dw_i2c_dev), GFP_KERNEL); > + if (!dev) > + return -ENOMEM; > > - dev = kzalloc(sizeof(struct dw_i2c_dev), GFP_KERNEL); > - if (!dev) { > - r = -ENOMEM; > - goto err_release_region; > + dev->base = devm_ioremap_resource(&pdev->dev, mem); > + if (IS_ERR(dev->base)) { > + dev_err(&pdev->dev, "I2C region already claimed\n");
No dev_err here. The devm function will print out errors already.
> @@ -164,13 +152,14 @@ static int dw_i2c_probe(struct platform_device *pdev) > } > r = i2c_dw_init(dev); > if (r) > - goto err_iounmap; > + return r; > > i2c_dw_disable_int(dev); > - r = request_irq(dev->irq, i2c_dw_isr, IRQF_SHARED, pdev->name, dev); > + r = devm_request_irq(&pdev->dev, dev->irq, i2c_dw_isr, IRQF_SHARED, > + pdev->name, dev);
Is it ensured that no interrupts will happen during remove? Because the adapter will be deleted before devm will free the interrupt.
Thanks,
Wolfram
| |