aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/x86/pci/intel_mid_pci.c12
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: