vserver 1.9.5.x5
[linux-2.6.git] / drivers / atm / idt77252.c
index 3959cf8..3d8764a 100644 (file)
@@ -1266,8 +1266,9 @@ idt77252_rx_raw(struct idt77252_dev *card)
        head = IDT77252_PRV_PADDR(queue) + (queue->data - queue->head - 16);
        tail = readl(SAR_REG_RAWCT);
 
-       pci_dma_sync_single(card->pcidev, IDT77252_PRV_PADDR(queue),
-                           queue->end - queue->head - 16, PCI_DMA_FROMDEVICE);
+       pci_dma_sync_single_for_cpu(card->pcidev, IDT77252_PRV_PADDR(queue),
+                                   queue->end - queue->head - 16,
+                                   PCI_DMA_FROMDEVICE);
 
        while (head != tail) {
                unsigned int vpi, vci, pti;
@@ -1360,10 +1361,10 @@ drop:
                        if (next) {
                                card->raw_cell_head = next;
                                queue = card->raw_cell_head;
-                               pci_dma_sync_single(card->pcidev,
-                                                   IDT77252_PRV_PADDR(queue),
-                                                   queue->end - queue->data,
-                                                   PCI_DMA_FROMDEVICE);
+                               pci_dma_sync_single_for_cpu(card->pcidev,
+                                                           IDT77252_PRV_PADDR(queue),
+                                                           queue->end - queue->data,
+                                                           PCI_DMA_FROMDEVICE);
                        } else {
                                card->raw_cell_head = NULL;
                                printk("%s: raw cell queue overrun\n",
@@ -3135,14 +3136,11 @@ deinit_card(struct idt77252_dev *card)
                }
        }
 
-       if (card->soft_tst)
-               vfree(card->soft_tst);
+       vfree(card->soft_tst);
 
-       if (card->scd2vc)
-               vfree(card->scd2vc);
+       vfree(card->scd2vc);
 
-       if (card->vcs)
-               vfree(card->vcs);
+       vfree(card->vcs);
 
        if (card->raw_cell_hnd) {
                pci_free_consistent(card->pcidev, 2 * sizeof(u32),
@@ -3168,7 +3166,7 @@ deinit_card(struct idt77252_dev *card)
        }
 
        if (card->membase)
-               iounmap((void *) card->membase);
+               iounmap(card->membase);
 
        clear_bit(IDT77252_BIT_INIT, &card->flags);
        DIPRINTK("%s: Card deinitialized.\n", card->name);
@@ -3684,9 +3682,9 @@ idt77252_init_one(struct pci_dev *pcidev, const struct pci_device_id *id)
        int i, err;
 
 
-       if (pci_enable_device(pcidev)) {
+       if ((err = pci_enable_device(pcidev))) {
                printk("idt77252: can't enable PCI device at %s\n", pci_name(pcidev));
-               return -ENODEV;
+               return err;
        }
 
        if (pci_read_config_word(pcidev, PCI_REVISION_ID, &revision)) {
@@ -3802,7 +3800,7 @@ err_out_deinit_card:
        deinit_card(card);
 
 err_out_iounmap:
-       iounmap((void *) card->membase);
+       iounmap(card->membase);
 
 err_out_free_card:
        kfree(card);
@@ -3819,6 +3817,8 @@ static struct pci_device_id idt77252_pci_tbl[] =
        { 0, }
 };
 
+MODULE_DEVICE_TABLE(pci, idt77252_pci_tbl);
+
 static struct pci_driver idt77252_driver = {
        .name           = "idt77252",
        .id_table       = idt77252_pci_tbl,
@@ -3840,11 +3840,7 @@ static int __init idt77252_init(void)
                return -EIO;
        }
 
-       if (pci_register_driver(&idt77252_driver) > 0)
-               return 0;
-
-       pci_unregister_driver(&idt77252_driver);
-       return -ENODEV;
+       return pci_register_driver(&idt77252_driver);
 }
 
 static void __exit idt77252_exit(void)
@@ -3874,10 +3870,10 @@ module_exit(idt77252_exit);
 
 MODULE_LICENSE("GPL");
 
-MODULE_PARM(vpibits, "i");
+module_param(vpibits, uint, 0);
 MODULE_PARM_DESC(vpibits, "number of VPI bits supported (0, 1, or 2)");
 #ifdef CONFIG_ATM_IDT77252_DEBUG
-MODULE_PARM(debug, "i");
+module_param(debug, ulong, 0644);
 MODULE_PARM_DESC(debug,   "debug bitmap, see drivers/atm/idt77252.h");
 #endif