diff options
author | Tony Lambiris | 2016-07-05 19:28:38 -0400 |
---|---|---|
committer | Tony Lambiris | 2016-07-05 19:28:38 -0400 |
commit | f9da30a5aa361ec24db25875a9fe254f72d4a9c3 (patch) | |
tree | edfe92cad38d16b18d5296a12365d4ee9703ab2d /macbook-suspend.patch | |
parent | 78a8b2e91463f7e66ad55bcd362ab25728e80b79 (diff) | |
download | aur-f9da30a5aa361ec24db25875a9fe254f72d4a9c3.tar.gz |
Renaming linux-macbook-pro to linux-macbook
Diffstat (limited to 'macbook-suspend.patch')
-rw-r--r-- | macbook-suspend.patch | 107 |
1 files changed, 107 insertions, 0 deletions
diff --git a/macbook-suspend.patch b/macbook-suspend.patch new file mode 100644 index 000000000000..fc302c4b3a2e --- /dev/null +++ b/macbook-suspend.patch @@ -0,0 +1,107 @@ +--- linux_for_test.orig/scripts/mod/modpost.c 2016-04-21 17:01:42.917757676 +0800 ++++ linux_for_test.orig/scripts/mod/modpost.c 2016-05-29 13:32:41.266916072 +0800 +@@ -877,6 +877,7 @@ + + #define ALL_PCI_INIT_SECTIONS \ + ".pci_fixup_early", ".pci_fixup_header", ".pci_fixup_final", \ ++ ".pci_fixup_assign", \ + ".pci_fixup_enable", ".pci_fixup_resume", \ + ".pci_fixup_resume_early", ".pci_fixup_suspend" + +--- linux_for_test.orig/include/asm-generic/vmlinux.lds.h 2016-05-18 13:14:13.970951863 +0800 ++++ linux_for_test.orig/include/asm-generic/vmlinux.lds.h 2016-05-29 13:32:24.870916334 +0800 +@@ -283,6 +283,9 @@ + VMLINUX_SYMBOL(__start_pci_fixups_final) = .; \ + *(.pci_fixup_final) \ + VMLINUX_SYMBOL(__end_pci_fixups_final) = .; \ ++ VMLINUX_SYMBOL(__start_pci_fixups_assign) = .; \ ++ *(.pci_fixup_assign) \ ++ VMLINUX_SYMBOL(__end_pci_fixups_assign) = .; \ + VMLINUX_SYMBOL(__start_pci_fixups_enable) = .; \ + *(.pci_fixup_enable) \ + VMLINUX_SYMBOL(__end_pci_fixups_enable) = .; \ +--- linux_for_test.orig/include/linux/pci.h 2016-05-29 12:51:02.000000000 +0800 ++++ linux_for_test.orig/include/linux/pci.h 2016-05-29 13:39:20.926909684 +0800 +@@ -1584,6 +1584,7 @@ + pci_fixup_early, /* Before probing BARs */ + pci_fixup_header, /* After reading configuration header */ + pci_fixup_final, /* Final phase of device fixups */ ++ pci_fixup_assign, /* Before resource assignment */ + pci_fixup_enable, /* pci_enable_device() time */ + pci_fixup_resume, /* pci_device_resume() */ + pci_fixup_suspend, /* pci_device_suspend() */ +@@ -1644,6 +1645,9 @@ + #define DECLARE_PCI_FIXUP_FINAL(vendor, device, hook) \ + DECLARE_PCI_FIXUP_SECTION(.pci_fixup_final, \ + hook, vendor, device, PCI_ANY_ID, 0, hook) ++#define DECLARE_PCI_FIXUP_ASSIGN(vendor, device, hook) \ ++ DECLARE_PCI_FIXUP_SECTION(.pci_fixup_assign, \ ++ hook, vendor, device, PCI_ANY_ID, 0, hook) + #define DECLARE_PCI_FIXUP_ENABLE(vendor, device, hook) \ + DECLARE_PCI_FIXUP_SECTION(.pci_fixup_enable, \ + hook, vendor, device, PCI_ANY_ID, 0, hook) +--- linux_for_test.orig/drivers/pci/quirks.c 2016-05-27 13:20:01.114516646 +0800 ++++ linux_for_test.orig/drivers/pci/quirks.c 2016-05-29 16:07:58.230767144 +0800 +@@ -3370,6 +3370,8 @@ + extern struct pci_fixup __end_pci_fixups_header[]; + extern struct pci_fixup __start_pci_fixups_final[]; + extern struct pci_fixup __end_pci_fixups_final[]; ++extern struct pci_fixup __start_pci_fixups_assign[]; ++extern struct pci_fixup __end_pci_fixups_assign[]; + extern struct pci_fixup __start_pci_fixups_enable[]; + extern struct pci_fixup __end_pci_fixups_enable[]; + extern struct pci_fixup __start_pci_fixups_resume[]; +@@ -3405,6 +3407,11 @@ + end = __end_pci_fixups_final; + break; + ++ case pci_fixup_assign: ++ start = __start_pci_fixups_assign; ++ end = __end_pci_fixups_assign; ++ break; ++ + case pci_fixup_enable: + start = __start_pci_fixups_enable; + end = __end_pci_fixups_enable; +@@ -4419,3 +4426,30 @@ + } + } + DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x443, quirk_intel_qat_vf_cap); ++ ++static int disable_mode; ++/* On Mac Pro 11, mem allocation broke ACPI Sleep Type register region. */ ++static void quirk_disable_mmio_bar(struct pci_dev *dev) ++{ ++ struct resource *b_res; ++ ++ dev_info(&dev->dev, "[Quirk] Disable mmio regions for Mac Pro 11\n"); ++ if ((dev->class >> 8) != PCI_CLASS_BRIDGE_PCI) ++ return; ++ ++ b_res = &dev->resource[PCI_BRIDGE_RESOURCES]; ++ b_res[1].flags = 0; ++ ++ if (disable_mode & 1) { ++ b_res[2].flags = 0; ++ } ++ ++} ++DECLARE_PCI_FIXUP_ASSIGN(PCI_VENDOR_ID_INTEL, 0x8c10, quirk_disable_mmio_bar); ++ ++static int __init parse_disable_mode(char *str) ++{ ++ get_option(&str, &disable_mode); ++ return 0; ++} ++early_param("disable_mode", parse_disable_mode); +--- linux_for_test.orig/drivers/pci/setup-bus.c 2016-05-29 12:26:08.000000000 +0800 ++++ linux_for_test.orig/drivers/pci/setup-bus.c 2016-05-29 13:58:36.086891219 +0800 +@@ -1256,6 +1256,8 @@ + additional_io_size = pci_hotplug_io_size; + additional_mem_size = pci_hotplug_mem_size; + } ++ ++ pci_fixup_device(pci_fixup_assign, bus->self); + /* Fall through */ + default: + pbus_size_io(bus, realloc_head ? 0 : additional_io_size, |