From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756403AbbJUWZM (ORCPT ); Wed, 21 Oct 2015 18:25:12 -0400 Received: from mail-bn1bn0104.outbound.protection.outlook.com ([157.56.110.104]:1975 "EHLO na01-bn1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752587AbbJUWZJ (ORCPT ); Wed, 21 Oct 2015 18:25:09 -0400 X-Greylist: delayed 2041 seconds by postgrey-1.27 at vger.kernel.org; Wed, 21 Oct 2015 18:25:08 EDT 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 v5 2/7] dmaengine: mxs: APBH DMA supports deep sleep mode Date: Wed, 21 Oct 2015 16:41:36 -0500 Message-ID: <1445463701-5921-3-git-send-email-b45815@freescale.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1445463701-5921-1-git-send-email-b45815@freescale.com> References: <1445463701-5921-1-git-send-email-b45815@freescale.com> X-EOPAttributedMessage: 0 X-Microsoft-Exchange-Diagnostics: 1;BL2FFO11FD032;1:g6uVR/sFS5FXS2Z+A+rJDKrpGnFOy0Avqan8AaEK6RlWMilbW01HiUYpvlk1d90gl7/bNmjO+MnqDF5nNZKO/hdg9Py8SU2wkz4BcC13T+thOI0JgktdJzTdlJJNHMK/KThNXMxjkXbuoB0+jaCjYlTxMIaNt/UOACwpetaVEv31DxExVNr6RbcY2dwiX1c6x5w2qwCPWZzCuMUwb1I4dXQ4xoKKcxPW+wlhNNlK6E4pNzPEBEbrkeHl2EMPugCe8StgC4sBkRbbc0PULxoyzW6s22eYwMJ4TGqo/EHxlu/wQ7IES2Q/iVHIgEu39tYj/XWjBgdTGdBDy6/V7k1EF76bhXDRGA8tJN8AFjBR2xCo8WoSTOGs2fp5ui+fI2UosT5Ly6bi+7LjZOxGdW8fuA== X-Forefront-Antispam-Report: CIP:192.88.168.50;CTRY:US;IPV:NLI;EFV:NLI;SFV:NSPM;SFS:(10019020)(6009001)(2980300002)(1110001)(1109001)(339900001)(199003)(189002)(36756003)(5008740100001)(189998001)(87936001)(92566002)(19580405001)(81156007)(48376002)(33646002)(50226001)(77096005)(50466002)(85426001)(64706001)(47776003)(11100500001)(2950100001)(46102003)(5007970100001)(229853001)(6806005)(5001960100002)(19580395003)(50986999)(2351001)(5003940100001)(106466001)(105606002)(104016004)(97736004)(76176999)(110136002)(217873001);DIR:OUT;SFP:1102;SCL:1;SRVR:CY1PR0301MB1305;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;CY1PR0301MB1305;2:usAsln4VldhvFHp9aFd3PRvRSQ1OkPhFDEE6vZ/fG4KAs3i/5AB6Hz31EGkrKP1325iFOJwHzFungw91/eaZff6zL3DRwik2+SCmnViLRyDDDE2EiNbj1cqIGC9uYz5g+Ip82O8N25ASlU6grnqngPVizL5fGuSd9b/QIpyFlL0=;3:7/UaVCi+fBp2MvGQScJg9JWLnkImgExFlSIMHdSYqCvt0SAo95tplWsrVoWjL67yrM/dvx4nJXpjwlorLsHEypvOvx1MBsyj3mWVgxCg8kR4NaMyEbGBP8JElVEiVuSs+kadBla8y9yQur+TBZn32o54w7NrFojb0CavdJQPMNjHTUBvl0QKiatjvh/bKqfsSs2yPx9EHWZEUQ5ymvuiDMs2E5KjA2GgcaslR1+2Ids=;25:YJIqbYiHYthhyIP68v7kpkMm1MsMTIS0LxCZgYxpLEXCqXRV4rSlhUBsR7HnaXaHkoTkrE3RYYlHddnCiQjTJGu5EY1vQD82Qw4UiCwoVbRPfDbEhM/SoQzs/Epf8042/bDFiqZFGVZPZ4fpHTJNqv+oUkb/9hLeqBc8HRJpf+QrjCSjNhZl5XQGD1/D9lS4i1wiklYkvHolBKaAyJUcchtUN/I9U8lAF8vKtw+FV8NKKd7xcEKRAkJchuZGCNUq X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CY1PR0301MB1305; X-Microsoft-Exchange-Diagnostics: 1;CY1PR0301MB1305;20:jfBEG8B8DZgXBVN43bhbuxss3Xls+Ghq5GE1jF7aXCSs/2avTBUQJbGY4RjcPwEdnjM2KhIxZpJ9a/ZF9QKyYMCw6+ezdaf+by/Fra9duas0hLd9pPeIYT7tGTmtt5oaxUdgmcrMWmx5ncnxumczk9gbl5K4Dci61wbG1/8ExXNpDe32eWzOLwElwNlrW/KYKX9r0Mk/wYmH+7gUxnTHOmwrIUziKDldi/Fr9c8/f8OpNWyW3k/vKUvrZHhW27fGf3H2Z3/MniqPp7VX8RzW40hiLnXSok9l4VHbuIvxXz+cfs24onf8jlbWLpNS3aBR+vHHjkBsVhIZwO6d/CYwZTYkxCUA9a2eyCCZ8IUGlLg=;4:6EnJdH15rJ64BzDQgHcN+5q+6Jk33CZUyt4xrJua+GXQrG+/VsSWjsEydU5zkltxV7SKlIwCTwJ8sEMDjabOnEd+iAKhS/rUSeXEiSVQrN2uI2vUFuM4uPyxLvFH1waMtXZPgIfLij3hWx79ounyMG1Op3Cv2ddRlZOkAYlOPNT/nbqO6laqExHNjkwYMENzDuhEI2NeXjF2FQNyxZpw2QRGkG4XJNHZW8CczZ7mGlAIhYbmpHJmnxEPm3ISoyGfJU9akUKpiav2SNdPuwu2g1Yp6Mr/RCJEqiVbGA/B0m31EvuXYzMrwrKcLNJ3JswhOaCuS+gyNekvi4GT+6xeNLyUcoZ1fB4M0Y0un6J6uYjWMgFeefCqHlEl9Wr3FBfr X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(101931422205132); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(5005006)(8121501046)(520078)(3002001)(102115026);SRVR:CY1PR0301MB1305;BCL:0;PCL:0;RULEID:;SRVR:CY1PR0301MB1305; X-Forefront-PRVS: 073631BD3D X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;CY1PR0301MB1305;23:zxPRL7ZaHZhxLIAK+FqvwR9Onu+3KhoUJJGn8WB?= =?us-ascii?Q?ONq/CGBZ1sHUhNBk70BQIHbjznbpn9vuqvVTJKGK4/O2B5KHzlns6yqU7tQO?= =?us-ascii?Q?D9mI3gXiokhHlTTQYePHhjtdFOoHnQ2lkgSP8b37uTkpiD9A3NqxF/yBN0WA?= =?us-ascii?Q?B67OGyxC5Gl5cRF5emO5uc2Fvame72h5tQ0gRVSNoXHGTaMfY1bCwBAKgy6W?= =?us-ascii?Q?TXsXisT4CKJAi5VzPiVc7yfMykQeiSv0EyfCJj1xPZk7wIkcra15qpJisr68?= =?us-ascii?Q?6iCH5jCwuVaKty3OBEtDEkWIJlJJBm1YBRnDY/5rOCFMy7dIV/SQtByQx63L?= =?us-ascii?Q?RtO2IQKobkEL0UaNQklJOvzEaJu5/LEgkVXYpJwKgXEApiqyfBSL8xSIlVbE?= =?us-ascii?Q?q4KVGdTyb9/a1ESqCkJrUW9kAwnLlx8WgMot5m/g4823igKpuMcIOkruZNVA?= =?us-ascii?Q?z69VUjc02JMxe382MF340CggjzXbd8seIJ3ytYqNmt5VcKhhFOFqhP4A+IJh?= =?us-ascii?Q?C5XGneyKxO5eUwD4mDgWz3pkLWkrCGFPDijaQfztg5dzrLBFkAOXoErUtTki?= =?us-ascii?Q?nx6YyEIijmcbgyMuHv37yDkymMCBcoPZw0XSKFMb9il3OgYQDz1OENAZypxb?= =?us-ascii?Q?Nht+BZhgriPSOThStht6KoZNLEo1Nb4fgsc23V2OWuCb6UAN5i5gSn9+neWW?= =?us-ascii?Q?4yMrTbTSd8E5wJ7/KSOAtbSa48SKGJ3Ragvq9SWcyPBRck/LUD5zrkidfrJU?= =?us-ascii?Q?Uqtyy1gVdAJRdqcQV4NpjRrc4Ai8qmBjWkc1cC/bIGNrb/Imtze+4M4CTXSQ?= =?us-ascii?Q?VjHlp9TJAv/qB2vDzfNXnZA4WJR7tLH+QRZo/P+7N1K9ovFfVgz7V0W7yECj?= =?us-ascii?Q?cXQJuyHSFtOd+wAyEyvibpuFJu/ETEa0ZYS5ZZWpXObF1pwVh237Z+1VzbD4?= =?us-ascii?Q?GoX3dXiFQEyFZbcPP1rKf43pXrtypJGrviFDkXgLmHfPZL2HAcdH7vzt1CMu?= =?us-ascii?Q?ZjbaXQVvA7UeB6j4LA5eZWApBPk5zUuM0JGxP1RPIpVVHKStlb5sbJqnWg9y?= =?us-ascii?Q?eKR+/BIOlcOatsAYhnW4Z7LjxsEit?= X-Microsoft-Exchange-Diagnostics: 1;CY1PR0301MB1305;5:B0F/N4ysaf6L4hjCT85Ptgm1vh8WWpmIzaCtaaOzNVCdTNigfGIY7hthiZOvIJ0nNjNtouQA19wD9d7H4NstlsJ36QuO6/A3msAoYb+9c1PAfSYTe3jnu5sDz/pOb3tPg8RzKRkZPereSD3WNvmDMQ==;24:9dBfFveHGegn1iC7GPlItwAvRK0gJ4cX+cR/b0GZfjBYUKosWrOSMmt6KmPH01033h1lsXwC8xoJFklAZbXBLgWVTNwXjNeBvCalcvswxa0=;20:2c46acxSMKZ1eAEknmWXdteMOCKhy4p0ImN1C9eBSE0LZ4Oo17bJoqV4Q/kPwLybRJSuIQ92JT+XKh73joit6A== X-OriginatorOrg: freescale.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Oct 2015 21:52:35.9294 (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: CY1PR0301MB1305 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