ata: ahci: mvebu: request PHY suspend/resume for Armada 3700
authorMiquel Raynal <miquel.raynal@bootlin.com>
Tue, 4 Dec 2018 19:28:29 +0000 (20:28 +0100)
committerJens Axboe <axboe@kernel.dk>
Fri, 11 Jan 2019 21:47:51 +0000 (14:47 -0700)
A feature has been added in the libahci driver: the possibility to set
a new flag in hpriv->flags to let the core handle PHY suspend/resume
automatically. Make use of this feature to make suspend to RAM work
with SATA drives on A3700.

Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/ata/ahci_mvebu.c

index bbab688d3c34e79c8085dea8e04f4e9743715555..d4bba3ace45d788c5c770afc68aca61479cc11d7 100644 (file)
@@ -30,6 +30,7 @@
 
 struct ahci_mvebu_plat_data {
        int (*plat_config)(struct ahci_host_priv *hpriv);
+       unsigned int flags;
 };
 
 static void ahci_mvebu_mbus_config(struct ahci_host_priv *hpriv,
@@ -195,6 +196,7 @@ static int ahci_mvebu_probe(struct platform_device *pdev)
        if (IS_ERR(hpriv))
                return PTR_ERR(hpriv);
 
+       hpriv->flags |= pdata->flags;
        hpriv->plat_data = (void *)pdata;
 
        rc = ahci_platform_enable_resources(hpriv);
@@ -225,6 +227,7 @@ static const struct ahci_mvebu_plat_data ahci_mvebu_armada_380_plat_data = {
 
 static const struct ahci_mvebu_plat_data ahci_mvebu_armada_3700_plat_data = {
        .plat_config = ahci_mvebu_armada_3700_config,
+       .flags = AHCI_HFLAG_SUSPEND_PHYS,
 };
 
 static const struct of_device_id ahci_mvebu_of_match[] = {