static int netsec_probe(struct platform_device *pdev)
 {
-       struct resource *mmio_res, *eeprom_res, *irq_res;
+       struct resource *mmio_res, *eeprom_res;
        struct netsec_priv *priv;
        u32 hw_ver, phy_addr = 0;
        struct net_device *ndev;
        int ret;
+       int irq;
 
        mmio_res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
        if (!mmio_res) {
                return -ENODEV;
        }
 
-       irq_res = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
-       if (!irq_res) {
-               dev_err(&pdev->dev, "No IRQ resource found.\n");
-               return -ENODEV;
-       }
+       irq = platform_get_irq(pdev, 0);
+       if (irq < 0)
+               return irq;
 
        ndev = alloc_etherdev(sizeof(*priv));
        if (!ndev)
        spin_lock_init(&priv->reglock);
        SET_NETDEV_DEV(ndev, &pdev->dev);
        platform_set_drvdata(pdev, priv);
-       ndev->irq = irq_res->start;
+       ndev->irq = irq;
        priv->dev = &pdev->dev;
        priv->ndev = ndev;