From patchwork Thu Feb 14 03:40:05 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Padmavathi Venna X-Patchwork-Id: 2140181 Return-Path: X-Original-To: patchwork-linux-samsung-soc@patchwork.kernel.org Delivered-To: patchwork-process-083081@patchwork1.kernel.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by patchwork1.kernel.org (Postfix) with ESMTP id CC4583FCFC for ; Thu, 14 Feb 2013 03:39:46 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754340Ab3BNDjq (ORCPT ); Wed, 13 Feb 2013 22:39:46 -0500 Received: from mailout4.samsung.com ([203.254.224.34]:24184 "EHLO mailout4.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753055Ab3BNDjp (ORCPT ); Wed, 13 Feb 2013 22:39:45 -0500 Received: from epcpsbgm1.samsung.com (epcpsbgm1 [203.254.230.26]) by mailout4.samsung.com (Oracle Communications Messaging Server 7u4-24.01(7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTP id <0MI6001GZY5Z1UD0@mailout4.samsung.com> for linux-samsung-soc@vger.kernel.org; Thu, 14 Feb 2013 12:39:44 +0900 (KST) Received: from epcpsbgm1.samsung.com ( [172.20.52.123]) by epcpsbgm1.samsung.com (EPCPMTA) with SMTP id 62.35.03918.08C5C115; Thu, 14 Feb 2013 12:39:44 +0900 (KST) X-AuditID: cbfee61a-b7f7d6d000000f4e-bf-511c5c806974 Received: from epmmp2 ( [203.254.227.17]) by epcpsbgm1.samsung.com (EPCPMTA) with SMTP id 91.35.03918.08C5C115; Thu, 14 Feb 2013 12:39:44 +0900 (KST) Received: from padma-linuxpc.sisodomain.com ([107.108.83.35]) by mmp2.samsung.com (Oracle Communications Messaging Server 7u4-24.01(7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTPA id <0MI600N0PY5X1F30@mmp2.samsung.com> for linux-samsung-soc@vger.kernel.org; Thu, 14 Feb 2013 12:39:44 +0900 (KST) From: Padmavathi Venna To: linux-samsung-soc@vger.kernel.org, devicetree-discuss@lists.ozlabs.org, linux-arm-kernel@lists.infradead.org, padma.v@samsung.com, padma.kvr@gmail.com Cc: sbkim73@samsung.com, broonie@opensource.wolfsonmicro.com, kgene.kim@samsung.com, jassisinghbrar@gmail.com, arnd@arndb.de, vinod.koul@intel.com, grant.likely@secretlab.ca, jon-hunter@ti.com, boojin.kim@samsung.com, thomas.abraham@linaro.org, robherring2@gmail.com Subject: [PATCH V4 1/4] DMA: PL330: Add new pl330 filter for DT case. Date: Thu, 14 Feb 2013 09:10:05 +0530 Message-id: <1360813208-9498-2-git-send-email-padma.v@samsung.com> X-Mailer: git-send-email 1.7.4.4 In-reply-to: <1360813208-9498-1-git-send-email-padma.v@samsung.com> References: <1360813208-9498-1-git-send-email-padma.v@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrCLMWRmVeSWpSXmKPExsWyRsSkWrchRibQoOenmcWM8/uYHBg9Pm+S C2CM4rJJSc3JLEst0rdL4Mp4ufQWU8F3vopZFx8zNjDO5+li5OSQEDCROPrqNROELSZx4d56 ti5GLg4hgaWMEv+6tjLCFG3dvggqMZ1R4tnH/SwQziYmiVtN+4HaOTjYBHQkWs66gMRFBOYw SjRvn8EI4jALTGCSmLhoNTvIKGEBV4nWO71sIDaLgKrEu4dXwFbwCjhJ/Dz2nxlinYLEsalf WUFsTgFniVNbToPdJwRU8+5GFxPIUAmB22wS7xr2skMMEpD4NvkQC8gVEgKyEpsOQM2RlDi4 4gbLBEbhBYwMqxhFUwuSC4qT0nMN9YoTc4tL89L1kvNzNzECw/D0v2dSOxhXNlgcYhTgYFTi 4VX8JR0oxJpYVlyZe4hRgoNZSYT3ZaBMoBBvSmJlVWpRfnxRaU5q8SHGZKDlE5mlRJPzgTGS VxJvaGxibmpsamlkZGZqSpqwkjgv46knAUIC6YklqdmpqQWpRTBbmDg4pRoYhSZp/FyoE6Ea Xy63wF96o0yRxY+JO2ViuxYf6FFn1onnttdz85XzuvPZY/OUv7tTzs3eO/F8qOQ9Fy8hkRMP JZ463s+3ll4meeNgBufr7kibA889Z53i4D2mnF1uuWXtNaMWBymPF/tOreKJ5r+34c2+Ow3u /We01nnK9xr6Rd/yfeeZH79AiaU4I9FQi7moOBEAwKTwFIcCAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrMIsWRmVeSWpSXmKPExsVy+t9jQd2GGJlAg/27NSxmnN/H5MDo8XmT XABjVAOjTUZqYkpqkUJqXnJ+SmZeuq2Sd3C8c7ypmYGhrqGlhbmSQl5ibqqtkotPgK5bZg7Q VCWFssScUqBQQGJxsZK+HaYJoSFuuhYwjRG6viFBcD1GBmggYQ1jxsult5gKvvNVzLr4mLGB cT5PFyMnh4SAicTW7YvYIGwxiQv31gPZXBxCAtMZJZ593M8C4WxikrjVtJ+pi5GDg01AR6Ll rAtIXERgDqNE8/YZjCAOs8AEJomJi1azg4wSFnCVaL3TCzaWRUBV4t3DK4wgNq+Ak8TPY/+Z IdYpSByb+pUVxOYUcJY4teU0E4gtBFTz7kYX0wRG3gWMDKsYRVMLkguKk9JzDfWKE3OLS/PS 9ZLzczcxgoP8mdQOxpUNFocYBTgYlXh4FX9JBwqxJpYVV+YeYpTgYFYS4X0ZKBMoxJuSWFmV WpQfX1Sak1p8iDEZ6KqJzFKiyfnACMwriTc0NjE3NTa1NLEwMbMkTVhJnJfx1JMAIYH0xJLU 7NTUgtQimC1MHJxSDYxrjt0wfy88l4VZ7MeGU0Hl/40aPh9Y1GC71P0TS+E1Fc25u4+enaLc sO3dDv/Ut3Xds8qi++O/Hz536I/ezOu7/3eq5P6LidTnE0q6b+3td4LTpnm/V/cb45qeaFWd E2WPtoqxmu/f7S+jbn7W8Cz7/Tae04reL9on6u9/NOVlaGDf8bXXP7YqsRRnJBpqMRcVJwIA wquDUbYCAAA= DLP-Filter: Pass X-MTR: 20000000000000000@CPGS X-CFilter-Loop: Reflected Sender: linux-samsung-soc-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-samsung-soc@vger.kernel.org This patch adds a new pl330_dt_filter for DT case to filter the required channel based on the new filter params and modifies the old filter only for non-DT case as suggested by Arnd Bergmann. Signed-off-by: Padmavathi Venna Acked-by: Arnd Bergmann --- drivers/dma/pl330.c | 29 +++++++++++++++-------------- 1 files changed, 15 insertions(+), 14 deletions(-) diff --git a/drivers/dma/pl330.c b/drivers/dma/pl330.c index f7edb6f..40e9752 100644 --- a/drivers/dma/pl330.c +++ b/drivers/dma/pl330.c @@ -606,6 +606,11 @@ struct dma_pl330_desc { struct dma_pl330_chan *pchan; }; +struct dma_pl330_filter_args { + struct dma_pl330_dmac *pdmac; + unsigned int chan_id; +}; + static inline void _callback(struct pl330_req *r, enum pl330_op_err err) { if (r && r->xfer_cb) @@ -2352,6 +2357,16 @@ static void dma_pl330_rqcb(void *token, enum pl330_op_err err) tasklet_schedule(&pch->task); } +static bool pl330_dt_filter(struct dma_chan *chan, void *param) +{ + struct dma_pl330_filter_args *fargs = param; + + if (chan->device != &fargs->pdmac->ddma) + return false; + + return (chan->chan_id == fargs->chan_id); +} + bool pl330_filter(struct dma_chan *chan, void *param) { u8 *peri_id; @@ -2359,20 +2374,6 @@ bool pl330_filter(struct dma_chan *chan, void *param) if (chan->device->dev->driver != &pl330_driver.drv) return false; -#ifdef CONFIG_OF - if (chan->device->dev->of_node) { - const __be32 *prop_value; - phandle phandle; - struct device_node *node; - - prop_value = ((struct property *)param)->value; - phandle = be32_to_cpup(prop_value++); - node = of_find_node_by_phandle(phandle); - return ((chan->private == node) && - (chan->chan_id == be32_to_cpup(prop_value))); - } -#endif - peri_id = chan->private; return *peri_id == (unsigned)param; }