From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755016AbbJ0WRo (ORCPT ); Tue, 27 Oct 2015 18:17:44 -0400 Received: from mail-by2on0127.outbound.protection.outlook.com ([207.46.100.127]:29081 "EHLO na01-by2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752467AbbJ0WQ5 (ORCPT ); Tue, 27 Oct 2015 18:16:57 -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 v7 2/7] dmaengine: mxs: APBH DMA supports deep sleep mode Date: Tue, 27 Oct 2015 17:05:35 -0500 Message-ID: <1445983540-27155-3-git-send-email-b45815@freescale.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1445983540-27155-1-git-send-email-b45815@freescale.com> References: <1445983540-27155-1-git-send-email-b45815@freescale.com> X-EOPAttributedMessage: 0 X-Microsoft-Exchange-Diagnostics: 1;BN1AFFO11FD015;1:cpcebGR43L/8huHpTC4w61KxYLO/5NvVsaBccSrNjakqfdIdIg5fyEz8InGJwR5X9OCwwvZ4Xj/W/PCgC4abmMOrSvTUt402XTnFhtyVfytL3hzevcV5LZLpovrUMEhW7VsKGpIM5xQS9OVlbsDsjaYs/zx8sLEvF2RWcA0YYr8mJkIhd+DJWrQ/5QsfA6ugJ3kydBDljOiEKopM04AwG48Ith1BvVMI2pAWQV9NLRZNdd1h6QRN+U4HkllPu+OwB96HsOk+axMDWfEpYp9Fu+hutcAnUWJltaNo5NbqA30RmoRlyMIZnQjT5hnRw5ghKMJNt8Tr14eFHXhvM5SmNvsIoP88dcudluBzb/r58bqzVeGfVtY9Vv2WZ4BHhtCkIRnSCLgu1v1zCTz78949AQ== X-Forefront-Antispam-Report: CIP:192.88.168.50;CTRY:US;IPV:NLI;EFV:NLI;SFV:NSPM;SFS:(10019020)(6009001)(2980300002)(1110001)(1109001)(339900001)(189002)(199003)(19580395003)(48376002)(50466002)(81156007)(5008740100001)(5003940100001)(2950100001)(97736004)(104016004)(189998001)(92566002)(5001960100002)(87936001)(110136002)(85426001)(105606002)(50226001)(19580405001)(5007970100001)(77096005)(106466001)(2351001)(229853001)(6806005)(11100500001)(47776003)(33646002)(76176999)(50986999)(36756003)(217873001);DIR:OUT;SFP:1102;SCL:1;SRVR:DM2PR03MB560;H:tx30smr01.am.freescale.net;FPR:;SPF:Fail;PTR:InfoDomainNonexistent;MX:1;A:1;LANG:en; MIME-Version: 1.0 Content-Type: text/plain X-Microsoft-Exchange-Diagnostics: 1;DM2PR03MB560;2:zsZudocSKMPeg3H1mH3EaQRAFHkBIlEO5dOR7kgiM6a5UVxyJoH3kpElkOxWb+SDTp/bA+ssyUJ+HevUkd7YZKqK56oJbRin/9UpW0VszUPpVUs+flu7zIjbKHK7HCY383GYKPhl936tP8l0sWhfpRVjOHbAiQF8Sa6JhApr/Ps=;3:seuIKLG8XSUs/ZG3+cTmdhjmLVtGNZcY7CbnHduwv8u95NH9jfhNet00Zp1ZOSUy8a8UvNvJL3ehHrdS5Npiwj9TF06/CwM/Ck7x6FqYjOrEYCeF9gSUJooOG+wJLGUX8u3JYWIikYEMWm2iGphJDL696unTsPwl2h6RUxYC80QAA/8IBdoiqbFDEKtiN9w67VNVTXpCK4FuUDnbsGKj4ZdygGGE2U2rreougekve3Y=;25:DrK3isHdPEmIgUGzmojp4/OHPBaLt/HV5u561FWjI9RaBM1oq+m/yq+CNNIzWqBb+DSpckFB8VbUuMtAhOGrefpnPjaToSuaFBNEubMH5UnDgfbW2nlA5gV1J6IWiMzq26zSHv5cDlosLpIW9VGw5ziMw+4XdU3o0jvgNGRrfdCDL+EsR7okF6vp7MSOCleBjXSvrTkmTOPG5sFHSnxvbJXWu2yM8xCJ7fTw4enwtnKpCC0lYmXnOCbcrRncIOMW X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:DM2PR03MB560; X-Microsoft-Exchange-Diagnostics: 1;DM2PR03MB560;20:YPYYAekplGMc1nTsTgxNe3MpSi+UXO0J8pyNs6n7HodjiOwc8Gf/tKh2JGAlpaaUX6zwVlyEp36fkNFNps9uB6D+HrDe42HTDBWCQVS9eoJEmIyGavJDsJPswK4X2OcPRXVI3fVEJGc/3WNWYbW6tZ2IobD1P+kNviuW4QqURibB18KjFElrPznaQhFrt+p/q3r/LVzmxHGjDz7oipGddzg9NsXdkNGrXwV9MW3/mXD9ssN4bQeO2Q5sppqzW3efsW05GF6+jeMLry5FeevXPXvr4I19uzbVMbTDfUjebGHQUaHI+vu5f3EkMMYy+sT3rNj1Xm9v4eNuGHrV5qhJdMbYaqEYs63DRitSmJijW9g=;4:kMt0afeCW/DNqwsngp/LBLmPNFrDNyTnkpmihUt47WyP8J6/4dxxydsJlDJBDVz7gTXlJLBesYxmtwvgQH1zlBA2l43gP1fTIu7sYAnkyx6++DtDkBIFGDFrO/zOgB4FiDy9MfgURCEDk9m1Lf5gPLOKzj745vkuEimDLkgrZ3ct5aMMoN3/grn5uhQximF8oyj5ci6pRK3VMhjk4w7jy2hAVjxqXoCmHClbxdEpB79dt0iRy0lAf8pQUBOqcFZhgSWRM+tLZXz/pQhFJ4dJHq8YpckOHByunUiNsF4JJ/UwGdsKJilJ2nieIJZzdFuEYb/1W+Jd323Yeob1+KJpNErgUD33iPtsGUuPOhHsjqDUjChiR2aFEImfKSngV4kVKTiWxVdcJCzrgJ5WaXMklA== 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)(10201501037)(102215026);SRVR:DM2PR03MB560;BCL:0;PCL:0;RULEID:;SRVR:DM2PR03MB560; X-Forefront-PRVS: 0742443479 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;DM2PR03MB560;23:8/cSfHhEcHNtNWOwJf6OlO6cSYONtn4Jvh7iQza1ky?= =?us-ascii?Q?LOL0TInPAqPNx+SPhkzv3V7oBsoRx+MRH3CUQdSvrfLRoIBEbNsAsgwxg8iC?= =?us-ascii?Q?AJp+uQ0RMEsoBEU7C3cBOfiJq5s74qUzERzmQpZoaPNb28kjNHP5YQ7BzACG?= =?us-ascii?Q?WfT75ehFTXYMZ9cI3Y+DaYDlmuQNQx/NxhqmFhKsRLhSvv1DMrtlPpGRAMhE?= =?us-ascii?Q?A05Qm/7Gl8FSEvVn8FsWQkzaf86eczySfEV6yo5at7NnvQGcUSdU1I2gPzbt?= =?us-ascii?Q?ZIZaieJ7tXk0ec9ECt+QOxXTdWk+tWzHFhv0ZwxEAkFGGBBV4/+vx94rhDkV?= =?us-ascii?Q?Tt0lv/JX7jXYtN42iAbbiVGIOxgHttVqKB13YENcTHMsFa/VzXST14K5n8z8?= =?us-ascii?Q?s+e2+VTesfvbMpryE0yWV2yjJ6VcbiCP2bZXZ86Zizs/tBx5SCvLIS/Rr4mo?= =?us-ascii?Q?K+bhhUJ7nLT0Vg4GKhfUoyiUrxPAKppNm18TTwAkLR3OQ7qka8vi5F2o3bfy?= =?us-ascii?Q?yZwMfg6QV35Gyy08TPuQLUQcSSdoFCIoEFBL+YA3qO7b8ViUz0FXutlzkBGM?= =?us-ascii?Q?FzHsdsj7cD0QVZbXaDkAe7eQkp590AJOKpIEU6XIY2zFcKEQ0He45ZHUORJ1?= =?us-ascii?Q?NavTqawzD2ipTK9d5LwJwYPS4HaXmpo5sLjsm6l3dZKGwvg3/VzDlNvIOEOb?= =?us-ascii?Q?RvrN43IBVJr48ldIbhDLJ8gcHFkoIYGeJ5NlYCVk1GGUYdOKSP8gRgRfv/lP?= =?us-ascii?Q?fU8Zq7CvYQRar1WzPhZzk5RwRR6eHT7anXic7LywvYbbGHzGt6RpUNjQNPEL?= =?us-ascii?Q?DDXPfG49zu7OEd5W7uOJT5JKWYAzdUOhR+slLVOGXfD+yFTi2s7l7IiYxNRF?= =?us-ascii?Q?VHCfcp7olQbJWKcDIaAW8nBQVETBa0BQ3SDEuZxvoxV5LyDZ9gnko61U45NV?= =?us-ascii?Q?Pn+QM09s8Anw2QP6I5t4jQJn0PsEUJttgpyPpQyozfDoVRZ8m15HLaeemH9E?= =?us-ascii?Q?c5YP8/fEQPUHCkw+fcJzfigfegGzhw26K4h37ratb8rg=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1;DM2PR03MB560;5:9ypyqDRl/AZRqB8cuSJAx8TB6Vnw9aN8yf7y4lR6mum3997rRwYo+gOEU233Lw9ZTcVvg+N8ad0p7WX0xtNipnCMtw7yH94HwdBwa8MakXKJSHMaHYx/EhloGEEwyEqagJ+uscnMQ2OZ/HPeZS+IXw==;24:4D11/sxMfBJoRRRGYzVLmrx+Tm4q2uDBeNQqiCTVmzoLTVVfMuV+Ui+MuX96ZamYJOjBBUrH4udITwycEch2DrVNJoYmutAzN37BCdDAtY4=;20:B6lHqFmOCyFj6DKJBmwHQsrLWP0AjBgjl4pmfKUa7fMQQHLJ1/CWagDFBAK16LPNK4qJ++F1IIWK+8/KDZL0fw== X-OriginatorOrg: freescale.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Oct 2015 22:16:49.8956 (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: DM2PR03MB560 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 | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/drivers/dma/mxs-dma.c b/drivers/dma/mxs-dma.c index 60de352..b8a4822e 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,27 @@ static int __init mxs_dma_probe(struct platform_device *pdev) return 0; } +#ifdef CONFIG_PM_SLEEP +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; +} +#endif /* CONFIG_PM_SLEEP */ + +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