From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758071AbbJ2VUh (ORCPT ); Thu, 29 Oct 2015 17:20:37 -0400 Received: from mail-bn1on0138.outbound.protection.outlook.com ([157.56.110.138]:54080 "EHLO na01-bn1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1758025AbbJ2VUf (ORCPT ); Thu, 29 Oct 2015 17:20:35 -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; Date: Thu, 29 Oct 2015 16:09:18 -0500 From: Han Xu To: Andy Shevchenko CC: Han Xu , , David Woodhouse , Brian Norris , , , , "open list:MEMORY TECHNOLOGY..." , "linux-kernel@vger.kernel.org" , Vinod Koul , "Dan Williams" , dmaengine Subject: Re: [PATCH v7 3/7] dmaengine: mxs: add i.MX7D APBH DMA support Message-ID: <20151029210918.GA7854@chopperman.am.freescale.net> References: <1445983540-27155-1-git-send-email-b45815@freescale.com> <1445983540-27155-4-git-send-email-b45815@freescale.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) X-EOPAttributedMessage: 0 X-Microsoft-Exchange-Diagnostics: 1;BN1AFFO11FD021;1:pFV3ENryuCT1ol/75BbEwd2SQHE8GqROjLBCT7CtUUumn8YFNFMTzndWaduP97dlwTXaiJ6Y2gFoRkpostx5Czwl4YVeqKzrEChp6t4hbtFYE2PnRlpDgcFPBmDI6kcqOPWoI4cLlwYUX2VOBf+UEPWSUUGHQntybGk2/tU2+aczobmEj2umP77CERhCMLc1Y1WgvuHN/dNHEUnF0QbEWp1lyHkXDDG7oCuywWhX1oXGDh1ECYl6tdMucPwBSc78Z6Ck8q8/l7vQSgsnA0ERahqGnnDBMixzjQ6ljWhX3T5ONevAoR5AhxlBWiZaTFgoX4/AAkN+K81vw4Y1pKc+D3lxOPt5nOkKwQvA8ycwDq8yLC0gWRtaViTwJF6FDGR+adytDpRw4l+iv9F0eB9n+g== X-Forefront-Antispam-Report: CIP:192.88.168.50;CTRY:US;IPV:NLI;EFV:NLI;SFV:NSPM;SFS:(10019020)(6009001)(2980300002)(1109001)(1110001)(339900001)(377454003)(199003)(189002)(24454002)(2950100001)(46406003)(83506001)(85426001)(5001960100002)(87936001)(77096005)(110136002)(189998001)(97756001)(76176999)(106466001)(105606002)(11100500001)(54356999)(50986999)(86362001)(50466002)(33656002)(19580395003)(92566002)(23726002)(104016004)(6806005)(5007970100001)(5003600100002)(47776003)(81156007)(97736004)(5008740100001)(4001350100001)(19580405001)(217873001);DIR:OUT;SFP:1102;SCL:1;SRVR:BY2PR03MB554;H:tx30smr01.am.freescale.net;FPR:;SPF:Fail;PTR:InfoDomainNonexistent;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;BY2PR03MB554;2:4wUnQDE4w8eSBb49jrXFRg9h2SSaEEe9AnwhaOoKWjMRFPwEZ5HngX7owpBLLMcbxYnuUoMSbZRG9GSVQ7WKhtmkvRPNlJo6JHaZGOulcHuLoyKHq3Xf8N0iJSn78MwpBd4aSjlO5QzKgf1esCHmBUEH8k8qrgWwhnAAVdqMklQ=;3:FQ+D4yJds8js7aVzVO9Gkq1eveouXspbJ6wLAI4Uo8WwhfqXZdeIlaQ+WlCFsNsYJHydPzh+hQ7ba2EWr4iH4qJoyEjE07/6dCBjuWr+r/vyMrulvd+MyYLWlHR9utKv7ZpM+kyt1/1Bf9fU0enefQJK/cixE1RAODKyrgO9PB9EhB0VjX1krGJgut0AA+7E5PX9AMyRVrRE2FdIbkOp+XSmEMnxp/DBLQw4kg5LP5k=;25:bYarzVnAojvDd+oPDM3cZj66yX7+NTJJ/27Ml9fybjN1IFz1NTSgKJEu0fYI49Ea1OoiLxAHngXC/HH4ImmwH/kG1UhBMMBd9v/SVg9q6vo4TPMG/fuhOGol9NG9aSZbczslQanQR0ETPbcGUYcQaTEKcpzE7YzApWg9J2Ea2gftP+rl7fJ+O9bFQq5v+QggjZSwU6NdTLIP/S4CwIJaYLHDUEmQnznSik6ju9tHMOlZclhBnwWxBlP4vlUGlpFt0C4k37Yu3TqEILXUD5L0jg== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BY2PR03MB554; X-Microsoft-Exchange-Diagnostics: 1;BY2PR03MB554;20:+66FLJpUKH5+Nl8gwDC45StbhdNQCciPjcKmTNGHCchbE5rl/b8M5qGSvjH7JQkWnF4jhD0Vqp8Teyf6Q4UnO+xDv+0gRxmLWVX3G8guC6DldQmqrUqMLZ2ovqT0Ewp8YVbtzq1v3jJJ//0qc44S2rOJRMIRu5aQQatR+qEPgU4Np0bI7IiaorLX+XF9uN3FWIK0wA28eMZWY/DCkXPVU2Yqu7PP6Ri8t1SD9SGk7yenOaRYh/R6EHfTysmXE7EnBewY7JfoNNN6q9YYWsouKkpbdd4hF6gDpHB59R7n0QCvKLKavPmKPO7xExP/jjSD2/amHl9VMCXSAWvqCqe5RJ6djdQUYvfHINRdPNDtcPg=;4:7Ho0/M91v1Apa76T1MtWBr6CY1zg5ZTgTLwPgrJy9tKmmhbmlCYmaa0KsslJD4tVuY7PyC0AUEFOXOCV56Ikf8TNwIueps47bqO48eHQus9qRwGibtdahkPQLL9Ec1cbMZ0ohvrJbU9or62BKpkJC69RZLk4kO+81mycaiMP+6RkySX2i6OlO8hvRfBhoniuxVKlI4HSschJaKugq62NJcBC5qk+0wEsPi17PFMtfrj/2PaVF3OkGqy+5tWkjGr9zcl8McX0PK2CxWVQGIa0dupuu9DtQRvtpfvoWiI+IkOSEow6Tq+luHmZMac/v8l1ujYgbVXcsf0xSpcGHumqA1mkRrDSxVlBHtm5SdixvirEvSN7BReoSgYhz1lMEp8wKb2o+4bVu8OLP1gBnt3paA== 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)(10201501046)(102215026);SRVR:BY2PR03MB554;BCL:0;PCL:0;RULEID:;SRVR:BY2PR03MB554; X-Forefront-PRVS: 0744CFB5E8 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BY2PR03MB554;23:gJNe2YU6vVMMzXFCyfN1IWyoxsG2bFH1L4ku7ll0mK?= =?us-ascii?Q?cAQWTTCrkL5JzCdu3mE5BSk2hWMcNUL354l5AxHbxjJv1sN6hnUrkvgbrLHn?= =?us-ascii?Q?9bnKgIa0mbbKtlBoInw5U07+Uu7gO8nQF6iDTzJWxHhvRSw9WkOJaDnZGsff?= =?us-ascii?Q?Dw7HVYh6wenyQmzFXsDJqOnPaxYClol3EGybRO/0nG7PBlS0p2yDwBlcIGZ7?= =?us-ascii?Q?J+QH3wIvBul4zyMwDd/9h7FM5rRRFBqR72HGrn2OlfwIQhBeql5igPNwbY2V?= =?us-ascii?Q?D1J3bVPMo9IjT7sWVhlGHRwkXlmvfaJ5cJQGUauUFwtJrOY0LCtjVRTg3q37?= =?us-ascii?Q?uWCZteJ0jt7JdLXITkXh5EKxXjAFXRa/g7LeIEkSn/CvUMKvkpIaCoBGMtTz?= =?us-ascii?Q?KQQEtsBt9PyqRqeIWfkh+PMZgvLwfPx+aKP7E/fapABRpsAp4uWiEki6Ponr?= =?us-ascii?Q?o2TeN/JUo0t2MgBwL1v2fQguIu75XAzK/YyhPx9b25tWcjw8OAIb6UcVNSqf?= =?us-ascii?Q?gmG7Hj9AF+srXqNBV5s9xbYtMnWrPVP18uw+aGeRYCZDoU52JQm7BJIbEJ9U?= =?us-ascii?Q?8ICu6aXBgFGNL1JNSehcKb5JZvdIVYqobHJ1LrHacitWsfZBWI7VrXfCr87s?= =?us-ascii?Q?w37yP5uvCmTpekQd8i6/hraQyft7IQUWrqd/oOixJoQtNMojD1RW0iwcs5Ez?= =?us-ascii?Q?Z8XeRlhhEn7FHkmAN+tlPPNOQmUnSvccdvUqvBCKzwRLHY0o3W8VWOiow860?= =?us-ascii?Q?fkAFizdHCSnd6NY23wOXywDwmxvGFgQ2CqEiD2S9pjd/e3wziWZ0zZtK5t7I?= =?us-ascii?Q?wSBDI737JyhjXQLHTWqtunKR0f74HUbPNid67CQeo0yvxPTkRMVahvUOekB1?= =?us-ascii?Q?4EjI5/Y4O5Gkvxi4sz1sWJ80JhFpx1eCH2BDfxlSPGD9i0ES54XKTy+nFvT9?= =?us-ascii?Q?p4nu3uzBiuZI54xSgrXNmGHQA2mnzIUPbpIUjmmuh4kGiDGBDEfHaRb6IcBH?= =?us-ascii?Q?S2Nee2y7cxFxYzBY/vl7ItKQdZJRYddCQiY+OQjU4h6OhRHMZ8eAwRksbtAO?= =?us-ascii?Q?ZnsIn6JBtFVOhgSleZAyGR5+CH9m1ZAEaNFAzxp/AQ/0k7BlVgxcMG4B2qtS?= =?us-ascii?Q?1dGr03ex6l7K4RQmvVrVZH6rrbd4dO?= X-Microsoft-Exchange-Diagnostics: 1;BY2PR03MB554;5:QrqPju+BLUWI7GldISnswcOCiVQNDKCbzLDF/vQsx552klK/64LIRW1/+Etx5mdeCJkRqm/0ip5oqMTe+Cc5yhxp47N6u9nS1TBX1MDFDNcUc8CsdsS2RCDPtAqLO58BSWFjBx8qihiUFsicrhnd0Q==;24:gcZcA5s5LzY6gB9RNYw+oiYBSoKdJlAQxacFXVwiy9CpEwzw25qGykhMKR1QX9P13uupZO7SKjz9ak4lFnntjqBAd+VtwErNZZcAv2DQ5Oc=;20:QkQVxCzVBo/Gym3iY92US9ez0G1x1avLetkD6H8y7sOZ7E0v5PAGEqhpe7g2uaLPlWK6B6/iewFStQ0vxyDIkg== X-OriginatorOrg: freescale.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Oct 2015 21:20:31.4214 (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: BY2PR03MB554 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Oct 29, 2015 at 11:08:10PM +0200, Andy Shevchenko wrote: > On Wed, Oct 28, 2015 at 12:05 AM, Han Xu wrote: > > From: Adrian Alonso > > > > supports APBH DMA on i.MX7D by add extra clock clk_io > > [] > any comments here? > > MODULE_DEVICE_TABLE(of, mxs_dma_dt_ids); > > @@ -440,6 +448,13 @@ static int mxs_dma_alloc_chan_resources(struct dma_chan *chan) > > if (ret) > > goto err_clk; > > > > + /* enable the extra clk_io clock for i.MX7D */ > > + if (mxs_dma->dev_id == IMX7D_DMA) { > > + ret = clk_prepare_enable(mxs_dma->clk_io); > > + if (ret) > > + goto err_clk_unprepare; > > Perhaps err_clk. > > > + } > > + > > mxs_dma_reset_chan(chan); > > > > dma_async_tx_descriptor_init(&mxs_chan->desc, chan); > > @@ -450,6 +465,8 @@ static int mxs_dma_alloc_chan_resources(struct dma_chan *chan) > > > > return 0; > > > > +err_clk_unprepare: > > + clk_disable_unprepare(mxs_dma->clk); > > err_clk: > > free_irq(mxs_chan->chan_irq, mxs_dma); > > err_irq: > > @@ -471,6 +488,9 @@ static void mxs_dma_free_chan_resources(struct dma_chan *chan) > > dma_free_coherent(mxs_dma->dma_device.dev, CCW_BLOCK_SIZE, > > mxs_chan->ccw, mxs_chan->ccw_phys); > > > > + if (mxs_dma->dev_id == IMX7D_DMA) > > + clk_disable_unprepare(mxs_dma->clk_io); > > + > > clk_disable_unprepare(mxs_dma->clk); > > } > > > > @@ -701,9 +721,15 @@ static int mxs_dma_init(struct mxs_dma_engine *mxs_dma) > > if (ret) > > return ret; > > > > + if (mxs_dma->dev_id == IMX7D_DMA) { > > + ret = clk_prepare_enable(mxs_dma->clk_io); > > + if (ret) > > + goto err_clk_bch; > > + } > > + > > ret = stmp_reset_block(mxs_dma->base); > > if (ret) > > - goto err_out; > > + goto err_clk_io; > > > > /* enable apbh burst */ > > if (dma_is_apbh(mxs_dma)) { > > @@ -717,7 +743,10 @@ static int mxs_dma_init(struct mxs_dma_engine *mxs_dma) > > writel(MXS_DMA_CHANNELS_MASK << MXS_DMA_CHANNELS, > > mxs_dma->base + HW_APBHX_CTRL1 + STMP_OFFSET_REG_SET); > > > > -err_out: > > +err_clk_io: > > + if (mxs_dma->dev_id == IMX7D_DMA) > > + clk_disable_unprepare(mxs_dma->clk_io); > > +err_clk_bch: > > clk_disable_unprepare(mxs_dma->clk); > > return ret; > > } > > @@ -803,9 +832,19 @@ static int __init mxs_dma_probe(struct platform_device *pdev) > > if (IS_ERR(mxs_dma->base)) > > return PTR_ERR(mxs_dma->base); > > > > - mxs_dma->clk = devm_clk_get(&pdev->dev, NULL); > > - if (IS_ERR(mxs_dma->clk)) > > - return PTR_ERR(mxs_dma->clk); > > + if (mxs_dma->dev_id == IMX7D_DMA) { > > + mxs_dma->clk = devm_clk_get(&pdev->dev, "dma_apbh_bch"); > > + if (IS_ERR(mxs_dma->clk)) > > + return PTR_ERR(mxs_dma->clk); > > + mxs_dma->clk_io = devm_clk_get(&pdev->dev, "dma_apbh_io"); > > + if (IS_ERR(mxs_dma->clk_io)) > > + return PTR_ERR(mxs_dma->clk_io); > > + > > Redundant empty line. > > > + } else { > > + mxs_dma->clk = devm_clk_get(&pdev->dev, NULL); > > + if (IS_ERR(mxs_dma->clk)) > > + return PTR_ERR(mxs_dma->clk); > > + } > > > > -- > With Best Regards, > Andy Shevchenko -- Best Regards, Han "Allen" Xu