]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
4.19-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 7 Jan 2020 19:31:40 +0000 (20:31 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 7 Jan 2020 19:31:40 +0000 (20:31 +0100)
added patches:
ata-ahci_brcm-allow-optional-reset-controller-to-be-used.patch

queue-4.19/ata-ahci_brcm-add-missing-clock-management-during-recovery.patch
queue-4.19/ata-ahci_brcm-allow-optional-reset-controller-to-be-used.patch [new file with mode: 0644]
queue-4.19/ata-ahci_brcm-bcm7425-ahci-requires-ahci_hflag_delay_engine.patch
queue-4.19/series

index 2df561f0b1eb8826aa3177be8633ea42ad1870a4..b129ddc7190e1c8c174ee6f6f18a52ea936e1819 100644 (file)
@@ -29,7 +29,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
 
 --- a/drivers/ata/ahci_brcm.c
 +++ b/drivers/ata/ahci_brcm.c
-@@ -282,6 +282,13 @@ static unsigned int brcm_ahci_read_id(st
+@@ -284,6 +284,13 @@ static unsigned int brcm_ahci_read_id(st
        /* Perform the SATA PHY reset sequence */
        brcm_sata_phy_disable(priv, ap->port_no);
  
diff --git a/queue-4.19/ata-ahci_brcm-allow-optional-reset-controller-to-be-used.patch b/queue-4.19/ata-ahci_brcm-allow-optional-reset-controller-to-be-used.patch
new file mode 100644 (file)
index 0000000..ddf0b90
--- /dev/null
@@ -0,0 +1,50 @@
+From 2b2c47d9e1fe90311b725125d6252a859ee87a79 Mon Sep 17 00:00:00 2001
+From: Florian Fainelli <f.fainelli@gmail.com>
+Date: Mon, 1 Oct 2018 10:33:00 -0700
+Subject: ata: ahci_brcm: Allow optional reset controller to be used
+
+From: Florian Fainelli <f.fainelli@gmail.com>
+
+commit 2b2c47d9e1fe90311b725125d6252a859ee87a79 upstream.
+
+On BCM63138, we need to reset the AHCI core prior to start utilizing it,
+grab the reset controller device cookie and do that.
+
+Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
+Signed-off-by: Jens Axboe <axboe@kernel.dk>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/ata/ahci_brcm.c |    7 +++++++
+ 1 file changed, 7 insertions(+)
+
+--- a/drivers/ata/ahci_brcm.c
++++ b/drivers/ata/ahci_brcm.c
+@@ -25,6 +25,7 @@
+ #include <linux/module.h>
+ #include <linux/of.h>
+ #include <linux/platform_device.h>
++#include <linux/reset.h>
+ #include <linux/string.h>
+ #include "ahci.h"
+@@ -94,6 +95,7 @@ struct brcm_ahci_priv {
+       u32 port_mask;
+       u32 quirks;
+       enum brcm_ahci_version version;
++      struct reset_control *rcdev;
+ };
+ static inline u32 brcm_sata_readreg(void __iomem *addr)
+@@ -433,6 +435,11 @@ static int brcm_ahci_probe(struct platfo
+       if (IS_ERR(priv->top_ctrl))
+               return PTR_ERR(priv->top_ctrl);
++      /* Reset is optional depending on platform */
++      priv->rcdev = devm_reset_control_get(&pdev->dev, "ahci");
++      if (!IS_ERR_OR_NULL(priv->rcdev))
++              reset_control_deassert(priv->rcdev);
++
+       if ((priv->version == BRCM_SATA_BCM7425) ||
+               (priv->version == BRCM_SATA_NSP)) {
+               priv->quirks |= BRCM_AHCI_QUIRK_NO_NCQ;
index b14d958277394fcc5db703669daa67a79942eaf5..bc7b34d2832a20ee4f996fe67a39a454abcc2f7b 100644 (file)
@@ -33,7 +33,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
 
 --- a/drivers/ata/ahci_brcm.c
 +++ b/drivers/ata/ahci_brcm.c
-@@ -84,8 +84,7 @@ enum brcm_ahci_version {
+@@ -85,8 +85,7 @@ enum brcm_ahci_version {
  };
  
  enum brcm_ahci_quirks {
@@ -43,9 +43,9 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  };
  
  struct brcm_ahci_priv {
-@@ -440,18 +439,27 @@ static int brcm_ahci_probe(struct platfo
-       if (IS_ERR(priv->top_ctrl))
-               return PTR_ERR(priv->top_ctrl);
+@@ -447,18 +446,27 @@ static int brcm_ahci_probe(struct platfo
+       if (!IS_ERR_OR_NULL(priv->rcdev))
+               reset_control_deassert(priv->rcdev);
  
 -      if ((priv->version == BRCM_SATA_BCM7425) ||
 -              (priv->version == BRCM_SATA_NSP)) {
@@ -77,7 +77,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
        ret = ahci_platform_enable_clks(hpriv);
        if (ret)
                goto out_reset;
-@@ -471,15 +479,8 @@ static int brcm_ahci_probe(struct platfo
+@@ -478,15 +486,8 @@ static int brcm_ahci_probe(struct platfo
        /* Must be done before ahci_platform_enable_phys() */
        brcm_sata_phys_enable(priv);
  
index 716a81803574b319a1f0e9b174e5963a5d7812f7..ced22a6d75fb9371cf9b15645ae6ce015518c33d 100644 (file)
@@ -59,6 +59,7 @@ compat_ioctl-block-handle-persistent-reservations.patch
 compat_ioctl-block-handle-blkreportzone-blkresetzone.patch
 ata-libahci_platform-export-again-ahci_platform_-en-dis-able_phys.patch
 ata-ahci_brcm-fix-ahci-resources-management.patch
+ata-ahci_brcm-allow-optional-reset-controller-to-be-used.patch
 ata-ahci_brcm-add-missing-clock-management-during-recovery.patch
 ata-ahci_brcm-bcm7425-ahci-requires-ahci_hflag_delay_engine.patch
 libata-fix-retrieving-of-active-qcs.patch