Skip to content

Commit d422247

Browse files
damien-lemoalkeithbusch
authored andcommitted
nvme: Cleanup the definition of the controller config register fields
Reorganized the enum used to define the fields of the contrller configuration (CC) register in include/linux/nvme.h to: 1) Group together all the values defined for each field. 2) Add the missing field masks definitions. 3) Add comments to describe the enum and each field. Signed-off-by: Damien Le Moal <dlemoal@kernel.org> Reviewed-by: Chaitanya Kulkarni <kch@nvidia.com> Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Keith Busch <kbusch@kernel.org>
1 parent 487a3ea commit d422247

File tree

1 file changed

+33
-7
lines changed

1 file changed

+33
-7
lines changed

include/linux/nvme.h

Lines changed: 33 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -199,28 +199,54 @@ enum {
199199
#define NVME_NVM_IOSQES 6
200200
#define NVME_NVM_IOCQES 4
201201

202+
/*
203+
* Controller Configuration (CC) register (Offset 14h)
204+
*/
202205
enum {
206+
/* Enable (EN): bit 0 */
203207
NVME_CC_ENABLE = 1 << 0,
204208
NVME_CC_EN_SHIFT = 0,
209+
210+
/* Bits 03:01 are reserved (NVMe Base Specification rev 2.1) */
211+
212+
/* I/O Command Set Selected (CSS): bits 06:04 */
205213
NVME_CC_CSS_SHIFT = 4,
206-
NVME_CC_MPS_SHIFT = 7,
207-
NVME_CC_AMS_SHIFT = 11,
208-
NVME_CC_SHN_SHIFT = 14,
209-
NVME_CC_IOSQES_SHIFT = 16,
210-
NVME_CC_IOCQES_SHIFT = 20,
214+
NVME_CC_CSS_MASK = 7 << NVME_CC_CSS_SHIFT,
211215
NVME_CC_CSS_NVM = 0 << NVME_CC_CSS_SHIFT,
212216
NVME_CC_CSS_CSI = 6 << NVME_CC_CSS_SHIFT,
213-
NVME_CC_CSS_MASK = 7 << NVME_CC_CSS_SHIFT,
217+
218+
/* Memory Page Size (MPS): bits 10:07 */
219+
NVME_CC_MPS_SHIFT = 7,
220+
NVME_CC_MPS_MASK = 0xf << NVME_CC_MPS_SHIFT,
221+
222+
/* Arbitration Mechanism Selected (AMS): bits 13:11 */
223+
NVME_CC_AMS_SHIFT = 11,
224+
NVME_CC_AMS_MASK = 7 << NVME_CC_AMS_SHIFT,
214225
NVME_CC_AMS_RR = 0 << NVME_CC_AMS_SHIFT,
215226
NVME_CC_AMS_WRRU = 1 << NVME_CC_AMS_SHIFT,
216227
NVME_CC_AMS_VS = 7 << NVME_CC_AMS_SHIFT,
228+
229+
/* Shutdown Notification (SHN): bits 15:14 */
230+
NVME_CC_SHN_SHIFT = 14,
231+
NVME_CC_SHN_MASK = 3 << NVME_CC_SHN_SHIFT,
217232
NVME_CC_SHN_NONE = 0 << NVME_CC_SHN_SHIFT,
218233
NVME_CC_SHN_NORMAL = 1 << NVME_CC_SHN_SHIFT,
219234
NVME_CC_SHN_ABRUPT = 2 << NVME_CC_SHN_SHIFT,
220-
NVME_CC_SHN_MASK = 3 << NVME_CC_SHN_SHIFT,
235+
236+
/* I/O Submission Queue Entry Size (IOSQES): bits 19:16 */
237+
NVME_CC_IOSQES_SHIFT = 16,
238+
NVME_CC_IOSQES_MASK = 0xf << NVME_CC_IOSQES_SHIFT,
221239
NVME_CC_IOSQES = NVME_NVM_IOSQES << NVME_CC_IOSQES_SHIFT,
240+
241+
/* I/O Completion Queue Entry Size (IOCQES): bits 23:20 */
242+
NVME_CC_IOCQES_SHIFT = 20,
243+
NVME_CC_IOCQES_MASK = 0xf << NVME_CC_IOCQES_SHIFT,
222244
NVME_CC_IOCQES = NVME_NVM_IOCQES << NVME_CC_IOCQES_SHIFT,
245+
246+
/* Controller Ready Independent of Media Enable (CRIME): bit 24 */
223247
NVME_CC_CRIME = 1 << 24,
248+
249+
/* Bits 25:31 are reserved (NVMe Base Specification rev 2.1) */
224250
};
225251

226252
enum {

0 commit comments

Comments
 (0)