|
@@ -548,8 +548,8 @@ static int __devinit dw_i2c_probe(struct platform_device *pdev)
|
|
|
{
|
|
|
struct dw_i2c_dev *dev;
|
|
|
struct i2c_adapter *adap;
|
|
|
- struct resource *mem, *irq, *ioarea;
|
|
|
- int r;
|
|
|
+ struct resource *mem, *ioarea;
|
|
|
+ int irq, r;
|
|
|
|
|
|
/* NOTE: driver uses the static register mapping */
|
|
|
mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
|
|
@@ -558,10 +558,10 @@ static int __devinit dw_i2c_probe(struct platform_device *pdev)
|
|
|
return -EINVAL;
|
|
|
}
|
|
|
|
|
|
- irq = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
|
|
|
- if (!irq) {
|
|
|
+ irq = platform_get_irq(pdev, 0);
|
|
|
+ if (irq < 0) {
|
|
|
dev_err(&pdev->dev, "no irq resource?\n");
|
|
|
- return -EINVAL;
|
|
|
+ return irq; /* -ENXIO */
|
|
|
}
|
|
|
|
|
|
ioarea = request_mem_region(mem->start, resource_size(mem),
|
|
@@ -581,7 +581,7 @@ static int __devinit dw_i2c_probe(struct platform_device *pdev)
|
|
|
tasklet_init(&dev->pump_msg, dw_i2c_pump_msg, (unsigned long) dev);
|
|
|
mutex_init(&dev->lock);
|
|
|
dev->dev = get_device(&pdev->dev);
|
|
|
- dev->irq = irq->start;
|
|
|
+ dev->irq = irq;
|
|
|
platform_set_drvdata(pdev, dev);
|
|
|
|
|
|
dev->clk = clk_get(&pdev->dev, NULL);
|