| From 447d29d1d3aed839e74c2401ef63387780ac51ed Mon Sep 17 00:00:00 2001 |
| From: Lukas Wunner <lukas@wunner.de> |
| Date: Sun, 12 Jun 2016 12:31:53 +0200 |
| Subject: x86/quirks: Apply nvidia_bugs quirk only on root bus |
| |
| From: Lukas Wunner <lukas@wunner.de> |
| |
| commit 447d29d1d3aed839e74c2401ef63387780ac51ed upstream. |
| |
| Since the following commit: |
| |
| 8659c406ade3 ("x86: only scan the root bus in early PCI quirks") |
| |
| ... early quirks are only applied to devices on the root bus. |
| |
| The motivation was to prevent application of the nvidia_bugs quirk on |
| secondary buses. |
| |
| We're about to reintroduce scanning of secondary buses for a quirk to |
| reset the Broadcom 4331 wireless card on 2011/2012 Macs. To prevent |
| regressions, open code the requirement to apply nvidia_bugs only on the |
| root bus. |
| |
| Signed-off-by: Lukas Wunner <lukas@wunner.de> |
| Cc: Andy Lutomirski <luto@kernel.org> |
| Cc: Bjorn Helgaas <bhelgaas@google.com> |
| Cc: Borislav Petkov <bp@alien8.de> |
| Cc: Brian Gerst <brgerst@gmail.com> |
| Cc: Denys Vlasenko <dvlasenk@redhat.com> |
| Cc: H. Peter Anvin <hpa@zytor.com> |
| Cc: Josh Poimboeuf <jpoimboe@redhat.com> |
| Cc: Linus Torvalds <torvalds@linux-foundation.org> |
| Cc: Peter Zijlstra <peterz@infradead.org> |
| Cc: Thomas Gleixner <tglx@linutronix.de> |
| Cc: Yinghai Lu <yinghai@kernel.org> |
| Link: http://lkml.kernel.org/r/4d5477c1d76b2f0387a780f2142bbcdd9fee869b.1465690253.git.lukas@wunner.de |
| Signed-off-by: Ingo Molnar <mingo@kernel.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| arch/x86/kernel/early-quirks.c | 7 +++++++ |
| 1 file changed, 7 insertions(+) |
| |
| --- a/arch/x86/kernel/early-quirks.c |
| +++ b/arch/x86/kernel/early-quirks.c |
| @@ -76,6 +76,13 @@ static void __init nvidia_bugs(int num, |
| #ifdef CONFIG_ACPI |
| #ifdef CONFIG_X86_IO_APIC |
| /* |
| + * Only applies to Nvidia root ports (bus 0) and not to |
| + * Nvidia graphics cards with PCI ports on secondary buses. |
| + */ |
| + if (num) |
| + return; |
| + |
| + /* |
| * All timer overrides on Nvidia are |
| * wrong unless HPET is enabled. |
| * Unfortunately that's not true on many Asus boards. |