Hi,

> >> @@ -275,8 +276,8 @@ static int __devinit ocores_i2c_probe(struct 
> >> platform_device *pdev)
> >>    if (!res)
> >>            return -ENODEV;
> >>  
> >> -  res2 = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
> >> -  if (!res2)
> >> +  irq = platform_get_irq(pdev, 0);
> >> +  if (irq < 0)
> >>            return -ENODEV;
> > 
> > Why not pass the error code you got?
> 
> I believe that should actually be a check for 'irq <= 0' as it returns
> NO_IRQ on error.

I wish it did, but (from 3.7-rc5):

  79 /**
  80  * platform_get_irq - get an IRQ for a device
  81  * @dev: platform device
  82  * @num: IRQ number index
  83  */
  84 int platform_get_irq(struct platform_device *dev, unsigned int num)
  85 {
  86 #ifdef CONFIG_SPARC
  87         /* sparc does not have irqs represented as IORESOURCE_IRQ 
resources */
  88         if (!dev || num >= dev->archdata.num_irqs)
  89                 return -ENXIO;
  90         return dev->archdata.irqs[num];
  91 #else
  92         struct resource *r = platform_get_resource(dev, IORESOURCE_IRQ, 
num);
  93 
  94         return r ? r->start : -ENXIO;
  95 #endif
  96 }
  97 EXPORT_SYMBOL_GPL(platform_get_irq);

-- 
Pengutronix e.K.                           | Wolfram Sang                |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |

Attachment: signature.asc
Description: Digital signature

Reply via email to