mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-22 18:44:44 +08:00
Merge branch 'pci/imx6'
- Enable MSI for imx6 downstream components (Richard Zhu) * pci/imx6: PCI: imx: Enable MSI from downstream components
This commit is contained in:
commit
72199051af
@ -74,6 +74,7 @@ struct imx6_pcie {
|
|||||||
#define PHY_PLL_LOCK_WAIT_USLEEP_MAX 200
|
#define PHY_PLL_LOCK_WAIT_USLEEP_MAX 200
|
||||||
|
|
||||||
/* PCIe Root Complex registers (memory-mapped) */
|
/* PCIe Root Complex registers (memory-mapped) */
|
||||||
|
#define PCIE_RC_IMX6_MSI_CAP 0x50
|
||||||
#define PCIE_RC_LCR 0x7c
|
#define PCIE_RC_LCR 0x7c
|
||||||
#define PCIE_RC_LCR_MAX_LINK_SPEEDS_GEN1 0x1
|
#define PCIE_RC_LCR_MAX_LINK_SPEEDS_GEN1 0x1
|
||||||
#define PCIE_RC_LCR_MAX_LINK_SPEEDS_GEN2 0x2
|
#define PCIE_RC_LCR_MAX_LINK_SPEEDS_GEN2 0x2
|
||||||
@ -926,6 +927,7 @@ static int imx6_pcie_probe(struct platform_device *pdev)
|
|||||||
struct resource *dbi_base;
|
struct resource *dbi_base;
|
||||||
struct device_node *node = dev->of_node;
|
struct device_node *node = dev->of_node;
|
||||||
int ret;
|
int ret;
|
||||||
|
u16 val;
|
||||||
|
|
||||||
imx6_pcie = devm_kzalloc(dev, sizeof(*imx6_pcie), GFP_KERNEL);
|
imx6_pcie = devm_kzalloc(dev, sizeof(*imx6_pcie), GFP_KERNEL);
|
||||||
if (!imx6_pcie)
|
if (!imx6_pcie)
|
||||||
@ -1071,6 +1073,14 @@ static int imx6_pcie_probe(struct platform_device *pdev)
|
|||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
|
if (pci_msi_enabled()) {
|
||||||
|
val = dw_pcie_readw_dbi(pci, PCIE_RC_IMX6_MSI_CAP +
|
||||||
|
PCI_MSI_FLAGS);
|
||||||
|
val |= PCI_MSI_FLAGS_ENABLE;
|
||||||
|
dw_pcie_writew_dbi(pci, PCIE_RC_IMX6_MSI_CAP + PCI_MSI_FLAGS,
|
||||||
|
val);
|
||||||
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user