diff options
| -rw-r--r-- | drivers/pci/controller/dwc/pci-imx6.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/pci/controller/dwc/pci-imx6.c b/drivers/pci/controller/dwc/pci-imx6.c index 25a2b7683e55..03107cc25dfc 100644 --- a/drivers/pci/controller/dwc/pci-imx6.c +++ b/drivers/pci/controller/dwc/pci-imx6.c | |||
| @@ -74,6 +74,7 @@ struct imx6_pcie { | |||
| 74 | #define PHY_PLL_LOCK_WAIT_USLEEP_MAX 200 | 74 | #define PHY_PLL_LOCK_WAIT_USLEEP_MAX 200 |
| 75 | 75 | ||
| 76 | /* PCIe Root Complex registers (memory-mapped) */ | 76 | /* PCIe Root Complex registers (memory-mapped) */ |
| 77 | #define PCIE_RC_IMX6_MSI_CAP 0x50 | ||
| 77 | #define PCIE_RC_LCR 0x7c | 78 | #define PCIE_RC_LCR 0x7c |
| 78 | #define PCIE_RC_LCR_MAX_LINK_SPEEDS_GEN1 0x1 | 79 | #define PCIE_RC_LCR_MAX_LINK_SPEEDS_GEN1 0x1 |
| 79 | #define PCIE_RC_LCR_MAX_LINK_SPEEDS_GEN2 0x2 | 80 | #define PCIE_RC_LCR_MAX_LINK_SPEEDS_GEN2 0x2 |
| @@ -926,6 +927,7 @@ static int imx6_pcie_probe(struct platform_device *pdev) | |||
| 926 | struct resource *dbi_base; | 927 | struct resource *dbi_base; |
| 927 | struct device_node *node = dev->of_node; | 928 | struct device_node *node = dev->of_node; |
| 928 | int ret; | 929 | int ret; |
| 930 | u16 val; | ||
| 929 | 931 | ||
| 930 | imx6_pcie = devm_kzalloc(dev, sizeof(*imx6_pcie), GFP_KERNEL); | 932 | imx6_pcie = devm_kzalloc(dev, sizeof(*imx6_pcie), GFP_KERNEL); |
| 931 | if (!imx6_pcie) | 933 | if (!imx6_pcie) |
| @@ -1071,6 +1073,14 @@ static int imx6_pcie_probe(struct platform_device *pdev) | |||
| 1071 | if (ret < 0) | 1073 | if (ret < 0) |
| 1072 | return ret; | 1074 | return ret; |
| 1073 | 1075 | ||
| 1076 | if (pci_msi_enabled()) { | ||
| 1077 | val = dw_pcie_readw_dbi(pci, PCIE_RC_IMX6_MSI_CAP + | ||
| 1078 | PCI_MSI_FLAGS); | ||
| 1079 | val |= PCI_MSI_FLAGS_ENABLE; | ||
| 1080 | dw_pcie_writew_dbi(pci, PCIE_RC_IMX6_MSI_CAP + PCI_MSI_FLAGS, | ||
| 1081 | val); | ||
| 1082 | } | ||
| 1083 | |||
| 1074 | return 0; | 1084 | return 0; |
| 1075 | } | 1085 | } |
| 1076 | 1086 | ||
