summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorShane Michael Matthews <shane.matthews@intel.com>2011-02-01 19:31:55 +0300
committerMatthew Wilcox <matthew.r.wilcox@intel.com>2011-11-04 23:52:54 +0400
commit5911f20039ce59d7e7834f0c42151cf759b6f786 (patch)
tree49dd439d64f4c5936ae72d5d1d3f3984ec69b118 /drivers
parent574e8b95bc3780e10e9b5e9d51074d503dd3d5d9 (diff)
downloadlinux-5911f20039ce59d7e7834f0c42151cf759b6f786.tar.xz
NVMe: Disable the device before we write the admin queues
In case the card has been left in a partially-configured state, write 0 to the Enable bit. Signed-off-by: Shane Michael Matthews <shane.matthews@intel.com> Signed-off-by: Matthew Wilcox <matthew.r.wilcox@intel.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/block/nvme.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/block/nvme.c b/drivers/block/nvme.c
index bda91178f475..e3d921577b94 100644
--- a/drivers/block/nvme.c
+++ b/drivers/block/nvme.c
@@ -668,6 +668,7 @@ static int __devinit nvme_configure_admin_queue(struct nvme_dev *dev)
dev->ctrl_config |= (PAGE_SHIFT - 12) << NVME_CC_MPS_SHIFT;
dev->ctrl_config |= NVME_CC_ARB_RR | NVME_CC_SHN_NONE;
+ writel(0, &dev->bar->cc);
writel(aqa, &dev->bar->aqa);
writeq(nvmeq->sq_dma_addr, &dev->bar->asq);
writeq(nvmeq->cq_dma_addr, &dev->bar->acq);