diff options
| -rw-r--r-- | arch/x86/kernel/early-quirks.c | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/arch/x86/kernel/early-quirks.c b/arch/x86/kernel/early-quirks.c index bc4a088f9023..6d7d5a1260a6 100644 --- a/arch/x86/kernel/early-quirks.c +++ b/arch/x86/kernel/early-quirks.c | |||
| @@ -203,18 +203,15 @@ static void __init intel_remapping_check(int num, int slot, int func) | |||
| 203 | revision = read_pci_config_byte(num, slot, func, PCI_REVISION_ID); | 203 | revision = read_pci_config_byte(num, slot, func, PCI_REVISION_ID); |
| 204 | 204 | ||
| 205 | /* | 205 | /* |
| 206 | * Revision 13 of all triggering devices id in this quirk have | 206 | * Revision <= 13 of all triggering devices id in this quirk |
| 207 | * a problem draining interrupts when irq remapping is enabled, | 207 | * have a problem draining interrupts when irq remapping is |
| 208 | * and should be flagged as broken. Additionally revisions 0x12 | 208 | * enabled, and should be flagged as broken. Additionally |
| 209 | * and 0x22 of device id 0x3405 has this problem. | 209 | * revision 0x22 of device id 0x3405 has this problem. |
| 210 | */ | 210 | */ |
| 211 | if (revision == 0x13) | 211 | if (revision <= 0x13) |
| 212 | set_irq_remapping_broken(); | 212 | set_irq_remapping_broken(); |
| 213 | else if ((device == 0x3405) && | 213 | else if (device == 0x3405 && revision == 0x22) |
| 214 | ((revision == 0x12) || | ||
| 215 | (revision == 0x22))) | ||
| 216 | set_irq_remapping_broken(); | 214 | set_irq_remapping_broken(); |
| 217 | |||
| 218 | } | 215 | } |
| 219 | 216 | ||
| 220 | /* | 217 | /* |
