]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/net/dm9000.c
Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6
[linux-2.6-omap-h63xx.git] / drivers / net / dm9000.c
index 8cc1174e7f64361847def8e89132ee0ade90f863..c3de81bf090a3f92062c236f560cee7f63fd1d69 100644 (file)
@@ -77,9 +77,6 @@
 
 #define DM9000_PHY             0x40    /* PHY address 0x01 */
 
-#define TRUE                   1
-#define FALSE                  0
-
 #define CARDNAME "dm9000"
 #define PFX CARDNAME ": "
 
 #define PRINTK(args...)   printk(KERN_DEBUG args)
 #endif
 
+#ifdef CONFIG_BLACKFIN
+#define readsb insb
+#define readsw insw
+#define readsl insl
+#define writesb        outsb
+#define writesw        outsw
+#define writesl        outsl
+#define DM9000_IRQ_FLAGS       (IRQF_SHARED | IRQF_TRIGGER_HIGH)
+#else
+#define DM9000_IRQ_FLAGS       IRQF_SHARED
+#endif
+
 /*
  * Transmit timeout, default 5 seconds.
  */
@@ -434,6 +443,9 @@ dm9000_probe(struct platform_device *pdev)
                db->io_addr = (void __iomem *)base;
                db->io_data = (void __iomem *)(base + 4);
 
+               /* ensure at least we have a default set of IO routines */
+               dm9000_set_io(db, 2);
+
        } else {
                db->addr_res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
                db->data_res = platform_get_resource(pdev, IORESOURCE_MEM, 1);
@@ -601,7 +613,7 @@ dm9000_probe(struct platform_device *pdev)
        printk("%s: not found (%d).\n", CARDNAME, ret);
 
        dm9000_release_board(pdev, db);
-       kfree(ndev);
+       free_netdev(ndev);
 
        return ret;
 }
@@ -617,7 +629,7 @@ dm9000_open(struct net_device *dev)
 
        PRINTK2("entering dm9000_open\n");
 
-       if (request_irq(dev->irq, &dm9000_interrupt, IRQF_SHARED, dev->name, dev))
+       if (request_irq(dev->irq, &dm9000_interrupt, DM9000_IRQ_FLAGS, dev->name, dev))
                return -EAGAIN;
 
        /* Initialize DM9000 board */
@@ -896,7 +908,7 @@ dm9000_rx(struct net_device *dev)
        struct dm9000_rxhdr rxhdr;
        struct sk_buff *skb;
        u8 rxbyte, *rdptr;
-       int GoodPacket;
+       bool GoodPacket;
        int RxLen;
 
        /* Check packet ready or not */
@@ -918,7 +930,7 @@ dm9000_rx(struct net_device *dev)
                        return;
 
                /* A packet ready now  & Get status/length */
-               GoodPacket = TRUE;
+               GoodPacket = true;
                writeb(DM9000_MRCMD, db->io_addr);
 
                (db->inblk)(db->io_data, &rxhdr, sizeof(rxhdr));
@@ -927,7 +939,7 @@ dm9000_rx(struct net_device *dev)
 
                /* Packet Status check */
                if (RxLen < 0x40) {
-                       GoodPacket = FALSE;
+                       GoodPacket = false;
                        PRINTK1("Bad Packet received (runt)\n");
                }
 
@@ -936,7 +948,7 @@ dm9000_rx(struct net_device *dev)
                }
 
                if (rxhdr.RxStatus & 0xbf00) {
-                       GoodPacket = FALSE;
+                       GoodPacket = false;
                        if (rxhdr.RxStatus & 0x100) {
                                PRINTK1("fifo error\n");
                                db->stats.rx_fifo_errors++;
@@ -1193,7 +1205,7 @@ dm9000_drv_remove(struct platform_device *pdev)
 
        unregister_netdev(ndev);
        dm9000_release_board(pdev, (board_info_t *) ndev->priv);
-       kfree(ndev);            /* free device structure */
+       free_netdev(ndev);              /* free device structure */
 
        PRINTK1("clean_module() exit\n");