diff --git a/sys/src/9/pc/usbehcipc.c b/sys/src/9/pc/usbehcipc.c index 082117c31..29a49bb6f 100644 --- a/sys/src/9/pc/usbehcipc.c +++ b/sys/src/9/pc/usbehcipc.c @@ -41,7 +41,7 @@ getehci(Ctlr* ctlr) off = ehciecap(ctlr, Clegacy); if(off == -1) return; - if(pcicfgr8(ctlr->pcidev, off+CLbiossem) != 0){ + if(getconf("*noehcihandoff") == nil && pcicfgr8(ctlr->pcidev, off+CLbiossem) != 0){ dprint("ehci %#p: bios active, taking over...\n", ctlr->capio); pcicfgw8(ctlr->pcidev, off+CLossem, 1); for(i = 0; i < 100; i++){ diff --git a/sys/src/9/pc/usbxhci.c b/sys/src/9/pc/usbxhci.c index 489de15a3..42947173f 100644 --- a/sys/src/9/pc/usbxhci.c +++ b/sys/src/9/pc/usbxhci.c @@ -393,11 +393,13 @@ handoff(Ctlr *ctlr) if((r = xecp(ctlr, 1, nil)) == nil) return; - r[0] |= 1<<24; /* request ownership */ - for(i = 0; (r[0] & (1<<16)) != 0 && i<100; i++) - tsleep(&up->sleep, return0, nil, 10); + if(getconf("*noxhcihandoff") == nil){ + r[0] |= 1<<24; /* request ownership */ + for(i = 0; (r[0] & (1<<16)) != 0 && i<100; i++) + tsleep(&up->sleep, return0, nil, 10); + r[0] &= ~(1<<16); /* in case of timeout */ + } r[1] = 0; /* disable SMI interrupts */ - r[0] &= ~(1<<16); /* in case of timeout */ } static void