From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S965704AbbJVUGV (ORCPT ); Thu, 22 Oct 2015 16:06:21 -0400 Received: from mail-bl2on0143.outbound.protection.outlook.com ([65.55.169.143]:21256 "EHLO na01-bl2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1758183AbbJVUFj (ORCPT ); Thu, 22 Oct 2015 16:05:39 -0400 Authentication-Results: spf=fail (sender IP is 192.88.168.50) smtp.mailfrom=freescale.com; vger.kernel.org; dkim=none (message not signed) header.d=none;vger.kernel.org; dmarc=none action=none header.from=freescale.com; From: Han Xu To: CC: , , , , , , , , , , Subject: [PATCH v6 2/7] dmaengine: mxs: APBH DMA supports deep sleep mode Date: Thu, 22 Oct 2015 14:54:31 -0500 Message-ID: <1445543676-19876-3-git-send-email-b45815@freescale.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1445543676-19876-1-git-send-email-b45815@freescale.com> References: <1445543676-19876-1-git-send-email-b45815@freescale.com> X-EOPAttributedMessage: 0 X-Microsoft-Exchange-Diagnostics: 1;BN1BFFO11FD025;1:nSViuo1jOMlsQuwFnwD79wNtYFxN7xBjD7sgw9px9CYASGjRRpz/oA/is0uAaGm/BFWDZnqIpWVS/ZX3Z0MiISDk9sZsJ3nmbr6b8/xzYIKXbCGYwoPo9aGrri6upZto6AeWQA1D957zGmF3PznmLA1pVq88K/GhjJk5dnmsSWrDkx4Ib1oePlvkDvSRm0R62Y8U1xWrW3L8IdgyCYMdauh2oT+tGqIPY/HQos1I9jYMVC3iFUNNPLb0wC1i6aB1hqgreT2rs9zKeSRe71p4JxkU+tfOs63YWRL6LWtvaqiKJ0//1XoNNZWvqSIVmZFNf8fQJmJ9mOfBjhoWvRe3HbvzYZZ5rWJP3YT62WUFG22eWNjMjfli4x3WNOgu3nYOyyngwKGpZO7JpmaP9N86zQ== X-Forefront-Antispam-Report: CIP:192.88.168.50;CTRY:US;IPV:NLI;EFV:NLI;SFV:NSPM;SFS:(10019020)(979002)(6009001)(2980300002)(1110001)(1109001)(339900001)(199003)(189002)(50986999)(87936001)(76176999)(92566002)(36756003)(2950100001)(104016004)(48376002)(6806005)(85426001)(50466002)(11100500001)(47776003)(5007970100001)(105606002)(33646002)(77096005)(19580405001)(19580395003)(5003940100001)(5001960100002)(110136002)(50226001)(81156007)(229853001)(189998001)(2351001)(97736004)(5008740100001)(106466001)(217873001)(969003)(989001)(999001)(1009001)(1019001);DIR:OUT;SFP:1102;SCL:1;SRVR:BY2PR03MB556;H:tx30smr01.am.freescale.net;FPR:;SPF:Fail;PTR:InfoDomainNonexistent;A:1;MX:1;LANG:en; MIME-Version: 1.0 Content-Type: text/plain X-Microsoft-Exchange-Diagnostics: 1;BY2PR03MB556;2:2EB7hrEMAzj2hzbvbLVJl24NR4J/b3DsC31p0JA4u1gCTgJyUmlRVBKs05sXtynQa6HzXiV+SMVKpuUrSm5VdImGDofibA4QvbY7QtO52PHoAXXKYrM7GHcu33x3s9ZNuc/pS3fj5bSr8E/VZPJaXMDcVIUtTK/x1A7BO56xTrU=;3:lRX5bzyhWSKguv5U7JQJt9Km+nyv0OUSokvKpIbZJi7Gcy5Ok4lqx4ivEDWKuJz3u4eYRtzD4jJGCqVC81rojZ8YrpquwpxE8TbQFZvZ4xrMVmKIJ4Bb/f6VRH7TUkGZXBG5IoTaQZelZHwNzm+Vh6fmwZiD5TZ2fBFfu31ekB3ypJXMuuOe3bc3CN6tsyzRncT6idofAhsr5/wEn+bitDlDIwmBR7yzSLkBHu9mb5I=;25:F2SQ81QjKoPPIQ51mMFtzfkJaCoffhO1V7rwFQjHMqcMhLEj7vjrXXwmY1adC0tk+8QG7DstDJMY28Ygm6y56ceLdEW3MyiKgiUUwCaiMMsDNRrPq4VBU9YZ+8Ga/XyEAdK+BU6iUudt2HzcyTUC+RC58VxKosyuFueLJqQLMP7HSa9965BRdzYF94nOec1g2o8tbnUnca49WVxDjJBc6qjo0JYPaaEaJQl7j4r2GiZINX0DwfTeFGQAjYboPFWj X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BY2PR03MB556; X-Microsoft-Exchange-Diagnostics: 1;BY2PR03MB556;20:l8h5y1BxRhopm6Tc2NXBxwX27zyyZZv5Yh1U5Pn7wiKHVLgerMTsBZpz6M52SI+/17m2MlULGfi5VYTmC0z4U469o64WNomSs/af/OnokAcQUM9SgSegl22YrDhd0C2N41lbOgRvJNxJTZPJrs+IMDl4VUH43jgII2u8K/AyNrMwU7evP0Ev2mQbsxoPSy7ohmONk2qS5Xf2jLQPOr1xMLCo8qWY45EYzHlhfYyJuuaLrTyezypmxIP85wZRU03oq88XYQUT+2CGTX0Nfg04ftoidoZZRTuZWpiu/n8YSQV5FF5yYyE3yMbg4FyRuGKt+rgr8oiCw0/JZ/r/Aq84g0Hsb6AQp0ANcED6Uxa9MrE=;4:Di/3S/QGetx3LvrDaiye2yzLLB2j4vFa6NOSDpfPAuoqALJA5gIsRl1Jyqy1cWhHs/HtHJLm8j/S4o1M90ql3o9TgddD1999Al4PVC/EWpe4bO5DYyZv4+teNHG4DxivNtHsDKqZHBjT6nSg/YbpRYwpu4IjU0ANoZ9BSJlGx/137niNpkEK1oXjjy/Z27Oc58cf/5VoyLrTaxo3WNCXwPOBL0qXPM6xyUd/zMXmsVRYoURBPbYNcBk1OK3OXlundRjn/iFnFOFHK/FcTipJ11fNFvg6wpj4dBhdXvq3joOs7Pb3aKjRpBKgJ/jJGa2njX8U8EpKaQ+r/aCWzu4GPhWnpRS615mK8L3MghUpEYLAEClPvt0aC/JNU05WeYHx X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(101931422205132); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(8121501046)(5005006)(520078)(3002001)(102215026);SRVR:BY2PR03MB556;BCL:0;PCL:0;RULEID:;SRVR:BY2PR03MB556; X-Forefront-PRVS: 0737B96801 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BY2PR03MB556;23:2qvplElWeXjBL7dAaKimODg5wUTEQZ0hpACkq/15HO?= =?us-ascii?Q?1Qx08aKXaOUMW+yTlHKQizX72F9WtPuhYMlbqr9xLuV6kumEsNAeek7aHfLI?= =?us-ascii?Q?UxfgMfpkTKekVpty90c+I0DwsY9FYxSCeUovZNUc+k5JN3CdVHsOXlU87pCl?= =?us-ascii?Q?6JLYKJbyxkfl+W70R1iw2tmoX7PBNF3lg8FCqNHbHHrRF4WFC2T6XETKf/3b?= =?us-ascii?Q?ZsCO52mKU0lyJnM033F7paMfxkIZvw2Xdb/3RuVbAqsV53TsqVAYGdmVFHTr?= =?us-ascii?Q?DP6GM6vWCEuQsYQ9MkA0SlZmqhOK1XKF/1xL+qzxrm++z/b/P2FdUQJsiHkV?= =?us-ascii?Q?xo8GHDDJ3NtSXKSnM6aV/SOu5rPrmQjr8GeglrqI03un1z7cLDFdNJUBvpPV?= =?us-ascii?Q?V1J0htFOHdXafVrK6hVejHetPTIRTBemOnoy0AQEyQb9Fp4FBWjZv5Bug3Ro?= =?us-ascii?Q?Y5pwiahVlgjl2JjoJDhZrCeis0PlshcuJE69bwkKwjihmwkZma2aWyt6GYl5?= =?us-ascii?Q?eQcNahOVT7dMzdraVgXTgrbbL9Rs+xKRa6t1y5gGbT3Fo94RhPy9Rhj3LXnY?= =?us-ascii?Q?km4CL5c8/285Vg9FMBaTsHW/Rq1RGkW+7KuO5WN7wARIDXIEDlcOvuxrWHaS?= =?us-ascii?Q?Bb6LNkFjZx0NiaibMgsuxmtLXm2NzIGDWPbJiAJqAxWqpWGtNkYQyAPQV3Ia?= =?us-ascii?Q?UP3ZT7NTqFnZwh1BxOVBP7ooq35wHEsCY3ffZvhffU4iqCwp4h6oG5is9bGz?= =?us-ascii?Q?qNdFfvqLR5+uf8cm0nFy4effm07yOsEQTiuXq8MtuSV3ZEuu0lDCoGAfLW5n?= =?us-ascii?Q?QomO8FAqdt1T8qbHSy55c+1vkMekwvNLr12yCcX+IkOuuDxLgDPFm00CyT6C?= =?us-ascii?Q?oiIFZC6ZSRLKKyaqJOwHX5BeYyFrJnkZI28XjbqRdJeK7tCmPgdn1DvzXCbN?= =?us-ascii?Q?6tbVKDf/iyJrOmLUyTZ7rldO4rVKlp/jV37sjpl1TIv1W2bH8QMWBFOMqlmu?= =?us-ascii?Q?6nFcVptp9YtHYaUJXfzCfYkEk9n2layWYujJC7U5hvtofnGkTRpDJLu16GvT?= =?us-ascii?Q?5su9Qt0IUweJLWuI9qUFv7e9ir8L60k/7O09EfeYEGuGaMEX68QtHz09PMVo?= =?us-ascii?Q?7ipV4/IHN1ZbC5/0nOQ/Lh2mMcWBrg?= X-Microsoft-Exchange-Diagnostics: 1;BY2PR03MB556;5:mcf/i94X8YkSOS8lfsIK6/4GDY1a3d6aVJMvQrta8OQY38P0K2FfVZrIOQczCCubOo9+qtapyiPAXoi1YB0AfRKCMmo54l94vn1AtZhBhuUNtFYsK3G9MACH7U5Zf68VfQJsv0IJYyX6FnR2cZPrGA==;24:hHheC9ofzS9v/mWrj404ih2idyXQt4uGsyy/LSTiKufQJZzZ0h6NARe5Xu/yuxvVOFYsMAc4cQkUPxgW8NtDu8ZVz60HfdsnElcW078eewc=;20:QCG6D+qVtvMO5PqKnhZLA7KDR3oYLFgG/d/yuy9EXBm874jywN2vGI4h+Gyh2ELr0HmNMQx16hcUpaWcQwR5gQ== X-OriginatorOrg: freescale.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Oct 2015 20:05:34.8796 (UTC) X-MS-Exchange-CrossTenant-Id: 710a03f5-10f6-4d38-9ff4-a80b81da590d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=710a03f5-10f6-4d38-9ff4-a80b81da590d;Ip=[192.88.168.50];Helo=[tx30smr01.am.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY2PR03MB556 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Huang Shijie Deep Sleep Mode(dsm) turns off the power for APBH DMA module, DMA need to be re-initialized when system resumed back. Signed-off-by: Huang Shijie Signed-off-by: Han Xu --- drivers/dma/mxs-dma.c | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/drivers/dma/mxs-dma.c b/drivers/dma/mxs-dma.c index 60de352..7e5800a 100644 --- a/drivers/dma/mxs-dma.c +++ b/drivers/dma/mxs-dma.c @@ -693,7 +693,7 @@ static enum dma_status mxs_dma_tx_status(struct dma_chan *chan, return mxs_chan->status; } -static int __init mxs_dma_init(struct mxs_dma_engine *mxs_dma) +static int mxs_dma_init(struct mxs_dma_engine *mxs_dma) { int ret; @@ -835,6 +835,7 @@ static int __init mxs_dma_probe(struct platform_device *pdev) mxs_dma->pdev = pdev; mxs_dma->dma_device.dev = &pdev->dev; + dev_set_drvdata(&pdev->dev, mxs_dma); /* mxs_dma gets 65535 bytes maximum sg size */ mxs_dma->dma_device.dev->dma_parms = &mxs_dma->dma_parms; @@ -872,9 +873,25 @@ static int __init mxs_dma_probe(struct platform_device *pdev) return 0; } +static int mxs_dma_pm_resume(struct device *dev) +{ + struct mxs_dma_engine *mxs_dma = dev_get_drvdata(dev); + int ret; + + ret = mxs_dma_init(mxs_dma); + if (ret) + return ret; + return 0; +} + +static const struct dev_pm_ops mxs_dma_pm_ops = { + SET_SYSTEM_SLEEP_PM_OPS(NULL, mxs_dma_pm_resume) +}; + static struct platform_driver mxs_dma_driver = { .driver = { .name = "mxs-dma", + .pm = &mxs_dma_pm_ops, .of_match_table = mxs_dma_dt_ids, }, .id_table = mxs_dma_ids, -- 1.9.1