Add kernel Hibernation code for porter board.
[AGL/meta-agl.git] / meta-agl-bsp / meta-renesas / recipes-kernel / linux / linux / hibernation / 0003-Add-sata-hibernation-code.patch
1 From 5d87144a96085d74b6002bd6d8c093c37bf128b7 Mon Sep 17 00:00:00 2001
2 From: Yuichi Kusakabe <yuichi.kusakabe@jp.fujitsu.com>
3 Date: Thu, 18 May 2017 17:04:33 +0900
4 Subject: [PATCH 03/15] Add sata hibernation code
5
6 Signed-off-by: Yuichi Kusakabe <yuichi.kusakabe@jp.fujitsu.com>
7 ---
8  drivers/ata/sata_rcar.c | 29 +++++++++++++++++++++++++++++
9  1 file changed, 29 insertions(+)
10
11 diff --git a/drivers/ata/sata_rcar.c b/drivers/ata/sata_rcar.c
12 index 92abfdd..4c82b5e 100644
13 --- a/drivers/ata/sata_rcar.c
14 +++ b/drivers/ata/sata_rcar.c
15 @@ -1003,9 +1003,38 @@ static int sata_rcar_resume(struct device *dev)
16         return 0;
17  }
18  
19 +static int sata_rcar_restore(struct device *dev)
20 +{
21 +       struct ata_host *host = dev_get_drvdata(dev);
22 +       struct sata_rcar_priv *priv = host->private_data;
23 +       int ret;
24 +
25 +       clk_prepare_enable(priv->clk);
26 +
27 +       ret = sata_rcar_setup_port(host);
28 +       if (ret)
29 +               goto cleanup;
30 +
31 +       /* initialize host controller */
32 +       sata_rcar_init_controller(host);
33 +
34 +       ata_host_resume(host);
35 +
36 +       return 0;
37 +
38 +cleanup:
39 +       clk_disable_unprepare(priv->clk);
40 +
41 +       return ret;
42 +}
43 +
44  static const struct dev_pm_ops sata_rcar_pm_ops = {
45         .suspend        = sata_rcar_suspend,
46         .resume         = sata_rcar_resume,
47 +       .freeze         = sata_rcar_suspend,
48 +       .restore        = sata_rcar_restore,
49 +       .thaw           = sata_rcar_resume,
50 +       .poweroff       = sata_rcar_suspend
51  };
52  #endif
53  
54 -- 
55 1.8.3.1
56