return NETDEV_TX_OK;
 }
 
-static int fs_request_irq(struct net_device *dev, int irq, const char *name,
-               irq_handler_t irqf)
-{
-       struct fs_enet_private *fep = netdev_priv(dev);
-
-       (*fep->ops->pre_request_irq)(dev, irq);
-       return request_irq(irq, irqf, IRQF_SHARED, name, dev);
-}
-
-static void fs_free_irq(struct net_device *dev, int irq)
-{
-       struct fs_enet_private *fep = netdev_priv(dev);
-
-       free_irq(irq, dev);
-       (*fep->ops->post_free_irq)(dev, irq);
-}
-
 static void fs_timeout(struct net_device *dev)
 {
        struct fs_enet_private *fep = netdev_priv(dev);
                napi_enable(&fep->napi);
 
        /* Install our interrupt handler. */
-       r = fs_request_irq(dev, fep->interrupt, "fs_enet-mac", fs_enet_interrupt);
+       r = request_irq(fep->interrupt, fs_enet_interrupt, IRQF_SHARED,
+                       "fs_enet-mac", dev);
        if (r != 0) {
                printk(KERN_ERR DRV_MODULE_NAME
                       ": %s Could not allocate FS_ENET IRQ!", dev->name);
        /* release any irqs */
        phy_disconnect(fep->phydev);
        fep->phydev = NULL;
-       fs_free_irq(dev, fep->interrupt);
+       free_irq(fep->interrupt, dev);
 
        return 0;
 }
 
        void (*adjust_link)(struct net_device *dev);
        void (*restart)(struct net_device *dev);
        void (*stop)(struct net_device *dev);
-       void (*pre_request_irq)(struct net_device *dev, int irq);
-       void (*post_free_irq)(struct net_device *dev, int irq);
        void (*napi_clear_rx_event)(struct net_device *dev);
        void (*napi_enable_rx)(struct net_device *dev);
        void (*napi_disable_rx)(struct net_device *dev);
 
        fs_cleanup_bds(dev);
 }
 
-static void pre_request_irq(struct net_device *dev, int irq)
-{
-       /* nothing */
-}
-
-static void post_free_irq(struct net_device *dev, int irq)
-{
-       /* nothing */
-}
-
 static void napi_clear_rx_event(struct net_device *dev)
 {
        struct fs_enet_private *fep = netdev_priv(dev);
        .set_multicast_list     = set_multicast_list,
        .restart                = restart,
        .stop                   = stop,
-       .pre_request_irq        = pre_request_irq,
-       .post_free_irq          = post_free_irq,
        .napi_clear_rx_event    = napi_clear_rx_event,
        .napi_enable_rx         = napi_enable_rx,
        .napi_disable_rx        = napi_disable_rx,
 
         * Clear any outstanding interrupt.
         */
        FW(fecp, ievent, 0xffc0);
-#ifndef CONFIG_PPC_MERGE
-       FW(fecp, ivec, (fep->interrupt / 2) << 29);
-#else
        FW(fecp, ivec, (virq_to_hw(fep->interrupt) / 2) << 29);
-#endif
 
        /*
         * adjust to speed (only for DUET & RMII)
        }
 }
 
-static void pre_request_irq(struct net_device *dev, int irq)
-{
-#ifndef CONFIG_PPC_MERGE
-       immap_t *immap = fs_enet_immap;
-       u32 siel;
-
-       /* SIU interrupt */
-       if (irq >= SIU_IRQ0 && irq < SIU_LEVEL7) {
-
-               siel = in_be32(&immap->im_siu_conf.sc_siel);
-               if ((irq & 1) == 0)
-                       siel |= (0x80000000 >> irq);
-               else
-                       siel &= ~(0x80000000 >> (irq & ~1));
-               out_be32(&immap->im_siu_conf.sc_siel, siel);
-       }
-#endif
-}
-
-static void post_free_irq(struct net_device *dev, int irq)
-{
-       /* nothing */
-}
-
 static void napi_clear_rx_event(struct net_device *dev)
 {
        struct fs_enet_private *fep = netdev_priv(dev);
        .set_multicast_list     = set_multicast_list,
        .restart                = restart,
        .stop                   = stop,
-       .pre_request_irq        = pre_request_irq,
-       .post_free_irq          = post_free_irq,
        .napi_clear_rx_event    = napi_clear_rx_event,
        .napi_enable_rx         = napi_enable_rx,
        .napi_disable_rx        = napi_disable_rx,
 
        fs_cleanup_bds(dev);
 }
 
-static void pre_request_irq(struct net_device *dev, int irq)
-{
-#ifndef CONFIG_PPC_MERGE
-       immap_t *immap = fs_enet_immap;
-       u32 siel;
-
-       /* SIU interrupt */
-       if (irq >= SIU_IRQ0 && irq < SIU_LEVEL7) {
-
-               siel = in_be32(&immap->im_siu_conf.sc_siel);
-               if ((irq & 1) == 0)
-                       siel |= (0x80000000 >> irq);
-               else
-                       siel &= ~(0x80000000 >> (irq & ~1));
-               out_be32(&immap->im_siu_conf.sc_siel, siel);
-       }
-#endif
-}
-
-static void post_free_irq(struct net_device *dev, int irq)
-{
-       /* nothing */
-}
-
 static void napi_clear_rx_event(struct net_device *dev)
 {
        struct fs_enet_private *fep = netdev_priv(dev);
        .set_multicast_list     = set_multicast_list,
        .restart                = restart,
        .stop                   = stop,
-       .pre_request_irq        = pre_request_irq,
-       .post_free_irq          = post_free_irq,
        .napi_clear_rx_event    = napi_clear_rx_event,
        .napi_enable_rx         = napi_enable_rx,
        .napi_disable_rx        = napi_disable_rx,