From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S965300AbbJ2VP0 (ORCPT ); Thu, 29 Oct 2015 17:15:26 -0400 Received: from mail-bn1bon0119.outbound.protection.outlook.com ([157.56.111.119]:12933 "EHLO na01-bn1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1757848AbbJ2VPX (ORCPT ); Thu, 29 Oct 2015 17:15:23 -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:03:56 -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: <20151029210355.GA7674@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;BY2FFO11FD033;1:msgx6DeK0bqe0aSYFwpow0pVMzp587VPtF4Ij7+M1ulmlceOPIZ67N+nO3helN81Qj1d8Fp14DX9cxuKCRJ4FJbf9Rzt1ZxoMxxLDwZbCVUtZhcRxwjQ1zvLny+j79EMqtfWa9VIi0jE5fRqsgFFgTd15eaakGBmsxf59pyxHZPYx4uC7hTdLB5pebl+OdK3qJWBdxNs/sbEQMt9qNxqrDRn2C8MZ1lOUwbUdMe+UQ1zNgYRXWeB2F6H5sZCfURJc11bkWVpAby1yfalgzZyn20a7tqWqsFKbFePmMICrPkoSoiDKB4N7Bc/QC86inN859RHOfkiFYKPHN/eVPV/h6RRNoo4iaoVDpkECPOIVLxktrKdOnpaQu8/IYRSHbhtz/mBW8NkPD7R/BqZlTHUsA== X-Forefront-Antispam-Report: CIP:192.88.168.50;CTRY:US;IPV:NLI;EFV:NLI;SFV:NSPM;SFS:(10019020)(6009001)(2980300002)(1109001)(1110001)(339900001)(189002)(199003)(377454003)(24454002)(97736004)(76176999)(4001350100001)(81156007)(23726002)(85426001)(83506001)(11100500001)(50986999)(19580395003)(5008740100001)(104016004)(6806005)(46406003)(86362001)(47776003)(97756001)(54356999)(33656002)(77096005)(19580405001)(110136002)(5007970100001)(105606002)(50466002)(92566002)(2950100001)(5001960100002)(5003600100002)(87936001)(106466001)(189998001)(217873001);DIR:OUT;SFP:1102;SCL:1;SRVR:BLUPR03MB551;H:tx30smr01.am.freescale.net;FPR:;SPF:Fail;PTR:InfoDomainNonexistent;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;BLUPR03MB551;2:95DVcB9IVVm5Mh7Ya4rEkGEd9XijQNwwpJQ7BWSlTWXqi2fmR4UZMXY0w9IxqU+JbJ8cQpoE8yG1XSvfDfeIvlS78sjbKD86Pwyeea6WMJJ2KJMsCm6XM8Umbu/a5Z11MmCy25zjcsQ46uvkvH2RcLi2C2pcVfFtEnP4r7VR+h0=;3:g3YIG5Fm/e3GbRuq+XGxBRJL/5Kx+Kxp8IJQskiVhW6y9zY56GQ/e8SE/39YGYfDt4gI4BvCofb9vx/Wugdo36pM7+LOBxcRz8CYqDcp/PZlum7ZlQYopA/w7ZNAcel4eOAe26kxmvpSQC1WXhaiN6BqP+LjLRZW0q/1AkYX4i5DSzuWlnN/h4JBe7smE4b9qoOdbcpyeuW8t8syvKNHr3su0jJp7Rtoo7Tm0YW3CoM=;25:LPGpiQEEQfhoIwMmcFBesQjYhfKxYm/9SyjEzqLLlpRcG0U2JXnqCkzDiKnaGgaSIpuaSRAt1f9gLqj6dfmXvMTHSNSv6a834UtsjKS37Uq8pETWhF2v3bfOmMdTqQIDusnBVSEj8W0mxFnyl2uu7ID9BfX68YWima5g0NdMQGxgfcLsdSkn/NIDI/Op5e/R6o/Wh3hjXFVNzHSTZiTgTD3Me4huo7k9UmVE8bRMGarVzBlmt6z9xh0/o2h+Uxz06OeM4wzcdseSB2LIcAcCYQ== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BLUPR03MB551; X-Microsoft-Exchange-Diagnostics: 1;BLUPR03MB551;20:A9BCXeaPES+13A74OoFA7m5kVyM3E1Jx1+1iZIwzi4+g23PUTl8lr+8qlcE7Zr1mp+fnq3Yi6HiAU7GnaADVQdHEEPvk2OYuxk9dwzDl8h2esnklWcjJEd0UyHi85Ij4hW8Rgl/mm/2mjrhZl/EWyQj5cQCYu+NGHLpv+z6P7lqpZySjoqPAy+hWeGA0tI2smGpsSYkrwUuhDcDq540WSAv8zKh0+CHwKS0PHCF+Dsnt7JaEmvkGBPdB8upLXNiJeDenBVwzJQqCyP4v0VxUGsl8QXuTenLStkCzHzyYoSo06iSpT/l1AkS6PXdpl/IO0aClHxeEXOkXziLi5+V0RP1GpDVxLPkcbuEp3v/btTs=;4:tdW63YfuRDLZHIXmqqcYRxKHHj9nJ9w3Szs9aQ3cT+uTO+8k51CdaEM6a872/ZJkQw0ASWj9r7Kt2Eef841fFkls6dZg6AGGoSLlZCSvn2o76u1xNdNICfgcU/Ol0PI8FYbnO+8F4OIPmbI+nw1xMMld2Ludqldf5jrFQttQ3pSUxPRFm4NtWEZPahGXkUhlXP9n8SMjcwxBqKlv+1UnLnEb+5feahokufPgLXSetgS9PuJQBR0rOpQaCJNyr1Q5cl339yql2pj5Pt4B6Mpzf1QDMOE0Py9o3inZkfzuTDIZr+jEagd70eWO9v/rkHrQGK580/5TKEspUqzLuN+yYCfR64nLvWE3z0WsADLTXf45U1U21AmG39KHZwaIVdAZD2aeRbfMQtoD4hPxEddEzw== 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)(520078)(5005006)(10201501046)(3002001)(102215026);SRVR:BLUPR03MB551;BCL:0;PCL:0;RULEID:;SRVR:BLUPR03MB551; X-Forefront-PRVS: 0744CFB5E8 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BLUPR03MB551;23:0x+5zQzXKdUsXe3Em98tDpqiggnw+KuhSTIssmkKGa?= =?us-ascii?Q?+Bixvdg+NnBHrUE60c6I9sqySvzZGEzt0reLIhD0mEmxqFHv4rQEg8RVw9PH?= =?us-ascii?Q?xdsXOXkMCE/0CeFxhrh4CVTc0Lfb6NKL3WCPUJeAP7W0hjbcmniRBGM2JPoa?= =?us-ascii?Q?7xmTUPnNbEziWo4ZJyzjhZZySI3NEtVWsPfu833ZkhdeaIOW6e97Ppmjz4Mb?= =?us-ascii?Q?DCcQr50SlpJTJUpzRQY6rq0tl8/zEIhe7WuDj/RzV8Ckzw6z8ej3DPtcDxDF?= =?us-ascii?Q?AicrTWzKPyYRmWkxfxYz8tApygZfHoqyqiG0uguMJfD+oLdkJta45vhlH/2D?= =?us-ascii?Q?Duo7PYF+uZI4O29o9xnwK4wAwISHcojHYqSSRtIjIAQ/0AFxTx0oTICi/kMh?= =?us-ascii?Q?gYMz8dXnFjZPzH33SyeciJjDTmph4nLsbAfWZnlQnWL3Z5zs9ha6HlRddzg+?= =?us-ascii?Q?j2yuYh666rDEEBXQvc6rITU9pyIG+nK+l8dGx4EwJGQKwXY0+Lcno8cAkjtu?= =?us-ascii?Q?0QphiNCp0y6PvG52lChtlj26upuI1omdxNHq2oka8wdmASVxl4sto81jHTTy?= =?us-ascii?Q?4HKjqIaVUkjpVPs3d1iXHEzcBwy22RaYcFhr6/jy1fiTTZpm4JnCqyFykZOt?= =?us-ascii?Q?FcTSfoFi6L/s4VTyoZD1fQ6ZO+S+vasB12KuYft+V1+Vc2bplAQMKwB5t2Bh?= =?us-ascii?Q?2UfJxgIa6P2W/s0grjtVIFfNdKcpnJdteEqg/IH4l9ipY0wxcPaMtz/cUDG3?= =?us-ascii?Q?y60WW41TbnMp7EbRbtJg9PVltXuEadDJ7SeJTKKGIz2+mv7xBakbJMJ+80X5?= =?us-ascii?Q?0TLNrE1GiwZAPzk39xpnxqaZwLpiFQnVIr1En16P0PWU0gQ58nUqgyYg87+4?= =?us-ascii?Q?io1HHd5RRaac3kNOcqvY4L4wACNidrTkom5Aj60DaMu8TyLFGY4QNQpDYX4I?= =?us-ascii?Q?kvE/0qZFE5X7v10Nct3AtBaBAdi7Jn4INCxB2B/tSI8v7gIxeEddDTmKy+F+?= =?us-ascii?Q?Y227Pu+2o4xWPXxeMZUPWWFbpCzEhfK9erUDSztuuLY30rM2Iiy4WAj0WAEr?= =?us-ascii?Q?6kUQzBpwlEAKLnd86CJ+hQ20PyKAlE9wldG1hBauBNyID7CDR6H4QT/3fqpu?= =?us-ascii?Q?Qp+fvH6fAVss3VRKd4bgshpDx0iM+0?= X-Microsoft-Exchange-Diagnostics: 1;BLUPR03MB551;5:1idIb4zZH2kfocZuihX98JId8MfSjdfhLglBVOammzdv2oBrsr4ruDL5qZTcu78f8xisZscCHXNWYxYiDJnREsF7cyTs4VLlkq2ZGXjKrr5IR1a5UAb77MeDnmLPhZYtJmlIJu49qdy3Dn2rmw3uOQ==;24:5kmZxGjoaqVDNEP2wrIaO8IWjX6bH6XyPEVkRCFCXCnQF36qU/vQcb5amTO11w0ibRD4k/rSieeASeX1/HlPXpMZn7096fktEa3ZJWwNN58=;20:8p1oQ0wQ77M7kBGJwDLUBCbCXih8rUliREE8sSUAsk5qzypXYixNN7v2Lzo9zGao1LZhDDcgTy6KM7dr0flzIg== X-OriginatorOrg: freescale.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Oct 2015 21:15:09.7739 (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: BLUPR03MB551 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 > > [] > > > 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. > it is err_clk_unprepare > > + } > > + > > 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