linux 2.6.16.38 w/ vs2.0.3-rc1
[linux-2.6.git] / drivers / net / wan / pci200syn.c
index 4df61fa..eba8e5c 100644 (file)
@@ -7,7 +7,7 @@
  * under the terms of version 2 of the GNU General Public License
  * as published by the Free Software Foundation.
  *
- * For information see <http://www.kernel.org/pub/linux/utils/net/hdlc/>
+ * For information see http://hq.pm.waw.pl/hdlc/
  *
  * Sources of information:
  *    Hitachi HD64572 SCA-II User's Manual
@@ -50,6 +50,10 @@ static const char* devname = "PCI200SYN";
 static int pci_clock_freq = 33000000;
 #define CLOCK_BASE pci_clock_freq
 
+#define PCI_VENDOR_ID_GORAMO   0x10B5  /* uses PLX:9050 ID - this card */
+#define PCI_DEVICE_ID_PCI200SYN        0x9050  /* doesn't have its own ID      */
+
+
 /*
  *      PLX PCI9052 local configuration and shared runtime registers.
  *      This structure can be used to access 9052 registers (memory mapped).
@@ -258,7 +262,7 @@ static void pci200_pci_remove_one(struct pci_dev *pdev)
        int i;
        card_t *card = pci_get_drvdata(pdev);
 
-       for (i = 0; i < 2; i++)
+       for(i = 0; i < 2; i++)
                if (card->ports[i].card) {
                        struct net_device *dev = port_to_dev(&card->ports[i]);
                        unregister_hdlc_device(dev);
@@ -354,7 +358,6 @@ static int __devinit pci200_pci_init_one(struct pci_dev *pdev,
            card->rambase == NULL) {
                printk(KERN_ERR "pci200syn: ioremap() failed\n");
                pci200_pci_remove_one(pdev);
-               return -EFAULT;
        }
 
        /* Reset PLX */
@@ -382,15 +385,6 @@ static int __devinit pci200_pci_init_one(struct pci_dev *pdev,
               " %u RX packets rings\n", ramsize / 1024, ramphys,
               pdev->irq, card->tx_ring_buffers, card->rx_ring_buffers);
 
-       if (pdev->subsystem_device == PCI_DEVICE_ID_PLX_9050) {
-               printk(KERN_ERR "Detected PCI200SYN card with old "
-                      "configuration data.\n");
-               printk(KERN_ERR "See <http://www.kernel.org/pub/"
-                      "linux/utils/net/hdlc/pci200syn/> for update.\n");
-               printk(KERN_ERR "The card will stop working with"
-                      " future versions of Linux if not updated.\n");
-       }
-
        if (card->tx_ring_buffers < 1) {
                printk(KERN_ERR "pci200syn: RAM test failed\n");
                pci200_pci_remove_one(pdev);
@@ -402,7 +396,7 @@ static int __devinit pci200_pci_init_one(struct pci_dev *pdev,
        writew(readw(p) | 0x0040, p);
 
        /* Allocate IRQ */
-       if (request_irq(pdev->irq, sca_intr, IRQF_SHARED, devname, card)) {
+       if(request_irq(pdev->irq, sca_intr, SA_SHIRQ, devname, card)) {
                printk(KERN_WARNING "pci200syn: could not allocate IRQ%d.\n",
                       pdev->irq);
                pci200_pci_remove_one(pdev);
@@ -412,7 +406,7 @@ static int __devinit pci200_pci_init_one(struct pci_dev *pdev,
 
        sca_init(card, 0);
 
-       for (i = 0; i < 2; i++) {
+       for(i = 0; i < 2; i++) {
                port_t *port = &card->ports[i];
                struct net_device *dev = port_to_dev(port);
                hdlc_device *hdlc = dev_to_hdlc(dev);
@@ -431,7 +425,7 @@ static int __devinit pci200_pci_init_one(struct pci_dev *pdev,
                hdlc->xmit = sca_xmit;
                port->settings.clock_type = CLOCK_EXT;
                port->card = card;
-               if (register_hdlc_device(dev)) {
+               if(register_hdlc_device(dev)) {
                        printk(KERN_ERR "pci200syn: unable to register hdlc "
                               "device\n");
                        port->card = NULL;
@@ -451,10 +445,8 @@ static int __devinit pci200_pci_init_one(struct pci_dev *pdev,
 
 
 static struct pci_device_id pci200_pci_tbl[] __devinitdata = {
-       { PCI_VENDOR_ID_PLX, PCI_DEVICE_ID_PLX_9050, PCI_VENDOR_ID_PLX,
-         PCI_DEVICE_ID_PLX_9050, 0, 0, 0 },
-       { PCI_VENDOR_ID_PLX, PCI_DEVICE_ID_PLX_9050, PCI_VENDOR_ID_PLX,
-         PCI_DEVICE_ID_PLX_PCI200SYN, 0, 0, 0 },
+       { PCI_VENDOR_ID_GORAMO, PCI_DEVICE_ID_PCI200SYN, PCI_ANY_ID,
+         PCI_ANY_ID, 0, 0, 0 },
        { 0, }
 };