From patchwork Thu Oct 19 22:08:03 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Osipenko X-Patchwork-Id: 828369 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=linux-tegra-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="igQuE9rK"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3yJ3391rVqz9t6m for ; Fri, 20 Oct 2017 09:08:21 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752507AbdJSWIU (ORCPT ); Thu, 19 Oct 2017 18:08:20 -0400 Received: from mail-wr0-f196.google.com ([209.85.128.196]:44588 "EHLO mail-wr0-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751856AbdJSWIU (ORCPT ); Thu, 19 Oct 2017 18:08:20 -0400 Received: by mail-wr0-f196.google.com with SMTP id z55so3663414wrz.1 for ; Thu, 19 Oct 2017 15:08:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :in-reply-to:references; bh=9Xi0EvROjJXqMrmhCR5QlvTutXexzUD3edX88wsGgN0=; b=igQuE9rKgLCRdmbOpz/8w132EGyyfw77mlvG/ym6XUywU3Wp9QcDxg4Vqxse28Zp9r N2+O8ahNSrK1W7LSm1zG1CpvaAbew3r1ZvvzuOs3DBTWqBfgKfxV26X+T5vHFobxK0+5 9hBpHOvHnH+NR/7WR9KFIIzvQ/Gp9hGv4RGe77MCLY9TQP16PZ4x2dBfASvwZ3NmsVIp QOHvxtB1h9PHxizuoZ6KmafkJ4aqTadoRKd7otdSCyGUBL0Csxt/X6/5EuF7rnBl5hrF I1MQIlSkDn5Cr/m1YKAhHcdyH9RetCzmRqwtq1wVao9SpbpzV4xNdtp3FmvZipIV5Fxr AS3w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:in-reply-to:references; bh=9Xi0EvROjJXqMrmhCR5QlvTutXexzUD3edX88wsGgN0=; b=l6uRPU2VLNFidxbHugIA7iw8HaBc2ixPxG4At0uD6SoEI5YJ/eAUcH8lYz6707XOhh Hixq7KguxmJc8AJF+7jNgw+LvVOOYf0CI0giNvdt2VMxWORBymLh9+NLqKEKPNUEKUub edjmV8/0K8iLcvI3RBKp9EajPU8lA5dYjVB4eHPs2ACgl/03/J3PdyOO9qEcByqZIU/k mPKgc6/cQGRkizKCO4u0QqyGtg+enXBiTdTeBoivktqZjQB7cUY+E7j8VvXDffEV6BYu qy7Io+WPegVEquu4BD7PFsRZ9E0sQ4J0ALjbwWre19wxw3JLM12emFQngfO6UNgbX6z6 1grQ== X-Gm-Message-State: AMCzsaXqsrt3wNUzBiOqFy7O9/EleZcaA4OAuQ8MwrlF7ayIGvuUSw39 ippldLPRjwrylUf02iotl0U= X-Google-Smtp-Source: ABhQp+TfCzwigm6kWk64VznEOs0bDxZgeaZrPbOWCUV9BisG31jn7gI8+gEO1/iQa8v0376U12lUkw== X-Received: by 10.223.190.132 with SMTP id i4mr2851690wrh.123.1508450898969; Thu, 19 Oct 2017 15:08:18 -0700 (PDT) Received: from localhost.localdomain (ppp109-252-91-27.pppoe.spdop.ru. [109.252.91.27]) by smtp.gmail.com with ESMTPSA id c37sm29084266wra.73.2017.10.19.15.08.17 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 19 Oct 2017 15:08:18 -0700 (PDT) From: Dmitry Osipenko To: Thierry Reding , Jonathan Hunter Cc: linux-tegra@vger.kernel.org Subject: [PATCH v3 1/2] soc/tegra: fuse: Fix reading registers using DMA on Tegra20 Date: Fri, 20 Oct 2017 01:08:03 +0300 Message-Id: X-Mailer: git-send-email 2.14.2 In-Reply-To: References: In-Reply-To: References: Sender: linux-tegra-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-tegra@vger.kernel.org FUSE driver doesn't configure DMA channel properly, because of it DMA transfer is never issued and tegra20_fuse_read() always return 0x0. Signed-off-by: Dmitry Osipenko Acked-by: Jon Hunter --- drivers/soc/tegra/fuse/fuse-tegra.c | 1 + drivers/soc/tegra/fuse/fuse-tegra20.c | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/soc/tegra/fuse/fuse-tegra.c b/drivers/soc/tegra/fuse/fuse-tegra.c index b7c552e3133c..73a3a2c74021 100644 --- a/drivers/soc/tegra/fuse/fuse-tegra.c +++ b/drivers/soc/tegra/fuse/fuse-tegra.c @@ -132,6 +132,7 @@ static int tegra_fuse_probe(struct platform_device *pdev) /* take over the memory region from the early initialization */ res = platform_get_resource(pdev, IORESOURCE_MEM, 0); + fuse->phys = res->start; fuse->base = devm_ioremap_resource(&pdev->dev, res); if (IS_ERR(fuse->base)) return PTR_ERR(fuse->base); diff --git a/drivers/soc/tegra/fuse/fuse-tegra20.c b/drivers/soc/tegra/fuse/fuse-tegra20.c index 294413a969a0..27e9ac7d3165 100644 --- a/drivers/soc/tegra/fuse/fuse-tegra20.c +++ b/drivers/soc/tegra/fuse/fuse-tegra20.c @@ -59,7 +59,7 @@ static u32 tegra20_fuse_read(struct tegra_fuse *fuse, unsigned int offset) mutex_lock(&fuse->apbdma.lock); - fuse->apbdma.config.src_addr = fuse->apbdma.phys + FUSE_BEGIN + offset; + fuse->apbdma.config.src_addr = fuse->phys + FUSE_BEGIN + offset; err = dmaengine_slave_config(fuse->apbdma.chan, &fuse->apbdma.config); if (err) @@ -119,6 +119,8 @@ static int tegra20_fuse_probe(struct tegra_fuse *fuse) fuse->apbdma.config.dst_addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES; fuse->apbdma.config.src_maxburst = 1; fuse->apbdma.config.dst_maxburst = 1; + fuse->apbdma.config.direction = DMA_DEV_TO_MEM; + fuse->apbdma.config.device_fc = false; init_completion(&fuse->apbdma.wait); mutex_init(&fuse->apbdma.lock); From patchwork Thu Oct 19 22:08:04 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Osipenko X-Patchwork-Id: 828370 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=linux-tegra-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="fF678w3j"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3yJ33B0z3Cz9t6M for ; Fri, 20 Oct 2017 09:08:22 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752975AbdJSWIV (ORCPT ); Thu, 19 Oct 2017 18:08:21 -0400 Received: from mail-wm0-f67.google.com ([74.125.82.67]:47344 "EHLO mail-wm0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751856AbdJSWIV (ORCPT ); Thu, 19 Oct 2017 18:08:21 -0400 Received: by mail-wm0-f67.google.com with SMTP id t69so18601796wmt.2 for ; Thu, 19 Oct 2017 15:08:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :in-reply-to:references; bh=44GCA5WeXrz2AmdsKJTdUVyeUIpVGxc/SsmUqahBv9U=; b=fF678w3j8otU3uko0sGWChzoVwquKcjvPdhlMCDBK79MWNIF59j4mx7J7XLXF34lnF RUptFTRokSOHgvFImW4gHRZ8vsIFF9xCyF39h3bBp1nQZob/4FX/UP+f8Ymz8JaliIxG 0o4eFTGdiBP1M9J7EMeteoDspAlsOZq441ea4Q5FPGuMU+TXYbXPE1dMydVRiB1lY1lb UgGb8zvFeHzVmzLlhDu9Sfr2KZnb2KQdFgHVAjQIiEc+MoYWmFhTzTC0kIAx29Iedpk7 OiRPVAWAsEEJqck5cWeiK5GweM6tpIBWwiRpi05wGN3plMWzQU78mSEKL24W2uv4hdkR 8J7w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:in-reply-to:references; bh=44GCA5WeXrz2AmdsKJTdUVyeUIpVGxc/SsmUqahBv9U=; b=FhNPeroMqkvDdvy1n9vgT5h+LnfXvdopcplkhNeN09SmeYsI35YZRXG2L9QgrkXQlg /KnbBzPBldkHlhVRnhUgCmot6XimtwTDkvQnoxyCydCH0RiJ/CRQZax/Pu+ZeD7zAwP6 jcXXddvLL6CmE8bmclFQ6lEUBrrmm6xj3qC7vrHGRzeV3ySpa7/dtnjD6sKWdRFW5PF6 q/hsCDifRupZrpV6J0W0XXalev4SmgrFvcddfC4rTu5DeiYXocBBcNWBTB3ktvf8Kq1/ 0m02soaS6YPEvNy2z0dJISpEbARGZUc5qew5FSZ7jtexUrrtYWfZIYmjH9/ID3uAKiQI LGEQ== X-Gm-Message-State: AMCzsaU9ID1adiXE5ZbgS8eo23eZCQImc8h4ESM6s20uKh9VwUhs8BEw Uw1D6NCf1pZdQyh2ekBVzDA= X-Google-Smtp-Source: ABhQp+Qn31MN//HQ7NTf3wIgrHypyEZEIYxylsrnAfdgWrrzPe2pZFTDVHW078xc2Axp1YChVreXIg== X-Received: by 10.28.133.2 with SMTP id h2mr2545716wmd.67.1508450900050; Thu, 19 Oct 2017 15:08:20 -0700 (PDT) Received: from localhost.localdomain (ppp109-252-91-27.pppoe.spdop.ru. [109.252.91.27]) by smtp.gmail.com with ESMTPSA id c37sm29084266wra.73.2017.10.19.15.08.19 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 19 Oct 2017 15:08:19 -0700 (PDT) From: Dmitry Osipenko To: Thierry Reding , Jonathan Hunter Cc: linux-tegra@vger.kernel.org Subject: [PATCH v3 2/2] soc/tegra: fuse: Explicitly request DMA channel from APB DMA driver Date: Fri, 20 Oct 2017 01:08:04 +0300 Message-Id: <059ca713c7416aedeb0080ab4b8a49da430a30b9.1508450681.git.digetx@gmail.com> X-Mailer: git-send-email 2.14.2 In-Reply-To: References: In-Reply-To: References: Sender: linux-tegra-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-tegra@vger.kernel.org Currently fuse driver requests DMA channel from an arbitrary DMA device, it is not a problem since there is only one DMA provider for Tegra20 yet, but it may become troublesome if another provider will appear. Signed-off-by: Dmitry Osipenko Acked-by: Jon Hunter --- drivers/soc/tegra/fuse/fuse-tegra20.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/drivers/soc/tegra/fuse/fuse-tegra20.c b/drivers/soc/tegra/fuse/fuse-tegra20.c index 27e9ac7d3165..49ff017f3ded 100644 --- a/drivers/soc/tegra/fuse/fuse-tegra20.c +++ b/drivers/soc/tegra/fuse/fuse-tegra20.c @@ -96,6 +96,13 @@ static u32 tegra20_fuse_read(struct tegra_fuse *fuse, unsigned int offset) return value; } +static bool dma_filter(struct dma_chan *chan, void *filter_param) +{ + struct device_node *np = chan->device->dev->of_node; + + return of_device_is_compatible(np, "nvidia,tegra20-apbdma"); +} + static int tegra20_fuse_probe(struct tegra_fuse *fuse) { dma_cap_mask_t mask; @@ -103,7 +110,7 @@ static int tegra20_fuse_probe(struct tegra_fuse *fuse) dma_cap_zero(mask); dma_cap_set(DMA_SLAVE, mask); - fuse->apbdma.chan = dma_request_channel(mask, NULL, NULL); + fuse->apbdma.chan = __dma_request_channel(&mask, dma_filter, NULL); if (!fuse->apbdma.chan) return -EPROBE_DEFER;