+++ /dev/null
-From 1f42db786b14a31bf807fc41ee5583a00c08fcb1 Mon Sep 17 00:00:00 2001
-From: Bjorn Helgaas <bhelgaas@google.com>
-Date: Fri, 14 Feb 2014 13:48:16 -0700
-Subject: PCI: Enable INTx if BIOS left them disabled
-
-From: Bjorn Helgaas <bhelgaas@google.com>
-
-commit 1f42db786b14a31bf807fc41ee5583a00c08fcb1 upstream.
-
-Some firmware leaves the Interrupt Disable bit set even if the device uses
-INTx interrupts. Clear Interrupt Disable so we get those interrupts.
-
-Based on the report mentioned below, if the user selects the "EHCI only"
-option in the Intel Baytrail BIOS, the EHCI device is handed off to the OS
-with the PCI_COMMAND_INTX_DISABLE bit set.
-
-Link: http://lkml.kernel.org/r/20140114181721.GC12126@xanatos
-Link: https://bugzilla.kernel.org/show_bug.cgi?id=70601
-Reported-by: Chris Cheng <chris.cheng@atrustcorp.com>
-Reported-and-tested-by: Jamie Chen <jamie.chen@intel.com>
-Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
-CC: Sarah Sharp <sarah.a.sharp@linux.intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
----
- drivers/pci/pci.c | 10 ++++++++++
- 1 file changed, 10 insertions(+)
-
---- a/drivers/pci/pci.c
-+++ b/drivers/pci/pci.c
-@@ -1133,6 +1133,8 @@ EXPORT_SYMBOL_GPL(pci_load_and_free_save
- static int do_pci_enable_device(struct pci_dev *dev, int bars)
- {
- int err;
-+ u16 cmd;
-+ u8 pin;
-
- err = pci_set_power_state(dev, PCI_D0);
- if (err < 0 && err != -EIO)
-@@ -1142,6 +1144,14 @@ static int do_pci_enable_device(struct p
- return err;
- pci_fixup_device(pci_fixup_enable, dev);
-
-+ pci_read_config_byte(dev, PCI_INTERRUPT_PIN, &pin);
-+ if (pin) {
-+ pci_read_config_word(dev, PCI_COMMAND, &cmd);
-+ if (cmd & PCI_COMMAND_INTX_DISABLE)
-+ pci_write_config_word(dev, PCI_COMMAND,
-+ cmd & ~PCI_COMMAND_INTX_DISABLE);
-+ }
-+
- return 0;
- }
-
+++ /dev/null
-From 41dd03a94c7d408d2ef32530545097f7d1befe5c Mon Sep 17 00:00:00 2001
-From: Tony Breeds <tony@bakeyournoodle.com>
-Date: Thu, 20 Feb 2014 21:13:52 +1100
-Subject: powerpc/le: Ensure that the 'stop-self' RTAS token is handled correctly
-
-From: Tony Breeds <tony@bakeyournoodle.com>
-
-commit 41dd03a94c7d408d2ef32530545097f7d1befe5c upstream.
-
-Currently we're storing a host endian RTAS token in
-rtas_stop_self_args.token. We then pass that directly to rtas. This is
-fine on big endian however on little endian the token is not what we
-expect.
-
-This will typically result in hitting:
- panic("Alas, I survived.\n");
-
-To fix this we always use the stop-self token in host order and always
-convert it to be32 before passing this to rtas.
-
-Signed-off-by: Tony Breeds <tony@bakeyournoodle.com>
-Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
----
- arch/powerpc/platforms/pseries/hotplug-cpu.c | 22 +++++++++++-----------
- 1 file changed, 11 insertions(+), 11 deletions(-)
-
---- a/arch/powerpc/platforms/pseries/hotplug-cpu.c
-+++ b/arch/powerpc/platforms/pseries/hotplug-cpu.c
-@@ -34,12 +34,7 @@
- #include "offline_states.h"
-
- /* This version can't take the spinlock, because it never returns */
--static struct rtas_args rtas_stop_self_args = {
-- .token = RTAS_UNKNOWN_SERVICE,
-- .nargs = 0,
-- .nret = 1,
-- .rets = &rtas_stop_self_args.args[0],
--};
-+static int rtas_stop_self_token = RTAS_UNKNOWN_SERVICE;
-
- static DEFINE_PER_CPU(enum cpu_state_vals, preferred_offline_state) =
- CPU_STATE_OFFLINE;
-@@ -92,15 +87,20 @@ void set_default_offline_state(int cpu)
-
- static void rtas_stop_self(void)
- {
-- struct rtas_args *args = &rtas_stop_self_args;
-+ struct rtas_args args = {
-+ .token = cpu_to_be32(rtas_stop_self_token),
-+ .nargs = 0,
-+ .nret = 1,
-+ .rets = &args.args[0],
-+ };
-
- local_irq_disable();
-
-- BUG_ON(args->token == RTAS_UNKNOWN_SERVICE);
-+ BUG_ON(rtas_stop_self_token == RTAS_UNKNOWN_SERVICE);
-
- printk("cpu %u (hwid %u) Ready to die...\n",
- smp_processor_id(), hard_smp_processor_id());
-- enter_rtas(__pa(args));
-+ enter_rtas(__pa(&args));
-
- panic("Alas, I survived.\n");
- }
-@@ -383,10 +383,10 @@ static int __init pseries_cpu_hotplug_in
- }
- }
-
-- rtas_stop_self_args.token = rtas_token("stop-self");
-+ rtas_stop_self_token = rtas_token("stop-self");
- qcss_tok = rtas_token("query-cpu-stopped-state");
-
-- if (rtas_stop_self_args.token == RTAS_UNKNOWN_SERVICE ||
-+ if (rtas_stop_self_token == RTAS_UNKNOWN_SERVICE ||
- qcss_tok == RTAS_UNKNOWN_SERVICE) {
- printk(KERN_INFO "CPU Hotplug not supported by firmware "
- "- disabling.\n");
asoc-sta32x-fix-array-access-overflow.patch
asoc-wm8958-dsp-fix-firmware-block-loading.patch
sunrpc-fix-races-in-xs_nospace.patch
-powerpc-le-ensure-that-the-stop-self-rtas-token-is-handled-correctly.patch
powerpc-crashdump-fix-page-frame-number-check-in-copy_oldmem_page.patch
perf-x86-fix-event-scheduling.patch
ata-enable-quirk-from-jmicron-jmb350-for-jmb394.patch
sata_sil-apply-mod15write-quirk-to-toshiba-mk2561gsyn.patch
-pci-enable-intx-if-bios-left-them-disabled.patch
i7core_edac-fix-pci-device-reference-count.patch
acpi-video-filter-the-_bcl-table-for-duplicate-brightness-values.patch
acpi-processor-rework-processor-throttling-with-work_on_cpu.patch