]> git.baikalelectronics.ru Git - kernel.git/commit
nvme: set controller enable bit in a separate write
authorNiklas Cassel <niklas.cassel@wdc.com>
Thu, 26 May 2022 13:57:21 +0000 (15:57 +0200)
committerChristoph Hellwig <hch@lst.de>
Tue, 31 May 2022 05:41:22 +0000 (07:41 +0200)
commit422ce1fc478755a4b5febeb38abef15ac16cec38
treeb5d273303a567486054e9c5dcdfd8a94c134cc79
parent1bd6e0e497afe64778ce954f3753b68b9ae8f5c9
nvme: set controller enable bit in a separate write

The NVM Express Base Specification 2.0 specifies in the description
of the CC – Controller Configuration register:
"Host software shall set the Arbitration Mechanism Selected (CC.AMS),
the Memory Page Size (CC.MPS), and the I/O Command Set Selected (CC.CSS)
to valid values prior to enabling the controller by setting CC.EN to ‘1’.

While we haven't seen any controller misbehaving while setting all bits
in a single write, let's do it in the order that it is written in the
spec, as there could potentially be controllers that are implemented to
rely on the configuration bits being set before enabling the controller.

Signed-off-by: Niklas Cassel <niklas.cassel@wdc.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
drivers/nvme/host/core.c