From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754042AbbIKUaa (ORCPT ); Fri, 11 Sep 2015 16:30:30 -0400 Received: from mout.kundenserver.de ([212.227.17.13]:64256 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751841AbbIKUa0 (ORCPT ); Fri, 11 Sep 2015 16:30:26 -0400 From: Arnd Bergmann To: Peter Griffin Cc: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, srinivas.kandagatla@gmail.com, maxime.coquelin@st.com, patrice.chotard@st.com, vinod.koul@intel.com, lee.jones@linaro.org, robh+dt@kernel.org, dmaengine@vger.kernel.org, devicetree@vger.kernel.org, Ludovic Barre Subject: Re: [PATCH v2 4/9] dmaengine: st_fdma: Add STMicroelectronics FDMA engine driver support Date: Fri, 11 Sep 2015 22:30:18 +0200 Message-ID: <2502961.3gtPceE427@wuerfel> User-Agent: KMail/4.11.5 (Linux/3.16.0-10-generic; KDE/4.11.5; x86_64; ; ) In-Reply-To: <1441980871-24475-5-git-send-email-peter.griffin@linaro.org> References: <1441980871-24475-1-git-send-email-peter.griffin@linaro.org> <1441980871-24475-5-git-send-email-peter.griffin@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-Provags-ID: V03:K0:+5ysvWFX3QIZL0lYZfIMD/jTLf0FI5ER/aHXxrLSC7wsuPO/suE W3lyi6tNy0RQEnUewfbJ1JOsRbVc9vUQKoMNcvH69FLTwuaS8DeWeZxNvSIN0SJldJQ1W3k FkR3yPbN5cclghx8+SiP/u5bBDu/s0T82T5+8J2ambpTrfEOUgxiWahfelgn6NcbdCacjsd 4j3PScwE04Z1Jmu8AyBNw== X-UI-Out-Filterresults: notjunk:1;V01:K0:lVSSMklFjCY=:MbWA1AjDd3i+bQfWR/W87U GlSACfpjsey5gG7g9lP7T6H7I9XE52TCqyMGd7L9O4W4gWafwOJq4or1FJhspcKYHU6+55fAe kiDJyRihjGjB5tESBe8MQSAOm6nJziAbh3bqplW0Ar9FI1xqbc+KdOSioWjEqDxemeWEZBSRb eWSgu++ft53DMfU02vajPRO29cJ5Z5GMYxcYnyokWKc80qPS7qfttjBb/ugAiuGZL4BkGeT7D ZCVLcrec4R+zGbH8gQezrv2GiS8jHcMEhJ6mk0ck63u6KWWjpcmdgrnVvJf9HHT2KqrBoemeC s+EVZD2zjm2ohlrBJ8hKZq0l4waVUKKXCiBar7sCwlStshR2bZhIotrNIBHia743fTvrSl1D7 hl1znZrYqsdTGkSU5wTT+YH9JXntXVA1AUy2traZ6EW4K3h6Mr/z7b3FlUqgmynYKCaWt4jLN rTL9peX+K5r3ov27mS3tHpS2V645MeelEL2o16INg9qQM/AI9CQF24R3ZMXjxWimvqAdn8BgC iAcGjQD3KSYKq/njUEnzroS9IuvK88HBYnbDfh4cvnCXSxbtlIKrjQRzjgFmL2VbwXsLkPRnQ 5d+v6TV9f7xr3T+p5i5R8CnzSQ/SqPceMM4KVtxIFtCgw9z3JhR11d3xklyTCyLExQouo+nAp tTr+QbuDNV1o79czoA7MUy0oVP9jDPruj4TgHntyFrY7U0LCcJ5TF/H7tT9xZYxOAWNJvVgnJ a0jt/z5mEJm/gVPB Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Friday 11 September 2015 15:14:26 Peter Griffin wrote: > + > +#include "st_fdma.h" Just move the contents of that file here, no other driver should be including it. > +static struct dma_chan *st_fdma_of_xlate(struct of_phandle_args *dma_spec, > + struct of_dma *ofdma) > +{ > + struct st_fdma_dev *fdev = ofdma->of_dma_data; > + struct st_fdma_cfg cfg; > + > + if (dma_spec->args_count < 1) > + return NULL; > + > + cfg.of_node = dma_spec->np; > + cfg.req_line = dma_spec->args[0]; > + cfg.req_ctrl = 0; > + cfg.type = ST_FDMA_TYPE_FREE_RUN; > + > + if (dma_spec->args_count > 1) > + cfg.req_ctrl = dma_spec->args[1] & REQ_CTRL_CFG_MASK; > + > + if (dma_spec->args_count > 2) > + cfg.type = dma_spec->args[2]; The binding mandates #dma-cells=<3>, so you can just return an error otherwise. > + dev_dbg(fdev->dev, "xlate req_line:%d type:%d req_ctrl:%#x\n", > + cfg.req_line, cfg.type, cfg.req_ctrl); > + > + return dma_request_channel(fdev->dma_device.cap_mask, > + st_fdma_filter_fn, &cfg); > +} Why this indirection? You should be able to just use dma_get_any_slave_channel() to get the first available channel and then configure it the same way that the filter function does. > +bool st_fdma_filter_fn(struct dma_chan *chan, void *param) > +{ > + struct st_fdma_cfg *config = param; > + struct st_fdma_chan *fchan = to_st_fdma_chan(chan); > + > + if (!param) > + return false; > + > + if (fchan->fdev->dma_device.dev->of_node != config->of_node) > + return false; > + > + fchan->cfg = *config; > + > + return true; > +} Please drop this until there is a board file that references the function. Otherwise it's just dead code. I assume there are some users in arch/sh/ in a private tree? Arnd