ref: 330916bfa517734e93cf8799ecf3fe7dd1b53e69
parent: 0d3c3ba93506094d0360df9d10c4b787218e59dc
parent: 557cbe10adb61ffd3d29689b26c9f42fa2f850c9
author: cinap_lenrek <[email protected]>
date: Thu Mar 30 19:39:03 EDT 2017
merge
--- a/sys/src/9/pc/pccpuf
+++ b/sys/src/9/pc/pccpuf
@@ -101,6 +101,7 @@
sdodin pci sdscsi led
sdvirtio pci sdscsi
sdmmc pci pmmc
+ sdnvme pci
sdloop
vga3dfx +cur
--- a/sys/src/9/pc/pcf
+++ b/sys/src/9/pc/pcf
@@ -98,6 +98,7 @@
sdodin pci sdscsi led
sdvirtio pci sdscsi
sdmmc pci pmmc
+ sdnvme pci
sdloop
uarti8250
--- a/sys/src/9/pc/sdnvme.c
+++ b/sys/src/9/pc/sdnvme.c
@@ -165,7 +165,7 @@
if(cq->base == nil)
continue;
phaseshift = 16 - cq->shift;
- for(;; cq->head++){
+ for(;;){
e = &cq->base[(cq->head & cq->mask)<<2];
if(((e[3] ^ (cq->head << phaseshift)) & 0x10000) == 0)
break;
@@ -183,11 +183,9 @@
*wp = nil;
wakeup(z);
}
+ ctlr->reg[DBell + ((cq-ctlr->cq)*2+1 << ctlr->dstrd)] = ++cq->head & cq->mask;
}
- ctlr->reg[DBell + ((cq-ctlr->cq)*2+1 << ctlr->dstrd)] = cq->head & cq->mask;
}
- if((ctlr->reg[CSts] & 3) != 1)
- iprint("nvmeintr: fatal controller error\n");
ctlr->reg[IntMc] = ctlr->ints;
iunlock(&ctlr->intr);
}
--- a/sys/src/9/pc64/pc64
+++ b/sys/src/9/pc64/pc64
@@ -96,6 +96,7 @@
# sdodin pci sdscsi led
sdvirtio pci sdscsi
sdmmc pci pmmc
+ sdnvme pci
sdloop
uarti8250