--- /dev/null
+From 1b071a0947dbce5c184c12262e02540fbc493457 Mon Sep 17 00:00:00 2001
+From: James Ralston <james.d.ralston@intel.com>
+Date: Wed, 27 Aug 2014 14:29:07 -0700
+Subject: ahci: Add Device IDs for Intel 9 Series PCH
+
+From: James Ralston <james.d.ralston@intel.com>
+
+commit 1b071a0947dbce5c184c12262e02540fbc493457 upstream.
+
+This patch adds the AHCI mode SATA Device IDs for the Intel 9 Series PCH.
+
+Signed-off-by: James Ralston <james.d.ralston@intel.com>
+Signed-off-by: Tejun Heo <tj@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/ata/ahci.c | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+--- a/drivers/ata/ahci.c
++++ b/drivers/ata/ahci.c
+@@ -305,6 +305,14 @@ static const struct pci_device_id ahci_p
+ { PCI_VDEVICE(INTEL, 0x9c85), board_ahci }, /* Wildcat Point-LP RAID */
+ { PCI_VDEVICE(INTEL, 0x9c87), board_ahci }, /* Wildcat Point-LP RAID */
+ { PCI_VDEVICE(INTEL, 0x9c8f), board_ahci }, /* Wildcat Point-LP RAID */
++ { PCI_VDEVICE(INTEL, 0x8c82), board_ahci }, /* 9 Series AHCI */
++ { PCI_VDEVICE(INTEL, 0x8c83), board_ahci }, /* 9 Series AHCI */
++ { PCI_VDEVICE(INTEL, 0x8c84), board_ahci }, /* 9 Series RAID */
++ { PCI_VDEVICE(INTEL, 0x8c85), board_ahci }, /* 9 Series RAID */
++ { PCI_VDEVICE(INTEL, 0x8c86), board_ahci }, /* 9 Series RAID */
++ { PCI_VDEVICE(INTEL, 0x8c87), board_ahci }, /* 9 Series RAID */
++ { PCI_VDEVICE(INTEL, 0x8c8e), board_ahci }, /* 9 Series RAID */
++ { PCI_VDEVICE(INTEL, 0x8c8f), board_ahci }, /* 9 Series RAID */
+
+ /* JMicron 360/1/3/5/6, match class to avoid IDE function */
+ { PCI_VENDOR_ID_JMICRON, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID,
--- /dev/null
+From c5edfff9db6f4d2c35c802acb4abe0df178becee Mon Sep 17 00:00:00 2001
+From: Murali Karicheri <m-karicheri2@ti.com>
+Date: Fri, 5 Sep 2014 13:21:00 -0400
+Subject: ahci: add pcid for Marvel 0x9182 controller
+
+From: Murali Karicheri <m-karicheri2@ti.com>
+
+commit c5edfff9db6f4d2c35c802acb4abe0df178becee upstream.
+
+Keystone K2E EVM uses Marvel 0x9182 controller. This requires support
+for the ID in the ahci driver.
+
+Signed-off-by: Murali Karicheri <m-karicheri2@ti.com>
+Signed-off-by: Tejun Heo <tj@kernel.org>
+Cc: Santosh Shilimkar <santosh.shilimkar@ti.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/ata/ahci.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/drivers/ata/ahci.c
++++ b/drivers/ata/ahci.c
+@@ -450,6 +450,8 @@ static const struct pci_device_id ahci_p
+ { PCI_DEVICE(PCI_VENDOR_ID_MARVELL_EXT, 0x917a),
+ .driver_data = board_ahci_yes_fbs }, /* 88se9172 */
+ { PCI_DEVICE(PCI_VENDOR_ID_MARVELL_EXT, 0x9172),
++ .driver_data = board_ahci_yes_fbs }, /* 88se9182 */
++ { PCI_DEVICE(PCI_VENDOR_ID_MARVELL_EXT, 0x9182),
+ .driver_data = board_ahci_yes_fbs }, /* 88se9172 */
+ { PCI_DEVICE(PCI_VENDOR_ID_MARVELL_EXT, 0x9192),
+ .driver_data = board_ahci_yes_fbs }, /* 88se9172 on some Gigabyte */
--- /dev/null
+From 2a92d5bca1999b69c78f3c3e97b5484985b094b9 Mon Sep 17 00:00:00 2001
+From: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Tue, 8 Jul 2014 10:40:29 +0100
+Subject: drm/i915: Disable RCS flips on Ivybridge
+
+From: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 2a92d5bca1999b69c78f3c3e97b5484985b094b9 upstream.
+
+We currently see random GPU hangs when using RCS flips with multiple
+pipes on Ivybridge. Now that we have mmio flips, we can fairly cheaply
+fallback to using CPU driven flips instead.
+
+Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=77104
+Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/gpu/drm/i915/intel_display.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/drivers/gpu/drm/i915/intel_display.c
++++ b/drivers/gpu/drm/i915/intel_display.c
+@@ -9294,6 +9294,8 @@ static int intel_crtc_page_flip(struct d
+
+ if (IS_VALLEYVIEW(dev)) {
+ ring = &dev_priv->ring[BCS];
++ } else if (IS_IVYBRIDGE(dev)) {
++ ring = &dev_priv->ring[BCS];
+ } else if (INTEL_INFO(dev)->gen >= 7) {
+ ring = obj->ring;
+ if (ring == NULL || ring->id != RCS)
--- /dev/null
+From 2a13772a144d2956a7fedd18685921d0a9b8b783 Mon Sep 17 00:00:00 2001
+From: Tejun Heo <tj@kernel.org>
+Date: Mon, 18 Aug 2014 17:40:09 -0400
+Subject: libata: widen Crucial M550 blacklist matching
+
+From: Tejun Heo <tj@kernel.org>
+
+commit 2a13772a144d2956a7fedd18685921d0a9b8b783 upstream.
+
+Crucial M550 may cause data corruption on queued trims and is
+blacklisted. The pattern used for it fails to match 1TB one as the
+capacity section will be four chars instead of three. Widen the
+pattern.
+
+Signed-off-by: Tejun Heo <tj@kernel.org>
+Reported-by: Charles Reiss <woggling@gmail.com>
+Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=81071
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/ata/libata-core.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/ata/libata-core.c
++++ b/drivers/ata/libata-core.c
+@@ -4227,7 +4227,7 @@ static const struct ata_blacklist_entry
+ { "Micron_M500*", NULL, ATA_HORKAGE_NO_NCQ_TRIM, },
+ { "Crucial_CT???M500SSD*", NULL, ATA_HORKAGE_NO_NCQ_TRIM, },
+ { "Micron_M550*", NULL, ATA_HORKAGE_NO_NCQ_TRIM, },
+- { "Crucial_CT???M550SSD*", NULL, ATA_HORKAGE_NO_NCQ_TRIM, },
++ { "Crucial_CT*M550SSD*", NULL, ATA_HORKAGE_NO_NCQ_TRIM, },
+
+ /*
+ * Some WD SATA-I drives spin up and down erratically when the link
--- /dev/null
+From b5f2a8c02697c3685ccbbb66495465742ffa0dc1 Mon Sep 17 00:00:00 2001
+From: Al Cooper <alcooperx@gmail.com>
+Date: Wed, 6 Aug 2014 16:30:04 -0400
+Subject: of: Allow mem_reserve of memory with a base address of zero
+
+From: Al Cooper <alcooperx@gmail.com>
+
+commit b5f2a8c02697c3685ccbbb66495465742ffa0dc1 upstream.
+
+__reserved_mem_reserve_reg() won't reserve memory if the base address
+is zero. This change removes the check for a base address of zero and
+allows it to be reserved.
+
+Allowing the first 4K of memory to be reserved will help solve a
+problem on some ARM systems where the the first 16K of memory is
+unused and becomes allocable memory. This will prevent this memory
+from being used for DMA by drivers like the USB OHCI driver which
+consider a physical address of zero to be illegal.
+
+Signed-off-by: Al Cooper <alcooperx@gmail.com>
+Signed-off-by: Grant Likely <grant.likely@linaro.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/of/fdt.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/of/fdt.c
++++ b/drivers/of/fdt.c
+@@ -453,7 +453,7 @@ static int __init __reserved_mem_reserve
+ base = dt_mem_next_cell(dt_root_addr_cells, &prop);
+ size = dt_mem_next_cell(dt_root_size_cells, &prop);
+
+- if (base && size &&
++ if (size &&
+ early_init_dt_reserve_memory_arch(base, size, nomap) == 0)
+ pr_debug("Reserved memory: reserved region for node '%s': base %pa, size %ld MiB\n",
+ uname, &base, (unsigned long)size / SZ_1M);
--- /dev/null
+From a9ecdc0fdc54aa499604dbd43132988effcac9b4 Mon Sep 17 00:00:00 2001
+From: Florian Fainelli <f.fainelli@gmail.com>
+Date: Wed, 6 Aug 2014 13:02:27 -0700
+Subject: of/irq: Fix lookup to use 'interrupts-extended' property first
+
+From: Florian Fainelli <f.fainelli@gmail.com>
+
+commit a9ecdc0fdc54aa499604dbd43132988effcac9b4 upstream.
+
+In case the Device Tree blob passed by the boot agent supplies both an
+'interrupts-extended' and an 'interrupts' property in order to allow for
+older kernels to be usable, prefer the new-style 'interrupts-extended'
+property which conveys a lot more information.
+
+This allows us to have bootloaders willingly maintaining backwards
+compatibility with older kernels without entirely deprecating the
+'interrupts' property.
+
+Update the bindings documentation to describe a situation where both the
+'interrupts-extended' and the 'interrupts' property are present, and
+which one takes precedence over the other.
+
+Acked-by: Rob Herring <robh@kernel.org>
+Signed-off-by: Brian Norris <computersforpeace@gmail.com>
+Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
+Signed-off-by: Grant Likely <grant.likely@linaro.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ Documentation/devicetree/bindings/interrupt-controller/interrupts.txt | 12 ++++---
+ drivers/of/irq.c | 17 +++++-----
+ 2 files changed, 16 insertions(+), 13 deletions(-)
+
+--- a/Documentation/devicetree/bindings/interrupt-controller/interrupts.txt
++++ b/Documentation/devicetree/bindings/interrupt-controller/interrupts.txt
+@@ -4,11 +4,13 @@ Specifying interrupt information for dev
+ 1) Interrupt client nodes
+ -------------------------
+
+-Nodes that describe devices which generate interrupts must contain an either an
+-"interrupts" property or an "interrupts-extended" property. These properties
+-contain a list of interrupt specifiers, one per output interrupt. The format of
+-the interrupt specifier is determined by the interrupt controller to which the
+-interrupts are routed; see section 2 below for details.
++Nodes that describe devices which generate interrupts must contain an
++"interrupts" property, an "interrupts-extended" property, or both. If both are
++present, the latter should take precedence; the former may be provided simply
++for compatibility with software that does not recognize the latter. These
++properties contain a list of interrupt specifiers, one per output interrupt. The
++format of the interrupt specifier is determined by the interrupt controller to
++which the interrupts are routed; see section 2 below for details.
+
+ Example:
+ interrupt-parent = <&intc1>;
+--- a/drivers/of/irq.c
++++ b/drivers/of/irq.c
+@@ -301,16 +301,17 @@ int of_irq_parse_one(struct device_node
+ /* Get the reg property (if any) */
+ addr = of_get_property(device, "reg", NULL);
+
++ /* Try the new-style interrupts-extended first */
++ res = of_parse_phandle_with_args(device, "interrupts-extended",
++ "#interrupt-cells", index, out_irq);
++ if (!res)
++ return of_irq_parse_raw(addr, out_irq);
++
+ /* Get the interrupts property */
+ intspec = of_get_property(device, "interrupts", &intlen);
+- if (intspec == NULL) {
+- /* Try the new-style interrupts-extended */
+- res = of_parse_phandle_with_args(device, "interrupts-extended",
+- "#interrupt-cells", index, out_irq);
+- if (res)
+- return -EINVAL;
+- return of_irq_parse_raw(addr, out_irq);
+- }
++ if (intspec == NULL)
++ return -EINVAL;
++
+ intlen /= sizeof(*intspec);
+
+ pr_debug(" intspec=%d intlen=%d\n", be32_to_cpup(intspec), intlen);
--- /dev/null
+From 4dc7c76cd500fa78c64adfda4b070b870a2b993c Mon Sep 17 00:00:00 2001
+From: Arjun Sreedharan <arjun024@gmail.com>
+Date: Sun, 17 Aug 2014 20:00:09 +0530
+Subject: pata_scc: propagate return value of scc_wait_after_reset
+
+From: Arjun Sreedharan <arjun024@gmail.com>
+
+commit 4dc7c76cd500fa78c64adfda4b070b870a2b993c upstream.
+
+scc_bus_softreset not necessarily should return zero.
+Propagate the error code.
+
+Signed-off-by: Arjun Sreedharan <arjun024@gmail.com>
+Signed-off-by: Tejun Heo <tj@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/ata/pata_scc.c | 15 +++++++--------
+ 1 file changed, 7 insertions(+), 8 deletions(-)
+
+--- a/drivers/ata/pata_scc.c
++++ b/drivers/ata/pata_scc.c
+@@ -585,7 +585,7 @@ static int scc_wait_after_reset(struct a
+ * Note: Original code is ata_bus_softreset().
+ */
+
+-static unsigned int scc_bus_softreset(struct ata_port *ap, unsigned int devmask,
++static int scc_bus_softreset(struct ata_port *ap, unsigned int devmask,
+ unsigned long deadline)
+ {
+ struct ata_ioports *ioaddr = &ap->ioaddr;
+@@ -599,9 +599,7 @@ static unsigned int scc_bus_softreset(st
+ udelay(20);
+ out_be32(ioaddr->ctl_addr, ap->ctl);
+
+- scc_wait_after_reset(&ap->link, devmask, deadline);
+-
+- return 0;
++ return scc_wait_after_reset(&ap->link, devmask, deadline);
+ }
+
+ /**
+@@ -618,7 +616,8 @@ static int scc_softreset(struct ata_link
+ {
+ struct ata_port *ap = link->ap;
+ unsigned int slave_possible = ap->flags & ATA_FLAG_SLAVE_POSS;
+- unsigned int devmask = 0, err_mask;
++ unsigned int devmask = 0;
++ int rc;
+ u8 err;
+
+ DPRINTK("ENTER\n");
+@@ -634,9 +633,9 @@ static int scc_softreset(struct ata_link
+
+ /* issue bus reset */
+ DPRINTK("about to softreset, devmask=%x\n", devmask);
+- err_mask = scc_bus_softreset(ap, devmask, deadline);
+- if (err_mask) {
+- ata_port_err(ap, "SRST failed (err_mask=0x%x)\n", err_mask);
++ rc = scc_bus_softreset(ap, devmask, deadline);
++ if (rc) {
++ ata_port_err(ap, "SRST failed (err_mask=0x%x)\n", rc);
+ return -EIO;
+ }
+
--- /dev/null
+From d717ea73e36dd5659640fae82605ad85c4117f4d Mon Sep 17 00:00:00 2001
+From: Geert Uytterhoeven <geert+renesas@glider.be>
+Date: Wed, 13 Aug 2014 17:18:53 +0200
+Subject: pwm: Fix period and polarity in pwm_get() for non-perfect matches
+
+From: Geert Uytterhoeven <geert+renesas@glider.be>
+
+commit d717ea73e36dd5659640fae82605ad85c4117f4d upstream.
+
+If pwm_get() finds a look-up entry with a perfect match (both dev_id and
+con_id match), the loop is aborted, and "p" still points to the correct
+struct pwm_lookup.
+
+If only an entry with a matching dev_id or con_id is found, the loop
+terminates after traversing the whole list, and "p" now points to
+arbitrary memory, not part of the pwm_lookup list.
+Then pwm_set_period() and pwm_set_polarity() will set random values for
+period resp. polarity.
+
+To fix this, save period and polarity when finding a new best match,
+just like is done for chip (for the provider) and index.
+
+This fixes the LCD backlight on r8a7740/armadillo-legacy, which was fed
+period 0 and polarity -1068821144 instead of 33333 resp. 1.
+
+Fixes: 3796ce1d4d4b ("pwm: add period and polarity to struct pwm_lookup")
+Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
+Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/pwm/core.c | 8 ++++++--
+ 1 file changed, 6 insertions(+), 2 deletions(-)
+
+--- a/drivers/pwm/core.c
++++ b/drivers/pwm/core.c
+@@ -606,6 +606,8 @@ struct pwm_device *pwm_get(struct device
+ unsigned int best = 0;
+ struct pwm_lookup *p;
+ unsigned int match;
++ unsigned int period;
++ enum pwm_polarity polarity;
+
+ /* look up via DT first */
+ if (IS_ENABLED(CONFIG_OF) && dev && dev->of_node)
+@@ -653,6 +655,8 @@ struct pwm_device *pwm_get(struct device
+ if (match > best) {
+ chip = pwmchip_find_by_name(p->provider);
+ index = p->index;
++ period = p->period;
++ polarity = p->polarity;
+
+ if (match != 3)
+ best = match;
+@@ -668,8 +672,8 @@ struct pwm_device *pwm_get(struct device
+ if (IS_ERR(pwm))
+ return pwm;
+
+- pwm_set_period(pwm, p->period);
+- pwm_set_polarity(pwm, p->polarity);
++ pwm_set_period(pwm, period);
++ pwm_set_polarity(pwm, polarity);
+
+
+ return pwm;
drm-radeon-tweak-accel_working2-query-for-hawaii.patch
drm-i915-fix-crash-when-failing-to-parse-mipi-vbt.patch
drm-i915-read-head-register-back-in-init_ring_common-to-enforce-ordering.patch
+drm-i915-disable-rcs-flips-on-ivybridge.patch
+of-allow-mem_reserve-of-memory-with-a-base-address-of-zero.patch
+of-irq-fix-lookup-to-use-interrupts-extended-property-first.patch
+libata-widen-crucial-m550-blacklist-matching.patch
+pata_scc-propagate-return-value-of-scc_wait_after_reset.patch
+ahci-add-device-ids-for-intel-9-series-pch.patch
+ahci-add-pcid-for-marvel-0x9182-controller.patch
+pwm-fix-period-and-polarity-in-pwm_get-for-non-perfect-matches.patch