diff options
-rw-r--r-- | arch/x86/pci/intel_mid_pci.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/arch/x86/pci/intel_mid_pci.c b/arch/x86/pci/intel_mid_pci.c index 8b93e634af84..ae97f24a4371 100644 --- a/arch/x86/pci/intel_mid_pci.c +++ b/arch/x86/pci/intel_mid_pci.c | |||
@@ -37,6 +37,7 @@ | |||
37 | 37 | ||
38 | /* Quirks for the listed devices */ | 38 | /* Quirks for the listed devices */ |
39 | #define PCI_DEVICE_ID_INTEL_MRFL_MMC 0x1190 | 39 | #define PCI_DEVICE_ID_INTEL_MRFL_MMC 0x1190 |
40 | #define PCI_DEVICE_ID_INTEL_MRFL_HSU 0x1191 | ||
40 | 41 | ||
41 | /* Fixed BAR fields */ | 42 | /* Fixed BAR fields */ |
42 | #define PCIE_VNDR_CAP_ID_FIXED_BAR 0x00 /* Fixed BAR (TBD) */ | 43 | #define PCIE_VNDR_CAP_ID_FIXED_BAR 0x00 /* Fixed BAR (TBD) */ |
@@ -225,13 +226,20 @@ static int intel_mid_pci_irq_enable(struct pci_dev *dev) | |||
225 | /* Special treatment for IRQ0 */ | 226 | /* Special treatment for IRQ0 */ |
226 | if (dev->irq == 0) { | 227 | if (dev->irq == 0) { |
227 | /* | 228 | /* |
229 | * Skip HS UART common registers device since it has | ||
230 | * IRQ0 assigned and not used by the kernel. | ||
231 | */ | ||
232 | if (dev->device == PCI_DEVICE_ID_INTEL_MRFL_HSU) | ||
233 | return -EBUSY; | ||
234 | /* | ||
228 | * TNG has IRQ0 assigned to eMMC controller. But there | 235 | * TNG has IRQ0 assigned to eMMC controller. But there |
229 | * are also other devices with bogus PCI configuration | 236 | * are also other devices with bogus PCI configuration |
230 | * that have IRQ0 assigned. This check ensures that | 237 | * that have IRQ0 assigned. This check ensures that |
231 | * eMMC gets it. | 238 | * eMMC gets it. The rest of devices still could be |
239 | * enabled without interrupt line being allocated. | ||
232 | */ | 240 | */ |
233 | if (dev->device != PCI_DEVICE_ID_INTEL_MRFL_MMC) | 241 | if (dev->device != PCI_DEVICE_ID_INTEL_MRFL_MMC) |
234 | return -EBUSY; | 242 | return 0; |
235 | } | 243 | } |
236 | break; | 244 | break; |
237 | default: | 245 | default: |