From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758573AbbLBXDn (ORCPT ); Wed, 2 Dec 2015 18:03:43 -0500 Received: from mail-bl2on0101.outbound.protection.outlook.com ([65.55.169.101]:5824 "EHLO na01-bl2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1757985AbbLBXAU (ORCPT ); Wed, 2 Dec 2015 18:00:20 -0500 Authentication-Results: spf=permerror (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 v8 2/7] dmaengine: mxs: APBH DMA supports deep sleep mode Date: Wed, 2 Dec 2015 16:47:41 -0600 Message-ID: <1449096466-18064-3-git-send-email-b45815@freescale.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1449096466-18064-1-git-send-email-b45815@freescale.com> References: <1449096466-18064-1-git-send-email-b45815@freescale.com> X-EOPAttributedMessage: 0 X-Microsoft-Exchange-Diagnostics: 1;BN1AFFO11FD037;1:vPVoeEv1N9HJrGXxVpf52RKhtQrf/U2+D0x7GV4GUojomkmDQRdy7l/3MroTYKEiBq9JzebiqMTKX3Sb7eCwy/nYEoABl8lbv5aHo1Qt4Wmc1WRRn1RdHY9kEopEzGJsACnrTa7yKfE6JCynXgo8bTFsQpsGjvveu5ZsZkfucfqbwSRHRK4ab4WDI+7PXDe2kIIYjXuLqjKm+uBPJTsNodDFDt4TndnyFuJHlrKlfm3JuBDqIP66P0MI8Sin99D2woFkH4UQm5IgeYQtWrLXI5XjjfDLdc7xhLKphYohopKpSxXORIGG1rCGGYdj7PH7f1Uhxj1tfBX+mAbwhddeu18Dpgf4sB1wXLOyIgSXk0YiBdIF7orj6bdCCEJ3XbR+pub1EMTe0T/fscvOeHBgoKWb9wiHNv/2w0iOu0rS7UQcMtXXFAiGBrCx5/SDbaHc X-Forefront-Antispam-Report: CIP:192.88.168.50;CTRY:US;IPV:NLI;EFV:NLI;SFV:NSPM;SFS:(10019020)(6009001)(2980300002)(448002)(199003)(189002)(1220700001)(110136002)(81156007)(47776003)(6806005)(1096002)(92566002)(104016004)(5008740100001)(5001960100002)(97736004)(586003)(50986999)(11100500001)(189998001)(19580395003)(5003940100001)(19580405001)(48376002)(76176999)(87936001)(50226001)(50466002)(85326001)(2950100001)(229853001)(77096005)(33646002)(106466001)(36756003)(2351001)(217873001);DIR:OUT;SFP:1102;SCL:1;SRVR:CY1PR03MB1438;H:tx30smr01.am.freescale.net;FPR:;SPF:PermError;PTR:InfoDomainNonexistent;A:1;MX:1;LANG:en; MIME-Version: 1.0 Content-Type: text/plain X-Microsoft-Exchange-Diagnostics: 1;CY1PR03MB1438;2:qzDjMuq2fSQ7E1eHX/syjFHH1VMsdgALb/hlYqkUv0dbIdZRs/cDc+ChQhWPFbefRpuQh6Lja3H/vr2AR3sdFWhBVyffuYK9gNtM1AmkqSBMEW2VSXGyzpCSvqZCx/Dd8+HEz9CbzMd+KSEEjcDQ7Q==;3:yjfKcZ7H/jO1kMvm7tWfMcNCNTwNJj2zVaAq3MMBu0d0PXpT6i2vnkoBnjVVQsKJ2pBqkEocX0bFr9UokipY8abMWxgOJgv8aQSt4LqUgMueLJpqpVUIsyTPTfbr+jAxGV09lRU6wTx3Og2MuaCHVSLI7R5UM47HJXV/rqklYsSC4S/CgIKQtIwTxinpnbhlTJL8U39bhtGI9CMkq6WfPY24iN+ciGDzFq8SZH6yaNs=;25:enNFSLvc4XwTaNZftHbLQubBk4poPcdsIg1HDiROZXDGsjvD6T3DtV7WDoBcQqmgYuwpQu8aaB0BQm6rO8SSrESdRknDajk5LP+s9gOGf88bKEVkUrwyBD22HOMzGQGNtnfGGG5aSnM1sPqTD+6+3G0EAbO4s4saXBrH0SjvmCQawv+qG08VH8DizO5PLKU0MRiKARIb9HVsOYm4Of7+s9RsyjyI4fq27YHFJK+i9BzdqJ3rqSLjGO8m32HSNXUY X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CY1PR03MB1438; X-Microsoft-Exchange-Diagnostics: 1;CY1PR03MB1438;20:aTu7sB6VKdevbpcWmKjx4GW7eB9i60Z9BuZA534DkEgRakO50Bq2XDMiPt20EWVR6jYq/rhOI/Ujm87GA9FYOK5mbZqpqBn6rEkymMNIM5z824E0q1IlA0Rcr/V0mAQv0ek3CodkbZDRg6S6jDTxj2VAa/ZOmrOz3DB5KUIVQCZzG6O8gcnP+q6xPeJgvzJ4PYx9wTm2iYRAzAPOOWLfaF7nm8ArU6/LLeONe0y6ORIrb0i4/HvGkxDRWS5mrNwEzIHp7DRXtSNxyG3DPZ3CGiEu6OzQoAIE/H4UzXs+KqwSBGPhjvQ12vKQM5Bf/WubTQQqIhdqM9YX5sP/3C0YXaaiqWsY0Ar47UTugwbFwKs=;4:zdnOYi5rQfs2ePl4IiNd/+oEo2D5GE+9McYiyCDIyGioqlI0Dc8C6EIbUwGpdbCi/Y8jqnOfPSUd4yAeb9scHakkxk84g06tOcRZePJb3Y3YQysh4NqdaJU+BgL2Bp9ZJmKCYAvalgJ6Hp2phl2Dh2PKZO1jy3U+Jb0/s/g5iiCbLmaMnnwypmyxqJWhyToikxHpGqVhCEzM3tPybtt56TUzyq2jdTQTHvQk98BZ2Blv0/ksgaVCE7OVLBCt/KXIcFewx48XSxdTh8Zp1ddGvAmgVhdr5/lENzE7TEMNCw+t0rm5rsyzsUwY9LvzlQ45L79e9dswUPjgNSo5hJJHd0l3ogf8q7yiQpsuYlDEamRTAkTyYA/RdEBHxe5qV0RSQBh6aoP3f4NCjiMNZhfJ4E5fWIhjw/UNhzSMjrFUgm0= 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)(520078)(8121501046)(10201501046)(3002001);SRVR:CY1PR03MB1438;BCL:0;PCL:0;RULEID:;SRVR:CY1PR03MB1438; X-Forefront-PRVS: 077884B8B5 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;CY1PR03MB1438;23:Li46G7YOtpHXODIlbzGGt/k70zyYJvRAKLTe/j6s6?= =?us-ascii?Q?hMynSQXiRX6A5xCqyJLxWi9qIkSjF2mLUMB8AI8wqZyEW+9GicPS/sBn8W8N?= =?us-ascii?Q?AShmRNySsoK0+9IcXx0Jm4+9EdlHDWofRZtj1smDaw5Isj2qnlXp9hYEBr1Q?= =?us-ascii?Q?NfmyKSx2m6GI0sl0LyeaTlY4ETIK3dwNyhrs7TIK22olKcarj0gGWXtvF64m?= =?us-ascii?Q?vUOuRZtPoPoF/drrIBRUz5ZvY6m485pQyejrbTe3hHAACUpDYVISKsx99F1N?= =?us-ascii?Q?wwlquZ0mCxoM2v/qAmGkhSMOM6sdaUB+4Osh2MgDZy2u8IxcR2BY9awvpPU2?= =?us-ascii?Q?gn5Wk71LpEyrHYdIcR+h9DRXrSW9Il7E3Nugm8aoOSQMW/P87l2FLZDEwIOP?= =?us-ascii?Q?0SBS+41zOA/8xYhqfsmLzhAWx4P9jHNcvGLz5mA1JJS1V/nBPlOrUFvdNdMR?= =?us-ascii?Q?KPvZprxNearqgCqkbaVK7cUOE17I0jHqhEykMFJYch6ubxfXY5c5Dxbxo+RH?= =?us-ascii?Q?+pkjQo8A1VmvxJVFRDorg7drOi3z/remvTBWcmKuWaDuti+XV1Hbk3OeN4Wl?= =?us-ascii?Q?wB/MGXGpp1A36SFgN+T6fcrCq/PP0E9Ef9jLoWxLRTbmDebjOmq22OLOu307?= =?us-ascii?Q?ssZIiTziPlfP/O1lFH1njytOeOh8GWOEuN/WqWvf+5jNmkppwtzMkgs3U/0/?= =?us-ascii?Q?ykahordnQJS4KQbC/T/lrtfbJHVRuPDDriVuyTSSiJKS9zBlvUYBicAWDFHF?= =?us-ascii?Q?qvu/xq22EwMiIDfL3MoYbE6H1lD5kCBZRFcayEzPutsVI3VclL/6XX7T8maD?= =?us-ascii?Q?16QAVmdxCizn+cwqmUdx00A9TwO8els77Ft679ZWEFBDmLBq0KVqGkSnYLml?= =?us-ascii?Q?vpYHp0f1vC3jB/tvxJARY6HnCFYW8pNhVjiFGID4VFcTTlfVyvPeEolUIhR1?= =?us-ascii?Q?8YT/3iVd5xlNUxrXkSTHnH8X7ek+miMdyUikhHgFc8+SYaQeVbr5oLB5fglU?= =?us-ascii?Q?fk=3D?= X-Microsoft-Exchange-Diagnostics: 1;CY1PR03MB1438;5:uP+Ff5cmNKw0lsViVjJe0VtFIAGdJTa5OszPh7tK8XO2Kfkh1zPfavL6UV+x8kWutKWn6LC1ZnYJKfwgcIbjHPwD/ItNtZ64gn8YFIhNMx/Tp6imAh6f8v4nb9IFqm1UUK3guB8/28RKteDqhjX/vw==;24:xPdg+nj1c3JEPP/SL9tADQHGhB9WaG3V7Unhn64xblGNW7LavZTJ1+IqKcs2u9viyK57KmwpJPbC8hZsu+DReLzsUaQvqZ2IjT2fdtU4icU= X-OriginatorOrg: freescale.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Dec 2015 23:00:17.2348 (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: CY1PR03MB1438 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 | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/drivers/dma/mxs-dma.c b/drivers/dma/mxs-dma.c index 60de352..eba51fc 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,23 @@ 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); + + return mxs_dma_init(mxs_dma); +} +#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