From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751956AbdAYK2h (ORCPT ); Wed, 25 Jan 2017 05:28:37 -0500 Received: from mailout2.w1.samsung.com ([210.118.77.12]:52899 "EHLO mailout2.w1.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751693AbdAYK23 (ORCPT ); Wed, 25 Jan 2017 05:28:29 -0500 X-AuditID: cbfec7f5-f79d06d000004445-aa-58887dc9eaf6 From: Marek Szyprowski To: linux-samsung-soc@vger.kernel.org, dmaengine@vger.kernel.org, alsa-devel@alsa-project.org, linux-arm-kernel@lists.infradead.org, linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Marek Szyprowski , Krzysztof Kozlowski , Bartlomiej Zolnierkiewicz , Vinod Koul , Ulf Hansson , "Rafael J. Wysocki" , Kuninori Morimoto , Mark Brown , Inki Dae Subject: [PATCH v7 3/4] dmaengine: pl330: Store pointer to slave device Date: Wed, 25 Jan 2017 11:28:07 +0100 Message-id: <1485340088-25481-4-git-send-email-m.szyprowski@samsung.com> X-Mailer: git-send-email 1.9.1 In-reply-to: <1485340088-25481-1-git-send-email-m.szyprowski@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAAzWSXUhTYRzGe3c+dqZNT3PVyzKhQReZswSDg1kURJ2irItAqdSmnqY0P9hU UoqWVOpmapPpqJVG2cdEtGnDZKabsvlF03Je+YGpxSbWxXIRuZHb0bvn4f09/4cHXgIR3MdE RF5BMaMokMrFeBhqtv91SkbuVKUdXlnZSU1N2jjUe30HRukWlnCqTefHKO18PUo5nZ1cyjPY CyjT4jRGfe014JT30RCg9M5PHKp9aJZLjY99wShHeyrlru1HT0TSnd4KnH5pcXNok7Eap2em LTjd9eou7Rt/jNLdrkqUru02AtprirnEuxKWnMPI80oZxaHj18Nym4eJoubwW89qqhEVaOOp AY+AZCL8UzfBZfUuODHXgatBGCEgWwGcf9KDscYL4AtVN2cr8dSq26ReA9ihDwDWqDjQ5dOj QQonE6B6VR2ihGQ/gH0fF5GgQUgVAsdsvlBjFHkG9vZ/w4IaJffDwAd7KM0naTi6tIyzfTFw xN4QYnjkWaj3D3GDhyBp50LtXNNGgNgwe6FpAGH5U3Ag0AFYHQU9ju7NddGwusq6uaEOwIoH B1mtB/DzKp/VR+GgYzLUhZARUGtuQtjzfFj1UMAiNOxqH0FZfRL63mm57HoDgHPj69x6EN0C thmBkClR5ssY5ZF4pTRfWVIgi88uzDeBjb8xFnCs9YBWe5INkAQQb+fXZ1WmCTBpqbIs3wYg gYiF/NO3q9IE/BxpWTmjKMxUlMgZpQ3sIVDxbr6lZSpVQMqkxcxNhiliFFuvHIInUoGsQE/i 8oIlZW1aEh4hvGAw/yvTWN+0GBsx8eiMa+ac6MDb5zZ3ctwNTaRIE2/X7mhMz8F++X9r+OcX zKOLnQaJSWL9Ua0vXS+ymJdq5J5yaR+V9H3M5Y+9+tNhns04ljk1fK/B5t132ZOdTl/Lcxfo DLIUU4ZuJA6/qBkVo8pcaUIsolBK/wP98VRxFwMAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrIIsWRmVeSWpSXmKPExsVy+t/xa7rsdR0RBn9WmFtcuXiIyWLjjPWs FlMfPmGzWD31L6vFpPsTWCzOn9/AbvHq8C5Gi02Pr7FaXN41h83ic+8RRosZ5/cxWaw9cpfd 4szpS6wWx9eGW7zs28/iwO+x4XMTm8fiPS+ZPDat6mTzuHNtD5vH5iX1Ht/OTGTx2HK1ncWj b8sqRo/Pm+QCOKPcbDJSE1NSixRS85LzUzLz0m2VQkPcdC2UFPISc1NtlSJ0fUOClBTKEnNK gTwjAzTg4BzgHqykb5fgljH/BEfBfO6KuT2dzA2Mqzm7GDk5JARMJGYfnMoGYYtJXLi3Hsjm 4hASWMIoMWnXSWaQhJBAE5PEtKelIDabgKFE19susCIRgf2MEh9uXQfrZhZoYpZY9xTMFhZw l9i1/xEriM0ioCrxb+sxFhCbV8BD4tSTp1Db5CROHpsMVsMp4Ckx4+8R9i5GDqBlHhIbt1tP YORdwMiwilEktbQ4Nz232FCvODG3uDQvXS85P3cTIzB6th37uXkH46WNwYcYBTgYlXh4JyS1 RwixJpYVV+YeYpTgYFYS4XWr6YgQ4k1JrKxKLcqPLyrNSS0+xGgKdNNEZinR5HxgZOeVxBua GJpbGhoZW1iYGxkpifOWfLgSLiSQnliSmp2aWpBaBNPHxMEp1cAoZqGx98btzcd7g3dYrt+z 5Um6Q9yGE9utxLJsdjJGVv3PaapnvvDKT+6O1OTH7+6/4Hr1nivX2LDvlvnr5868m75n1bsJ rVeefO6Xnb+dVXvks3XbL9kmbpth9rivap7E8p9PFoX8DUrYqHi5lO2uT6Lf7mtJUW2JkyKW rxD6feO69zeFrx9fK7EUZyQaajEXFScCADh+ks20AgAA X-MTR: 20000000000000000@CPGS X-CMS-MailID: 20170125102824eucas1p25744330b6608c8d6e1a994b4894827bd X-Msg-Generator: CA X-Sender-IP: 182.198.249.179 X-Local-Sender: =?UTF-8?B?TWFyZWsgU3p5cHJvd3NraRtTUlBPTC1LZXJuZWwgKFRQKRs=?= =?UTF-8?B?7IK87ISx7KCE7J6QG1NlbmlvciBTb2Z0d2FyZSBFbmdpbmVlcg==?= X-Global-Sender: =?UTF-8?B?TWFyZWsgU3p5cHJvd3NraRtTUlBPTC1LZXJuZWwgKFRQKRtT?= =?UTF-8?B?YW1zdW5nIEVsZWN0cm9uaWNzG1NlbmlvciBTb2Z0d2FyZSBFbmdpbmVlcg==?= X-Sender-Code: =?UTF-8?B?QzEwG0VIURtDMTBDRDAyQ0QwMjczOTI=?= CMS-TYPE: 201P X-HopCount: 7 X-CMS-RootMailID: 20170125102824eucas1p25744330b6608c8d6e1a994b4894827bd X-RootMTR: 20170125102824eucas1p25744330b6608c8d6e1a994b4894827bd References: <1485340088-25481-1-git-send-email-m.szyprowski@samsung.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Store the pointer to slave device, which requested our channel. It will be later used to implement runtime PM of PL330 DMA controller. Although DMA channels might be requested many times, each DMA peripheral channel is physically dedicated only for specific hardware, so there should be only one slave device for each channel. Signed-off-by: Marek Szyprowski Reviewed-by: Krzysztof Kozlowski Reviewed-by: Ulf Hansson Acked-by: Arnd Bergmann --- drivers/dma/pl330.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/dma/pl330.c b/drivers/dma/pl330.c index b6b2cc912380..c77a3494659c 100644 --- a/drivers/dma/pl330.c +++ b/drivers/dma/pl330.c @@ -450,6 +450,7 @@ struct dma_pl330_chan { /* for runtime pm tracking */ bool active; + struct device *slave; }; struct pl330_dmac { @@ -2093,6 +2094,14 @@ static struct dma_chan *of_dma_pl330_xlate(struct of_phandle_args *dma_spec, if (chan_id >= pl330->num_peripherals) return NULL; + if (!pl330->peripherals[chan_id].slave) { + pl330->peripherals[chan_id].slave = slave; + } else if (pl330->peripherals[chan_id].slave != slave) { + dev_err(pl330->ddma.dev, + "Can't use same channel with multiple slave devices!\n"); + return NULL; + } + return dma_get_slave_channel(&pl330->peripherals[chan_id].chan); } -- 1.9.1