kernel: update 3.14 to 3.14.18
[openwrt/svn-archive/archive.git] / target / linux / ipq806x / patches / 0109-libahci-Allow-drivers-to-override-start_engine.patch
index 102fd4f6c3aa3e4eec93dacce1ae5af69252762a..b727e2693e2d0f248e13b3a254a6752b1499e4a3 100644 (file)
@@ -21,11 +21,9 @@ Signed-off-by: Tejun Heo <tj@kernel.org>
  drivers/ata/sata_highbank.c |    3 ++-
  4 files changed, 31 insertions(+), 10 deletions(-)
 
-diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c
-index c81d809..8bfc477 100644
 --- a/drivers/ata/ahci.c
 +++ b/drivers/ata/ahci.c
-@@ -578,6 +578,7 @@ static int ahci_vt8251_hardreset(struct ata_link *link, unsigned int *class,
+@@ -583,6 +583,7 @@ static int ahci_vt8251_hardreset(struct
                                 unsigned long deadline)
  {
        struct ata_port *ap = link->ap;
@@ -33,7 +31,7 @@ index c81d809..8bfc477 100644
        bool online;
        int rc;
  
-@@ -588,7 +589,7 @@ static int ahci_vt8251_hardreset(struct ata_link *link, unsigned int *class,
+@@ -593,7 +594,7 @@ static int ahci_vt8251_hardreset(struct
        rc = sata_link_hardreset(link, sata_ehc_deb_timing(&link->eh_context),
                                 deadline, &online, NULL);
  
@@ -42,7 +40,7 @@ index c81d809..8bfc477 100644
  
        DPRINTK("EXIT, rc=%d, class=%u\n", rc, *class);
  
-@@ -603,6 +604,7 @@ static int ahci_p5wdh_hardreset(struct ata_link *link, unsigned int *class,
+@@ -608,6 +609,7 @@ static int ahci_p5wdh_hardreset(struct a
  {
        struct ata_port *ap = link->ap;
        struct ahci_port_priv *pp = ap->private_data;
@@ -50,7 +48,7 @@ index c81d809..8bfc477 100644
        u8 *d2h_fis = pp->rx_fis + RX_FIS_D2H_REG;
        struct ata_taskfile tf;
        bool online;
-@@ -618,7 +620,7 @@ static int ahci_p5wdh_hardreset(struct ata_link *link, unsigned int *class,
+@@ -623,7 +625,7 @@ static int ahci_p5wdh_hardreset(struct a
        rc = sata_link_hardreset(link, sata_ehc_deb_timing(&link->eh_context),
                                 deadline, &online, NULL);
  
@@ -59,11 +57,9 @@ index c81d809..8bfc477 100644
  
        /* The pseudo configuration device on SIMG4726 attached to
         * ASUS P5W-DH Deluxe doesn't send signature FIS after
-diff --git a/drivers/ata/ahci.h b/drivers/ata/ahci.h
-index 2289efd..64d1a99 100644
 --- a/drivers/ata/ahci.h
 +++ b/drivers/ata/ahci.h
-@@ -323,6 +323,12 @@ struct ahci_host_priv {
+@@ -324,6 +324,12 @@ struct ahci_host_priv {
        u32                     em_msg_type;    /* EM message type */
        struct clk              *clk;           /* Only for platforms supporting clk */
        void                    *plat_data;     /* Other platform data */
@@ -76,11 +72,9 @@ index 2289efd..64d1a99 100644
  };
  
  extern int ahci_ignore_sss;
-diff --git a/drivers/ata/libahci.c b/drivers/ata/libahci.c
-index 36605ab..f839bb3 100644
 --- a/drivers/ata/libahci.c
 +++ b/drivers/ata/libahci.c
-@@ -394,6 +394,9 @@ static ssize_t ahci_show_em_supported(struct device *dev,
+@@ -394,6 +394,9 @@ static ssize_t ahci_show_em_supported(st
   *
   *    If inconsistent, config values are fixed up by this function.
   *
@@ -90,7 +84,7 @@ index 36605ab..f839bb3 100644
   *    LOCKING:
   *    None.
   */
-@@ -500,6 +503,9 @@ void ahci_save_initial_config(struct device *dev,
+@@ -500,6 +503,9 @@ void ahci_save_initial_config(struct dev
        hpriv->cap = cap;
        hpriv->cap2 = cap2;
        hpriv->port_map = port_map;
@@ -100,7 +94,7 @@ index 36605ab..f839bb3 100644
  }
  EXPORT_SYMBOL_GPL(ahci_save_initial_config);
  
-@@ -766,7 +772,7 @@ static void ahci_start_port(struct ata_port *ap)
+@@ -766,7 +772,7 @@ static void ahci_start_port(struct ata_p
  
        /* enable DMA */
        if (!(hpriv->flags & AHCI_HFLAG_DELAY_ENGINE))
@@ -109,7 +103,7 @@ index 36605ab..f839bb3 100644
  
        /* turn on LEDs */
        if (ap->flags & ATA_FLAG_EM) {
-@@ -1234,7 +1240,7 @@ int ahci_kick_engine(struct ata_port *ap)
+@@ -1234,7 +1240,7 @@ int ahci_kick_engine(struct ata_port *ap
  
        /* restart engine */
   out_restart:
@@ -118,7 +112,7 @@ index 36605ab..f839bb3 100644
        return rc;
  }
  EXPORT_SYMBOL_GPL(ahci_kick_engine);
-@@ -1426,6 +1432,7 @@ static int ahci_hardreset(struct ata_link *link, unsigned int *class,
+@@ -1426,6 +1432,7 @@ static int ahci_hardreset(struct ata_lin
        const unsigned long *timing = sata_ehc_deb_timing(&link->eh_context);
        struct ata_port *ap = link->ap;
        struct ahci_port_priv *pp = ap->private_data;
@@ -126,7 +120,7 @@ index 36605ab..f839bb3 100644
        u8 *d2h_fis = pp->rx_fis + RX_FIS_D2H_REG;
        struct ata_taskfile tf;
        bool online;
-@@ -1443,7 +1450,7 @@ static int ahci_hardreset(struct ata_link *link, unsigned int *class,
+@@ -1443,7 +1450,7 @@ static int ahci_hardreset(struct ata_lin
        rc = sata_link_hardreset(link, timing, deadline, &online,
                                 ahci_check_ready);
  
@@ -135,7 +129,7 @@ index 36605ab..f839bb3 100644
  
        if (online)
                *class = ahci_dev_classify(ap);
-@@ -2007,10 +2014,12 @@ static void ahci_thaw(struct ata_port *ap)
+@@ -2007,10 +2014,12 @@ static void ahci_thaw(struct ata_port *a
  
  void ahci_error_handler(struct ata_port *ap)
  {
@@ -149,7 +143,7 @@ index 36605ab..f839bb3 100644
        }
  
        sata_pmp_error_handler(ap);
-@@ -2031,6 +2040,7 @@ static void ahci_post_internal_cmd(struct ata_queued_cmd *qc)
+@@ -2031,6 +2040,7 @@ static void ahci_post_internal_cmd(struc
  
  static void ahci_set_aggressive_devslp(struct ata_port *ap, bool sleep)
  {
@@ -157,7 +151,7 @@ index 36605ab..f839bb3 100644
        void __iomem *port_mmio = ahci_port_base(ap);
        struct ata_device *dev = ap->link.device;
        u32 devslp, dm, dito, mdat, deto;
-@@ -2094,7 +2104,7 @@ static void ahci_set_aggressive_devslp(struct ata_port *ap, bool sleep)
+@@ -2094,7 +2104,7 @@ static void ahci_set_aggressive_devslp(s
                   PORT_DEVSLP_ADSE);
        writel(devslp, port_mmio + PORT_DEVSLP);
  
@@ -166,7 +160,7 @@ index 36605ab..f839bb3 100644
  
        /* enable device sleep feature for the drive */
        err_mask = ata_dev_set_feature(dev,
-@@ -2106,6 +2116,7 @@ static void ahci_set_aggressive_devslp(struct ata_port *ap, bool sleep)
+@@ -2106,6 +2116,7 @@ static void ahci_set_aggressive_devslp(s
  
  static void ahci_enable_fbs(struct ata_port *ap)
  {
@@ -174,7 +168,7 @@ index 36605ab..f839bb3 100644
        struct ahci_port_priv *pp = ap->private_data;
        void __iomem *port_mmio = ahci_port_base(ap);
        u32 fbs;
-@@ -2134,11 +2145,12 @@ static void ahci_enable_fbs(struct ata_port *ap)
+@@ -2134,11 +2145,12 @@ static void ahci_enable_fbs(struct ata_p
        } else
                dev_err(ap->host->dev, "Failed to enable FBS\n");
  
@@ -188,7 +182,7 @@ index 36605ab..f839bb3 100644
        struct ahci_port_priv *pp = ap->private_data;
        void __iomem *port_mmio = ahci_port_base(ap);
        u32 fbs;
-@@ -2166,7 +2178,7 @@ static void ahci_disable_fbs(struct ata_port *ap)
+@@ -2166,7 +2178,7 @@ static void ahci_disable_fbs(struct ata_
                pp->fbs_enabled = false;
        }
  
@@ -197,11 +191,9 @@ index 36605ab..f839bb3 100644
  }
  
  static void ahci_pmp_attach(struct ata_port *ap)
-diff --git a/drivers/ata/sata_highbank.c b/drivers/ata/sata_highbank.c
-index 870b11e..b3b18d1 100644
 --- a/drivers/ata/sata_highbank.c
 +++ b/drivers/ata/sata_highbank.c
-@@ -403,6 +403,7 @@ static int ahci_highbank_hardreset(struct ata_link *link, unsigned int *class,
+@@ -403,6 +403,7 @@ static int ahci_highbank_hardreset(struc
        static const unsigned long timing[] = { 5, 100, 500};
        struct ata_port *ap = link->ap;
        struct ahci_port_priv *pp = ap->private_data;
@@ -209,7 +201,7 @@ index 870b11e..b3b18d1 100644
        u8 *d2h_fis = pp->rx_fis + RX_FIS_D2H_REG;
        struct ata_taskfile tf;
        bool online;
-@@ -431,7 +432,7 @@ static int ahci_highbank_hardreset(struct ata_link *link, unsigned int *class,
+@@ -431,7 +432,7 @@ static int ahci_highbank_hardreset(struc
                        break;
        } while (!online && retry--);
  
@@ -218,6 +210,3 @@ index 870b11e..b3b18d1 100644
  
        if (online)
                *class = ahci_dev_classify(ap);
--- 
-1.7.10.4
-