Merge branch 'remotes/lorenzo/pci/vmd'
- Add VMD bus 224-255 restriction decode (Jon Derrick) - Add VMD 8086:9A0B device ID (Jon Derrick) - Remove Keith from VMD maintainer list (Keith Busch) * remotes/lorenzo/pci/vmd: MAINTAINERS: Remove Keith from VMD maintainer PCI: vmd: Add device id for VMD device 8086:9A0B PCI: vmd: Add bus 224-255 restriction decode
This commit is contained in:
Коммит
d8ddab6363
|
@ -12447,7 +12447,6 @@ F: Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.txt
|
|||
F: drivers/pci/controller/dwc/*imx6*
|
||||
|
||||
PCI DRIVER FOR INTEL VOLUME MANAGEMENT DEVICE (VMD)
|
||||
M: Keith Busch <keith.busch@intel.com>
|
||||
M: Jonathan Derrick <jonathan.derrick@intel.com>
|
||||
L: linux-pci@vger.kernel.org
|
||||
S: Supported
|
||||
|
|
|
@ -602,16 +602,30 @@ static int vmd_enable_domain(struct vmd_dev *vmd, unsigned long features)
|
|||
|
||||
/*
|
||||
* Certain VMD devices may have a root port configuration option which
|
||||
* limits the bus range to between 0-127 or 128-255
|
||||
* limits the bus range to between 0-127, 128-255, or 224-255
|
||||
*/
|
||||
if (features & VMD_FEAT_HAS_BUS_RESTRICTIONS) {
|
||||
u32 vmcap, vmconfig;
|
||||
u16 reg16;
|
||||
|
||||
pci_read_config_dword(vmd->dev, PCI_REG_VMCAP, &vmcap);
|
||||
pci_read_config_dword(vmd->dev, PCI_REG_VMCONFIG, &vmconfig);
|
||||
if (BUS_RESTRICT_CAP(vmcap) &&
|
||||
(BUS_RESTRICT_CFG(vmconfig) == 0x1))
|
||||
vmd->busn_start = 128;
|
||||
pci_read_config_word(vmd->dev, PCI_REG_VMCAP, ®16);
|
||||
if (BUS_RESTRICT_CAP(reg16)) {
|
||||
pci_read_config_word(vmd->dev, PCI_REG_VMCONFIG,
|
||||
®16);
|
||||
|
||||
switch (BUS_RESTRICT_CFG(reg16)) {
|
||||
case 1:
|
||||
vmd->busn_start = 128;
|
||||
break;
|
||||
case 2:
|
||||
vmd->busn_start = 224;
|
||||
break;
|
||||
case 3:
|
||||
pci_err(vmd->dev, "Unknown Bus Offset Setting\n");
|
||||
return -ENODEV;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
res = &vmd->dev->resource[VMD_CFGBAR];
|
||||
|
@ -854,6 +868,8 @@ static const struct pci_device_id vmd_ids[] = {
|
|||
{PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_VMD_28C0),
|
||||
.driver_data = VMD_FEAT_HAS_MEMBAR_SHADOW |
|
||||
VMD_FEAT_HAS_BUS_RESTRICTIONS,},
|
||||
{PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_VMD_9A0B),
|
||||
.driver_data = VMD_FEAT_HAS_BUS_RESTRICTIONS,},
|
||||
{0,}
|
||||
};
|
||||
MODULE_DEVICE_TABLE(pci, vmd_ids);
|
||||
|
|
|
@ -3006,6 +3006,7 @@
|
|||
#define PCI_DEVICE_ID_INTEL_84460GX 0x84ea
|
||||
#define PCI_DEVICE_ID_INTEL_IXP4XX 0x8500
|
||||
#define PCI_DEVICE_ID_INTEL_IXP2800 0x9004
|
||||
#define PCI_DEVICE_ID_INTEL_VMD_9A0B 0x9a0b
|
||||
#define PCI_DEVICE_ID_INTEL_S21152BB 0xb152
|
||||
|
||||
#define PCI_VENDOR_ID_SCALEMP 0x8686
|
||||
|
|
Загрузка…
Ссылка в новой задаче