return bytes_written;
 }
 
-static void pp_irq (int irq, void * private)
+static void pp_irq (void *private)
 {
-       struct pp_struct * pp = (struct pp_struct *) private;
+       struct pp_struct *pp = private;
 
        if (pp->irqresponse) {
                parport_write_control (pp->pdev->port, pp->irqctl);
 
        return 0;
 }
 
-static void parkbd_interrupt(int irq, void *dev_id)
+static void parkbd_interrupt(void *dev_id)
 {
 
        if (parkbd_writing) {
 
 
 /* ---------------------------------------------------------------------- */
 
-static void epp_interrupt(int irq, void *dev_id)
-{
-}
-
-/* ---------------------------------------------------------------------- */
-
 static inline void do_kiss_params(struct baycom_state *bc,
                                  unsigned char *data, unsigned long len)
 {
        }
        memset(&bc->modem, 0, sizeof(bc->modem));
         bc->pdev = parport_register_device(pp, dev->name, NULL, epp_wakeup, 
-                                       epp_interrupt, PARPORT_DEV_EXCL, dev);
+                                          NULL, PARPORT_DEV_EXCL, dev);
        parport_put_port(pp);
         if (!bc->pdev) {
                 printk(KERN_ERR "%s: cannot register parport at 0x%lx\n", bc_drvname, pp->base);
 
 
 /* --------------------------------------------------------------------- */
 
-static void par96_interrupt(int irq, void *dev_id)
+static void par96_interrupt(void *dev_id)
 {
-       struct net_device *dev = (struct net_device *)dev_id;
+       struct net_device *dev = dev_id;
        struct baycom_state *bc = netdev_priv(dev);
 
        baycom_int_freq(bc);
 
 static void plip_timer_bh(struct work_struct *work);
 
 /* Interrupt handler */
-static void plip_interrupt(int irq, void *dev_id);
+static void plip_interrupt(void *dev_id);
 
 /* Functions for DEV methods */
 static int plip_tx_packet(struct sk_buff *skb, struct net_device *dev);
                container_of(work, struct net_local, timer.work);
 
        if (!(atomic_read (&nl->kill_timer))) {
-               plip_interrupt (-1, nl->dev);
+               plip_interrupt (nl->dev);
 
                schedule_delayed_work(&nl->timer, 1);
        }
 
 /* Handle the parallel port interrupts. */
 static void
-plip_interrupt(int irq, void *dev_id)
+plip_interrupt(void *dev_id)
 {
        struct net_device *dev = dev_id;
        struct net_local *nl;
 
  *     parport_open - find a device by canonical device number
  *     @devnum: canonical device number
  *     @name: name to associate with the device
- *     @pf: preemption callback
- *     @kf: kick callback
- *     @irqf: interrupt handler
- *     @flags: registration flags
- *     @handle: driver data
  *
  *     This function is similar to parport_register_device(), except
  *     that it locates a device by its number rather than by the port
  *     for parport_register_device().
  **/
 
-struct pardevice *parport_open(int devnum, const char *name,
-                               int (*pf) (void *), void (*kf) (void *),
-                               void (*irqf) (int, void *),
-                               int flags, void *handle)
+struct pardevice *parport_open(int devnum, const char *name)
 {
        struct daisydev *p = topology;
        struct parport *port;
        port = parport_get_port(p->port);
        spin_unlock(&topology_lock);
 
-       dev = parport_register_device(port, name, pf, kf,
-                                      irqf, flags, handle);
+       dev = parport_register_device(port, name, NULL, NULL, NULL, 0, NULL);
        parport_put_port(port);
        if (!dev)
                return NULL;
 
 ssize_t parport_device_id (int devnum, char *buffer, size_t count)
 {
        ssize_t retval = -ENXIO;
-       struct pardevice *dev = parport_open (devnum, "Device ID probe",
-                                             NULL, NULL, NULL, 0, NULL);
+       struct pardevice *dev = parport_open (devnum, "Device ID probe");
        if (!dev)
                return -ENXIO;
 
 
 struct pardevice *
 parport_register_device(struct parport *port, const char *name,
                        int (*pf)(void *), void (*kf)(void *),
-                       void (*irq_func)(int, void *), 
+                       void (*irq_func)(void *), 
                        int flags, void *handle)
 {
        struct pardevice *tmp;
 
        int (*preempt)(void *);
        void (*wakeup)(void *);
        void *private;
-       void (*irq_func)(int, void *);
+       void (*irq_func)(void *);
        unsigned int flags;
        struct pardevice *next;
        struct pardevice *prev;
 struct pardevice *parport_register_device(struct parport *port, 
                          const char *name,
                          int (*pf)(void *), void (*kf)(void *),
-                         void (*irq_func)(int, void *), 
+                         void (*irq_func)(void *), 
                          int flags, void *handle);
 
 /* parport_unregister unlinks a device from the chain. */
 /* IEEE1284.3 functions */
 extern int parport_daisy_init (struct parport *port);
 extern void parport_daisy_fini (struct parport *port);
-extern struct pardevice *parport_open (int devnum, const char *name,
-                                      int (*pf) (void *),
-                                      void (*kf) (void *),
-                                      void (*irqf) (int, void *),
-                                      int flags, void *handle);
+extern struct pardevice *parport_open (int devnum, const char *name);
 extern void parport_close (struct pardevice *dev);
 extern ssize_t parport_device_id (int devnum, char *buffer, size_t len);
 extern void parport_daisy_deselect_all (struct parport *port);
        parport_ieee1284_interrupt (port);
        read_lock(&port->cad_lock);
        if (port->cad && port->cad->irq_func)
-               port->cad->irq_func(port->irq, port->cad->private);
+               port->cad->irq_func(port->cad->private);
        read_unlock(&port->cad_lock);
 }
 
 
 /*********************************************************************
  * parport stuff
  *********************************************************************/
-static void snd_mts64_interrupt(int irq, void *private)
+static void snd_mts64_interrupt(void *private)
 {
        struct mts64 *mts = ((struct snd_card*)private)->private_data;
        u16 ret;
 
 /*********************************************************************
  * parport stuff
  *********************************************************************/
-static void snd_portman_interrupt(int irq, void *userdata)
+static void snd_portman_interrupt(void *userdata)
 {
        unsigned char midivalue = 0;
        struct portman *pm = ((struct snd_card*)userdata)->private_data;