From 474c741cc49827b4de58fa85183c80b98c0f3877 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Sat, 20 Sep 2014 10:48:47 -0700 Subject: [PATCH] 3.14-stable patches added patches: ahci-add-device-ids-for-intel-9-series-pch.patch ahci-add-pcid-for-marvel-0x9182-controller.patch libata-widen-crucial-m550-blacklist-matching.patch of-irq-fix-lookup-to-use-interrupts-extended-property-first.patch pata_scc-propagate-return-value-of-scc_wait_after_reset.patch --- ...dd-device-ids-for-intel-9-series-pch.patch | 36 ++++++++ ...dd-pcid-for-marvel-0x9182-controller.patch | 32 ++++++++ ...iden-crucial-m550-blacklist-matching.patch | 34 ++++++++ ...e-interrupts-extended-property-first.patch | 82 +++++++++++++++++++ ...return-value-of-scc_wait_after_reset.patch | 65 +++++++++++++++ queue-3.14/series | 5 ++ 6 files changed, 254 insertions(+) create mode 100644 queue-3.14/ahci-add-device-ids-for-intel-9-series-pch.patch create mode 100644 queue-3.14/ahci-add-pcid-for-marvel-0x9182-controller.patch create mode 100644 queue-3.14/libata-widen-crucial-m550-blacklist-matching.patch create mode 100644 queue-3.14/of-irq-fix-lookup-to-use-interrupts-extended-property-first.patch create mode 100644 queue-3.14/pata_scc-propagate-return-value-of-scc_wait_after_reset.patch diff --git a/queue-3.14/ahci-add-device-ids-for-intel-9-series-pch.patch b/queue-3.14/ahci-add-device-ids-for-intel-9-series-pch.patch new file mode 100644 index 00000000000..bd133d6dfe7 --- /dev/null +++ b/queue-3.14/ahci-add-device-ids-for-intel-9-series-pch.patch @@ -0,0 +1,36 @@ +From 1b071a0947dbce5c184c12262e02540fbc493457 Mon Sep 17 00:00:00 2001 +From: James Ralston +Date: Wed, 27 Aug 2014 14:29:07 -0700 +Subject: ahci: Add Device IDs for Intel 9 Series PCH + +From: James Ralston + +commit 1b071a0947dbce5c184c12262e02540fbc493457 upstream. + +This patch adds the AHCI mode SATA Device IDs for the Intel 9 Series PCH. + +Signed-off-by: James Ralston +Signed-off-by: Tejun Heo +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/ata/ahci.c | 8 ++++++++ + 1 file changed, 8 insertions(+) + +--- a/drivers/ata/ahci.c ++++ b/drivers/ata/ahci.c +@@ -306,6 +306,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, diff --git a/queue-3.14/ahci-add-pcid-for-marvel-0x9182-controller.patch b/queue-3.14/ahci-add-pcid-for-marvel-0x9182-controller.patch new file mode 100644 index 00000000000..6634b9dde00 --- /dev/null +++ b/queue-3.14/ahci-add-pcid-for-marvel-0x9182-controller.patch @@ -0,0 +1,32 @@ +From c5edfff9db6f4d2c35c802acb4abe0df178becee Mon Sep 17 00:00:00 2001 +From: Murali Karicheri +Date: Fri, 5 Sep 2014 13:21:00 -0400 +Subject: ahci: add pcid for Marvel 0x9182 controller + +From: Murali Karicheri + +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 +Signed-off-by: Tejun Heo +Cc: Santosh Shilimkar +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/ata/ahci.c | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/drivers/ata/ahci.c ++++ b/drivers/ata/ahci.c +@@ -451,6 +451,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 */ diff --git a/queue-3.14/libata-widen-crucial-m550-blacklist-matching.patch b/queue-3.14/libata-widen-crucial-m550-blacklist-matching.patch new file mode 100644 index 00000000000..f19e8a805fd --- /dev/null +++ b/queue-3.14/libata-widen-crucial-m550-blacklist-matching.patch @@ -0,0 +1,34 @@ +From 2a13772a144d2956a7fedd18685921d0a9b8b783 Mon Sep 17 00:00:00 2001 +From: Tejun Heo +Date: Mon, 18 Aug 2014 17:40:09 -0400 +Subject: libata: widen Crucial M550 blacklist matching + +From: Tejun Heo + +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 +Reported-by: Charles Reiss +Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=81071 +Signed-off-by: Greg Kroah-Hartman + +--- + 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 diff --git a/queue-3.14/of-irq-fix-lookup-to-use-interrupts-extended-property-first.patch b/queue-3.14/of-irq-fix-lookup-to-use-interrupts-extended-property-first.patch new file mode 100644 index 00000000000..de32bbf46aa --- /dev/null +++ b/queue-3.14/of-irq-fix-lookup-to-use-interrupts-extended-property-first.patch @@ -0,0 +1,82 @@ +From a9ecdc0fdc54aa499604dbd43132988effcac9b4 Mon Sep 17 00:00:00 2001 +From: Florian Fainelli +Date: Wed, 6 Aug 2014 13:02:27 -0700 +Subject: of/irq: Fix lookup to use 'interrupts-extended' property first + +From: Florian Fainelli + +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 +Signed-off-by: Brian Norris +Signed-off-by: Florian Fainelli +Signed-off-by: Grant Likely +Signed-off-by: Greg Kroah-Hartman + +--- + 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); diff --git a/queue-3.14/pata_scc-propagate-return-value-of-scc_wait_after_reset.patch b/queue-3.14/pata_scc-propagate-return-value-of-scc_wait_after_reset.patch new file mode 100644 index 00000000000..635f963e73a --- /dev/null +++ b/queue-3.14/pata_scc-propagate-return-value-of-scc_wait_after_reset.patch @@ -0,0 +1,65 @@ +From 4dc7c76cd500fa78c64adfda4b070b870a2b993c Mon Sep 17 00:00:00 2001 +From: Arjun Sreedharan +Date: Sun, 17 Aug 2014 20:00:09 +0530 +Subject: pata_scc: propagate return value of scc_wait_after_reset + +From: Arjun Sreedharan + +commit 4dc7c76cd500fa78c64adfda4b070b870a2b993c upstream. + +scc_bus_softreset not necessarily should return zero. +Propagate the error code. + +Signed-off-by: Arjun Sreedharan +Signed-off-by: Tejun Heo +Signed-off-by: Greg Kroah-Hartman + +--- + 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 +@@ -586,7 +586,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; +@@ -600,9 +600,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); + } + + /** +@@ -619,7 +617,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"); +@@ -635,9 +634,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; + } + diff --git a/queue-3.14/series b/queue-3.14/series index 4b04094757a..243a4e13c1d 100644 --- a/queue-3.14/series +++ b/queue-3.14/series @@ -20,3 +20,8 @@ drm-radeon-tweak-accel_working2-query-for-hawaii.patch drm-i915-read-head-register-back-in-init_ring_common-to-enforce-ordering.patch drm-radeon-enable-bapm-by-default-on-desktop-tn-rl-boards.patch drm-radeon-tn-only-enable-bapm-on-msi-systems.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 -- 2.47.3