--- initial
+++ final
@@ -1,102 +1,100 @@
 static int idt77252_init_one(struct pci_dev *pcidev, const struct pci_device_id *id) {
   static struct idt77252_dev **last = &idt77252_chain;
   static int index = 0;
   unsigned long membase, srambase;
   struct idt77252_dev *card;
   struct atm_dev *dev;
   int i, err;
   if ((err = pci_enable_device(pcidev))) {
     printk("idt77252: can't enable PCI device at %s\n", pci_name(pcidev));
     return err;
   }
   if ((err = dma_set_mask_and_coherent(&pcidev->dev, DMA_BIT_MASK(32)))) {
     printk("idt77252: can't enable DMA for PCI device at %s\n", pci_name(pcidev));
     return err;
   }
   card = kzalloc(sizeof(struct idt77252_dev), GFP_KERNEL);
   if (!card) {
     printk("idt77252-%d: can't allocate private data\n", index);
     err = -ENOMEM;
     goto err_out_disable_pdev;
   }
   card->revision = pcidev->revision;
   card->index = index;
   card->pcidev = pcidev;
   sprintf(card->name, "idt77252-%d", card->index);
   INIT_WORK(&card->tqueue, idt77252_softint);
   membase = pci_resource_start(pcidev, 1);
   srambase = pci_resource_start(pcidev, 2);
   mutex_init(&card->mutex);
   spin_lock_init(&card->cmd_lock);
   spin_lock_init(&card->tst_lock);
-  init_timer(&card->tst_timer);
-  card->tst_timer.data = (unsigned long)card;
-  card->tst_timer.function = tst_timer;
+  setup_timer(&card->tst_timer, tst_timer, (unsigned long)card);
   /* Do the I/O remapping... */
   card->membase = ioremap(membase, 1024);
   if (!card->membase) {
     printk("%s: can't ioremap() membase\n", card->name);
     err = -EIO;
     goto err_out_free_card;
   }
   if (idt77252_preset(card)) {
     printk("%s: preset failed\n", card->name);
     err = -EIO;
     goto err_out_iounmap;
   }
   dev = atm_dev_register("idt77252", &pcidev->dev, &idt77252_ops, -1, NULL);
   if (!dev) {
     printk("%s: can't register atm device\n", card->name);
     err = -EIO;
     goto err_out_iounmap;
   }
   dev->dev_data = card;
   card->atmdev = dev;
 #ifdef CONFIG_ATM_IDT77252_USE_SUNI
   suni_init(dev);
   if (!dev->phy) {
     printk("%s: can't init SUNI\n", card->name);
     err = -EIO;
     goto err_out_deinit_card;
   }
 #endif /* CONFIG_ATM_IDT77252_USE_SUNI */
   card->sramsize = probe_sram(card);
   for (i = 0; i < 4; i++) {
     card->fbq[i] = ioremap(srambase | 0x200000 | (i << 18), 4);
     if (!card->fbq[i]) {
       printk("%s: can't ioremap() FBQ%d\n", card->name, i);
       err = -EIO;
       goto err_out_deinit_card;
     }
   }
   printk("%s: ABR SAR (Rev %c): MEM %08lx SRAM %08lx [%u KB]\n", card->name, ((card->revision > 1) && (card->revision < 25)) ? 'A' + card->revision - 1 : '?', membase, srambase, card->sramsize / 1024);
   if (init_card(dev)) {
     printk("%s: init_card failed\n", card->name);
     err = -EIO;
     goto err_out_deinit_card;
   }
   dev->ci_range.vpi_bits = card->vpibits;
   dev->ci_range.vci_bits = card->vcibits;
   dev->link_rate = card->link_pcr;
   if (dev->phy->start) dev->phy->start(dev);
   if (idt77252_dev_open(card)) {
     printk("%s: dev_open failed\n", card->name);
     err = -EIO;
     goto err_out_stop;
   }
   *last = card;
   last = &card->next;
   index++;
   return 0;
 err_out_stop:
   if (dev->phy->stop) dev->phy->stop(dev);
 err_out_deinit_card:
   deinit_card(card);
 err_out_iounmap:
   iounmap(card->membase);
 err_out_free_card:
   kfree(card);
 err_out_disable_pdev:
   pci_disable_device(pcidev);
   return err;
 }<sep>@@
expression E0;
expression E1,e1;
expression E2;
@@
- init_timer(&E0);
+ setup_timer(&E0, E1, E2);
  ... when != E0.function = e1;
- E0.data = E2;
  ... when != init_timer(&E0);
- E0.function = E1;