nvme: Get rid of the global variable nvme_info
authorBin Meng <bmeng.cn@gmail.com>
Tue, 22 Aug 2017 15:15:16 +0000 (08:15 -0700)
committerTom Rini <trini@konsulko.com>
Mon, 28 Aug 2017 11:17:14 +0000 (07:17 -0400)
commit18aa5a4134e8179c7c3e38675822284a2718a3d8
tree17cd715b07568c52883f6ac7d71f8f1eee9e1b08
parentd5b7ee9c6e19993b10b549ac763aa7db8dbacee0
nvme: Get rid of the global variable nvme_info

At present the NVMe uclass driver uses a global variable nvme_info
to store global information like namespace id, and NVMe controller
driver's priv struct has a blk_dev_start that is used to calculate
the namespace id based on the global information from nvme_info.

This is not a good design in the DM world and can be replaced with
the following changes:

- Encode the namespace id in the NVMe block device name during
  the NVMe uclass post probe
- Extract the namespace id from the device name during the NVMe
  block device probe
- Let BLK uclass calculate the devnum for us by passing -1 to
  blk_create_devicef() as the devnum

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
drivers/nvme/nvme-uclass.c
drivers/nvme/nvme.c
drivers/nvme/nvme.h