]> git.lizzy.rs Git - plan9front.git/blobdiff - sys/src/9/pc/ether82543gc.c
devkbd: bits bad! revert repeat/delay, better patches welcome
[plan9front.git] / sys / src / 9 / pc / ether82543gc.c
index a17075de18d1feae35235d9a32f6d64d94b69e04..572a6ddb179b37310ff098c81f158ddefee37fa8 100644 (file)
@@ -18,8 +18,7 @@
 #include "io.h"
 #include "../port/error.h"
 #include "../port/netif.h"
-
-#include "etherif.h"
+#include "../port/etherif.h"
 
 enum {
        Ctrl            = 0x00000000,   /* Device Control */
@@ -852,7 +851,7 @@ gc82543recv(Ether* edev, int icr)
                        ctlr->rb[rdh] = nil;
                        bp->wp += rdesc->length;
                        bp->next = nil;
-                       etheriq(edev, bp, 1);
+                       etheriq(edev, bp);
                }
 
                if(ctlr->rb[rdh] != nil){
@@ -1291,11 +1290,6 @@ gc82543pci(void)
                ctlr->id = (p->did<<16)|p->vid;
                ctlr->nic = mem;
 
-               if(gc82543reset(ctlr)){
-                       free(ctlr);
-                       continue;
-               }
-
                if(gc82543ctlrhead != nil)
                        gc82543ctlrtail->next = ctlr;
                else
@@ -1328,6 +1322,9 @@ gc82543pnp(Ether* edev)
        }
        if(ctlr == nil)
                return -1;
+       
+       pcienable(ctlr->pcidev);
+       gc82543reset(ctlr);
 
        edev->ctlr = ctlr;
        edev->port = ctlr->port;
@@ -1348,6 +1345,7 @@ gc82543pnp(Ether* edev)
                }
        }
        gc82543init(edev);
+       pcisetbme(ctlr->pcidev);
 
        /*
         * Linkage to the generic ethernet driver.