nvme: move chardev and sysfs interface to common code
authorChristoph Hellwig <hch@lst.de>
Sat, 28 Nov 2015 14:40:19 +0000 (15:40 +0100)
committerJens Axboe <axboe@fb.com>
Tue, 1 Dec 2015 17:59:40 +0000 (10:59 -0700)
commitf3ca80fc11c3af566eacd99cf821c1a48035c63b
tree1db6d155210c4f11a48a2285eb7691313fa73496
parent5bae7f73d378a986671a3cad717c721b38f80d9e
nvme: move chardev and sysfs interface to common code

For this we need to add a proper controller init routine and a list of
all controllers that is in addition to the list of PCIe controllers,
which stays in pci.c.  Note that we remove the sysfs device when the
last reference to a controller is dropped now - the old code would have
kept it around longer, which doesn't make much sense.

This requires a new ->reset_ctrl operation to implement controleller
resets, and a new ->write_reg32 operation that is required to implement
subsystem resets.  We also now store caches copied of the NVMe compliance
version and the flag if a controller is attached to a subsystem or not in
the generic controller structure now.

Signed-off-by: Christoph Hellwig <hch@lst.de>
[Fixes for pr merge]
Signed-off-by: Keith Busch <keith.busch@intel.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
drivers/nvme/host/core.c
drivers/nvme/host/nvme.h
drivers/nvme/host/pci.c
drivers/nvme/host/scsi.c