From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751911AbbJFJdM (ORCPT ); Tue, 6 Oct 2015 05:33:12 -0400 Received: from mout.kundenserver.de ([212.227.126.131]:60861 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751137AbbJFJdK (ORCPT ); Tue, 6 Oct 2015 05:33:10 -0400 From: Arnd Bergmann To: Jon Hunter Cc: Laxman Dewangan , Vinod Koul , Stephen Warren , Thierry Reding , Alexandre Courbot , Rob Herring , Pawel Moll , Mark Rutland , Ian Campbell , Kumar Gala , dmaengine@vger.kernel.org, linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH V2 2/2] dmaengine: tegra-adma: Add support for Tegra210 ADMA Date: Tue, 06 Oct 2015 11:32:35 +0200 Message-ID: <16524792.BmEijCQ1oc@wuerfel> User-Agent: KMail/4.11.5 (Linux/3.16.0-10-generic; KDE/4.11.5; x86_64; ; ) In-Reply-To: <1444047007-30494-3-git-send-email-jonathanh@nvidia.com> References: <1444047007-30494-1-git-send-email-jonathanh@nvidia.com> <1444047007-30494-3-git-send-email-jonathanh@nvidia.com> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-Provags-ID: V03:K0:i1s1lU1DARBqnCPizeO1xgzk0QoOUg3EYpbAm9LblXMg7j2ohNs HIuL8eHrAGsGqdIJDkmRYwlH5Kb8ONpysgH4Oa7qbaoLGHfNR4yZoaFvoQISFfeVq7/VhQC MCZVprEeHmcuC+l1hu2yxrOssUYkW4oj7FqD/YmLVF58+lIwJ/1cVd5OF/AC63xpVs3KSaX nQhYZIZDkhJgNqz4B9QJA== X-UI-Out-Filterresults: notjunk:1;V01:K0:BngfaVFGBIA=:taKrE7bDn2GFhONTCOLnfF FJ2Tu8KfQyLZ4AnslKcTAZyPLy2o+ZnFnqgDcsrgwOgAWQzpdDhWVKvyipoxErw0CqGx1lVgP 6Wl0gXPOU3LyNMaGWZZVzYkUgEYxkKGoafE1dr8nVEBin7NxivtLDA7XjvSa18E4Pfy+XWAuP 2jTa+wczQd17aKmo5px8zJMPTAFIW09MJNfyJtT846oFMmKM+kQAq0nWvd+zw07wgHpzFO2QJ KnkEKPHxuIjADWys18tTSDcq0p3ufC6gajkJU3Fu3pdMHcfVjnRB2oTugo8+KcPAVa2rn5/4z i7T51bGz0h0VeZDDFj99ZDUPA6wdzjHh1aF5Fj8nC3Zrfci6LUWvz6Ngb6kMD2LjsZnxhcc7k Ra6cQ/tHmPdSBYMhxJFB9GkhX32wdavVdZFHb4auxvUcMKWzeL/55JQReDd0rFg64mzahIw/+ jnC2xHNe6WA5cVw/NTocXuwFWoZA/AP545gXJvy++IRSPT7rua60GF6Ig7mDLNuJVS4hEQfz6 WgFhZpvEwmpHODFNvTM9VHdxqwjC8WHrCi+CjDOMC0sn8AMVLxpI1uXkOyuila/VbkBu0USng lGTv/KQYAsVg7Cqz6GNxADWusY13h595eUJPVA/qkKTnH6DLR3sWhPn7H+GuetI85OFHW4eDL GHwLU2DYIXOKHiD0VlZnJ1OX8UDtgEUtvQMymIpQ7JGxt35fva2T+iiDJcqs56KHFjCPJ99/3 tCfLSoIuirDqtRVM Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Monday 05 October 2015 13:10:07 Jon Hunter wrote: > Add support for the Tegra210 Audio DMA controller that is used for > transferring data between system memory and the Audio sub-system. > The driver only supports cyclic transfers because this is being solely > used for audio. > > This driver is based upon the work by Dara Ramesh . > > Signed-off-by: Jon Hunter This version looks much better! Just one small comment: > + slave_req = dma_spec->args[0]; > + slave_dir = dma_spec->args[1]; > + > + if (slave_req == 0) > + return NULL; > + > + switch (slave_dir) { > + case ADMA_AHUB_TO_MEM: > + if (slave_req > tdma->rx_requests) > + return NULL; > + > + if (tdma->rx_requests_reserved & BIT(slave_req)) > + return NULL; > + > + tdma->rx_requests_reserved |= BIT(slave_req); > + break; The rx_requests_reserved logic looks racy, if you have more than one concurrent request or release. Better use atomic_test_and_set() here and turn the variable into an atomic_t. Arbd