nvme: Fix getting PCI vendor id of the NVMe block device
authorBin Meng <bmeng.cn@gmail.com>
Tue, 22 Aug 2017 15:15:07 +0000 (08:15 -0700)
committerTom Rini <trini@konsulko.com>
Mon, 28 Aug 2017 11:17:10 +0000 (07:17 -0400)
commite5dc2d266539786730eab6cac3c3e26dcb8abc87
treeaf413155c193a827268e8babe7e56da3ef6a56b6
parentabe25db611039ede49357275561a74ee51e0e474
nvme: Fix getting PCI vendor id of the NVMe block device

The codes currently try to read PCI vendor id of the NVMe block
device by dm_pci_read_config16() with its parameter set as its
root complex controller (ndev->pdev) instead of itself. This is
seriously wrong. We can read the vendor id by passing the correct
udevice parameter to the dm_pci_read_config16() API, however there
is a shortcut by reading the cached vendor id from the PCI device's
struct pci_child_platdata.

While we are here fixing this bug, apparently the quirk stuff handle
codes in nvme_get_info_from_identify() never takes effect since its
logic has never been true at all. Remove these codes completely.

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