Skip to contentSkip to conversation

NVMe: Write CC before calling enable.

PATCH New Dan McLeran 3 participants 4 messages Jul 1, 2014 – Jul 2, 2014

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 NVMe: Write CC before calling enable.

Write the controller configuration register to configure queue sizes, memory page size, etc. from within nvme_configure_admin_queue before calling nvme_enable_ctrl.

Signed-off-by Dan McLeran <daniel.mcleran at intel.com>
---
 drivers/block/nvme-core.c |    1 +
 1 file changed, 1 insertion(+)
drivers/block/nvme-core.c +1 -0
index 28aec2d..58281d2 100644
@@ -1512,6 +1512,7 @@ static int nvme_configure_admin_queue(struct nvme_dev *dev)
 	writel(aqa, &dev->bar->aqa);
 	writeq(nvmeq->sq_dma_addr, &dev->bar->asq);
 	writeq(nvmeq->cq_dma_addr, &dev->bar->acq);
+	writel(dev->ctrl_config, &dev->bar->cc);
 
 	result = nvme_enable_ctrl(dev, cap);
 	if (result)
Signature · 1 line
1.7.10.4
#1 lore raw

PATCH 1/1 NVMe: Write CC before calling enable.

Quoted 3 lines · Dan McLeran

Write the controller configuration register to configure queue sizes, memory page size, etc. from within nvme_configure_admin_queue before calling nvme_enable_ctrl.

I can see that you're doing that, but why? Is this fixing something?

Quoted 26 lines
Signed-off-by Dan McLeran <daniel.mcleran at intel.com>

---
drivers/block/nvme-core.c | 1 +

1 file changed, 1 insertion(+)
drivers/block/nvme-core.c +1 -0
index 28aec2d..58281d2 100644
@@ -1512,6 +1512,7 @@ static int nvme_configure_admin_queue(struct nvme_dev *dev)
 	writel(aqa, &dev->bar->aqa);
 	writeq(nvmeq->sq_dma_addr, &dev->bar->asq);
 	writeq(nvmeq->cq_dma_addr, &dev->bar->acq);
+	writel(dev->ctrl_config, &dev->bar->cc);
 
 	result = nvme_enable_ctrl(dev, cap);
 	if (result)
Signature · 7 lines
1.7.10.4


_______________________________________________
Linux-nvme mailing list
Linux-nvme at lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-nvme
#2 lore raw

PATCH 1/1 NVMe: Write CC before calling enable.

Quoted 6 lines · Keith Busch
Quoted 3 lines · Dan McLeran

Write the controller configuration register to configure queue sizes, memory page size, etc. from within nvme_configure_admin_queue before calling nvme_enable_ctrl.

I can see that you're doing that, but why? Is this fixing something?

I think I have created this confusion. In Dan's earlier patch, this writel() was left in. I took it out as part of merging his patch (as Dan himself had done in an earlier version of this patch). I didn't see the point of writing everything but enable, then writing the enable bit separately.

Quoted 31 lines
Quoted 26 lines
Signed-off-by Dan McLeran <daniel.mcleran at intel.com>

---
drivers/block/nvme-core.c | 1 +

1 file changed, 1 insertion(+)
drivers/block/nvme-core.c +1 -0
index 28aec2d..58281d2 100644
@@ -1512,6 +1512,7 @@ static int nvme_configure_admin_queue(struct nvme_dev *dev)
 	writel(aqa, &dev->bar->aqa);
 	writeq(nvmeq->sq_dma_addr, &dev->bar->asq);
 	writeq(nvmeq->cq_dma_addr, &dev->bar->acq);
+	writel(dev->ctrl_config, &dev->bar->cc);
 
 	result = nvme_enable_ctrl(dev, cap);
 	if (result)
Signature · 7 lines
1.7.10.4


_______________________________________________
Linux-nvme mailing list
Linux-nvme at lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-nvme

_______________________________________________
Linux-nvme mailing list
Linux-nvme at lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-nvme

#3 lore raw

PATCH 1/1 NVMe: Write CC before calling enable.

Yes, I think I got confused there. This is not necessary.

Quoted 46 lines · Matthew Wilcox
Quoted 6 lines · Keith Busch
Quoted 3 lines · Dan McLeran

Write the controller configuration register to configure queue sizes, memory page size, etc. from within nvme_configure_admin_queue before calling nvme_enable_ctrl.

I can see that you're doing that, but why? Is this fixing something?

I think I have created this confusion. In Dan's earlier patch, this writel() was left in. I took it out as part of merging his patch (as Dan himself had done in an earlier version of this patch). I didn't see the point of writing everything but enable, then writing the enable bit separately.

Quoted 31 lines
Quoted 21 lines
Signed-off-by Dan McLeran <daniel.mcleran at intel.com>

---
drivers/block/nvme-core.c | 1 +

1 file changed, 1 insertion(+)
drivers/block/nvme-core.c +1 -1
index 28aec2d..58281d2 100644
@@ -1512,6 +1512,7 @@ static int nvme_configure_admin_queue(struct nvme_dev *dev)
 	writel(aqa, &dev->bar->aqa);
 	writeq(nvmeq->sq_dma_addr, &dev->bar->asq);
 	writeq(nvmeq->cq_dma_addr, &dev->bar->acq);
+	writel(dev->ctrl_config, &dev->bar->cc);
 
 	result = nvme_enable_ctrl(dev, cap);
 	if (result)
--

1.7.10.4

Quoted 5 lines

_______________________________________________
Linux-nvme mailing list
Linux-nvme at lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-nvme

_______________________________________________
Linux-nvme mailing list
Linux-nvme at lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-nvme