diff options
-rw-r--r-- | drivers/pci/host/pci-imx6.c | 13 | ||||
-rw-r--r-- | drivers/pci/hotplug/pciehp_core.c | 7 | ||||
-rw-r--r-- | drivers/pci/pci-sysfs.c | 8 |
3 files changed, 14 insertions, 14 deletions
diff --git a/drivers/pci/host/pci-imx6.c b/drivers/pci/host/pci-imx6.c index 233fe8a88264..69202d1eb8fb 100644 --- a/drivers/pci/host/pci-imx6.c +++ b/drivers/pci/host/pci-imx6.c | |||
@@ -275,15 +275,22 @@ static int imx6_pcie_deassert_core_reset(struct pcie_port *pp) | |||
275 | goto err_pcie; | 275 | goto err_pcie; |
276 | } | 276 | } |
277 | 277 | ||
278 | /* allow the clocks to stabilize */ | ||
279 | usleep_range(200, 500); | ||
280 | |||
281 | /* power up core phy and enable ref clock */ | 278 | /* power up core phy and enable ref clock */ |
282 | regmap_update_bits(imx6_pcie->iomuxc_gpr, IOMUXC_GPR1, | 279 | regmap_update_bits(imx6_pcie->iomuxc_gpr, IOMUXC_GPR1, |
283 | IMX6Q_GPR1_PCIE_TEST_PD, 0 << 18); | 280 | IMX6Q_GPR1_PCIE_TEST_PD, 0 << 18); |
281 | /* | ||
282 | * the async reset input need ref clock to sync internally, | ||
283 | * when the ref clock comes after reset, internal synced | ||
284 | * reset time is too short, cannot meet the requirement. | ||
285 | * add one ~10us delay here. | ||
286 | */ | ||
287 | udelay(10); | ||
284 | regmap_update_bits(imx6_pcie->iomuxc_gpr, IOMUXC_GPR1, | 288 | regmap_update_bits(imx6_pcie->iomuxc_gpr, IOMUXC_GPR1, |
285 | IMX6Q_GPR1_PCIE_REF_CLK_EN, 1 << 16); | 289 | IMX6Q_GPR1_PCIE_REF_CLK_EN, 1 << 16); |
286 | 290 | ||
291 | /* allow the clocks to stabilize */ | ||
292 | usleep_range(200, 500); | ||
293 | |||
287 | /* Some boards don't have PCIe reset GPIO. */ | 294 | /* Some boards don't have PCIe reset GPIO. */ |
288 | if (gpio_is_valid(imx6_pcie->reset_gpio)) { | 295 | if (gpio_is_valid(imx6_pcie->reset_gpio)) { |
289 | gpio_set_value(imx6_pcie->reset_gpio, 0); | 296 | gpio_set_value(imx6_pcie->reset_gpio, 0); |
diff --git a/drivers/pci/hotplug/pciehp_core.c b/drivers/pci/hotplug/pciehp_core.c index 3a5e7e28b874..07aa722bb12c 100644 --- a/drivers/pci/hotplug/pciehp_core.c +++ b/drivers/pci/hotplug/pciehp_core.c | |||
@@ -262,13 +262,6 @@ static int pciehp_probe(struct pcie_device *dev) | |||
262 | goto err_out_none; | 262 | goto err_out_none; |
263 | } | 263 | } |
264 | 264 | ||
265 | if (!dev->port->subordinate) { | ||
266 | /* Can happen if we run out of bus numbers during probe */ | ||
267 | dev_err(&dev->device, | ||
268 | "Hotplug bridge without secondary bus, ignoring\n"); | ||
269 | goto err_out_none; | ||
270 | } | ||
271 | |||
272 | ctrl = pcie_init(dev); | 265 | ctrl = pcie_init(dev); |
273 | if (!ctrl) { | 266 | if (!ctrl) { |
274 | dev_err(&dev->device, "Controller initialization failed\n"); | 267 | dev_err(&dev->device, "Controller initialization failed\n"); |
diff --git a/drivers/pci/pci-sysfs.c b/drivers/pci/pci-sysfs.c index 92b6d9ab00e4..2c6643fdc0cf 100644 --- a/drivers/pci/pci-sysfs.c +++ b/drivers/pci/pci-sysfs.c | |||
@@ -185,7 +185,7 @@ static ssize_t modalias_show(struct device *dev, struct device_attribute *attr, | |||
185 | } | 185 | } |
186 | static DEVICE_ATTR_RO(modalias); | 186 | static DEVICE_ATTR_RO(modalias); |
187 | 187 | ||
188 | static ssize_t enabled_store(struct device *dev, struct device_attribute *attr, | 188 | static ssize_t enable_store(struct device *dev, struct device_attribute *attr, |
189 | const char *buf, size_t count) | 189 | const char *buf, size_t count) |
190 | { | 190 | { |
191 | struct pci_dev *pdev = to_pci_dev(dev); | 191 | struct pci_dev *pdev = to_pci_dev(dev); |
@@ -210,7 +210,7 @@ static ssize_t enabled_store(struct device *dev, struct device_attribute *attr, | |||
210 | return result < 0 ? result : count; | 210 | return result < 0 ? result : count; |
211 | } | 211 | } |
212 | 212 | ||
213 | static ssize_t enabled_show(struct device *dev, struct device_attribute *attr, | 213 | static ssize_t enable_show(struct device *dev, struct device_attribute *attr, |
214 | char *buf) | 214 | char *buf) |
215 | { | 215 | { |
216 | struct pci_dev *pdev; | 216 | struct pci_dev *pdev; |
@@ -218,7 +218,7 @@ static ssize_t enabled_show(struct device *dev, struct device_attribute *attr, | |||
218 | pdev = to_pci_dev(dev); | 218 | pdev = to_pci_dev(dev); |
219 | return sprintf(buf, "%u\n", atomic_read(&pdev->enable_cnt)); | 219 | return sprintf(buf, "%u\n", atomic_read(&pdev->enable_cnt)); |
220 | } | 220 | } |
221 | static DEVICE_ATTR_RW(enabled); | 221 | static DEVICE_ATTR_RW(enable); |
222 | 222 | ||
223 | #ifdef CONFIG_NUMA | 223 | #ifdef CONFIG_NUMA |
224 | static ssize_t numa_node_show(struct device *dev, struct device_attribute *attr, | 224 | static ssize_t numa_node_show(struct device *dev, struct device_attribute *attr, |
@@ -563,7 +563,7 @@ static struct attribute *pci_dev_attrs[] = { | |||
563 | #endif | 563 | #endif |
564 | &dev_attr_dma_mask_bits.attr, | 564 | &dev_attr_dma_mask_bits.attr, |
565 | &dev_attr_consistent_dma_mask_bits.attr, | 565 | &dev_attr_consistent_dma_mask_bits.attr, |
566 | &dev_attr_enabled.attr, | 566 | &dev_attr_enable.attr, |
567 | &dev_attr_broken_parity_status.attr, | 567 | &dev_attr_broken_parity_status.attr, |
568 | &dev_attr_msi_bus.attr, | 568 | &dev_attr_msi_bus.attr, |
569 | #if defined(CONFIG_PM_RUNTIME) && defined(CONFIG_ACPI) | 569 | #if defined(CONFIG_PM_RUNTIME) && defined(CONFIG_ACPI) |