i2c: davinci: switch to use platform_get_irq
authorGrygorii Strashko <grygorii.strashko@ti.com>
Mon, 1 Dec 2014 15:34:03 +0000 (17:34 +0200)
committerWolfram Sang <wsa@the-dreams.de>
Thu, 4 Dec 2014 18:15:08 +0000 (19:15 +0100)
Switch Davinci I2C driver to use platform_get_irq(), because
it is not recommened to use platform_get_resource(pdev, IORESOURCE_IRQ, ..)
for requesting IRQ resources any more, as they can be not ready yet
in case of DT-boot.

Acked-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
drivers/i2c/busses/i2c-davinci.c

index 91c43de..228766b 100644 (file)
@@ -634,13 +634,17 @@ static int davinci_i2c_probe(struct platform_device *pdev)
 {
        struct davinci_i2c_dev *dev;
        struct i2c_adapter *adap;
-       struct resource *mem, *irq;
-       int r;
-
-       irq = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
-       if (!irq) {
-               dev_err(&pdev->dev, "no irq resource?\n");
-               return -ENODEV;
+       struct resource *mem;
+       int r, irq;
+
+       irq = platform_get_irq(pdev, 0);
+       if (irq <= 0) {
+               if (!irq)
+                       irq = -ENXIO;
+               if (irq != -EPROBE_DEFER)
+                       dev_err(&pdev->dev,
+                               "can't get irq resource ret=%d\n", irq);
+               return irq;
        }
 
        dev = devm_kzalloc(&pdev->dev, sizeof(struct davinci_i2c_dev),
@@ -655,7 +659,7 @@ static int davinci_i2c_probe(struct platform_device *pdev)
        init_completion(&dev->xfr_complete);
 #endif
        dev->dev = &pdev->dev;
-       dev->irq = irq->start;
+       dev->irq = irq;
        dev->pdata = dev_get_platdata(&pdev->dev);
        platform_set_drvdata(pdev, dev);