From nobody Tue Jun 23 11:10:03 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5A380C43217 for ; Mon, 28 Mar 2022 09:52:43 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S240023AbiC1JyV (ORCPT ); Mon, 28 Mar 2022 05:54:21 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58698 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240018AbiC1JyR (ORCPT ); Mon, 28 Mar 2022 05:54:17 -0400 Received: from mail-pj1-x1029.google.com (mail-pj1-x1029.google.com [IPv6:2607:f8b0:4864:20::1029]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 351B6546B2 for ; Mon, 28 Mar 2022 02:52:37 -0700 (PDT) Received: by mail-pj1-x1029.google.com with SMTP id mr5-20020a17090b238500b001c67366ae93so18130400pjb.4 for ; Mon, 28 Mar 2022 02:52:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sifive.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=vPzKfL7z/ioVzkWZmdGnUOpm+jBpSszjouCZkOgerBU=; b=PYeDYo1HZ+7zO+AjGFbIt9N+/gsEwVMegWIS1I/bcFoGw2PEndjfGBaRvllTEbs38N bXCJNvmvP6ZAfHeZpXIU4iyuyb9MptbvUFETlcAZE46xCGPDdPvBYAQ9zSkk8R5DDTgb 5S60isfPn4L159WOuC8jbTlz9F+uOPIOXLZ3E2c7Aq1lVQ0XEKMWPuWa+YcdvPUL2O35 TY/cFDmCgsRX4OoFTJs3BMODa300OOCIj/TSt3G2gzC+bAXHZ78QMcfs4eEkQ6fJ6XHr alMg+XAF/PD2Yo6eM4tpg2eMEB53C0KBsrNeMRUSDUm7xmN8zuQjbskLfdazAxBn3DBG S1hQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=vPzKfL7z/ioVzkWZmdGnUOpm+jBpSszjouCZkOgerBU=; b=XuuwU1mIpAhBGl8dtdP01ls4m19qb+/wr9YMcQRXSXKosb8skmJRU87fIL0PFnN61O 07lgfe4gd14r0TxoXY5WMcY7qJ63JzB8xHwj+PO1aw0AE/YOEoHaDPq758ArEO+d9ok+ +Mnx32GpSmp6iJf7hdIdS6DZP6wQrHp/yrmxdMcKwjT5c8KrjoeuuDwcvDM69fOYI7A+ o2Sb0PlZ/Nsirtt3fO+moIS1mNCrXhTR0xwKROmzwOeC2zGKr9S4jfV5M5NJdUmh+qF6 0DebWwg3XrXPquUcz7caV1yejTL0zxwmTRfFwh0MK39HEgbqKNQ2+P+skXpQYE5B58Vh IDgw== X-Gm-Message-State: AOAM531rVQQR7Yc0WpeE9BaJaxOakCCLDrPTXBnzJaeebmwApTCpcvuA RlUlNolUkpw3ZgRKe0lU4kfsWA== X-Google-Smtp-Source: ABdhPJyTbXAWOqRoBuc+FpnhaK605V2eNVJRooRDgQ+I4q3Ph/Hxo0TJOY0YQ0dhaz7sKJr7ECLF+Q== X-Received: by 2002:a17:902:ea52:b0:153:fd04:c158 with SMTP id r18-20020a170902ea5200b00153fd04c158mr25087355plg.83.1648461156722; Mon, 28 Mar 2022 02:52:36 -0700 (PDT) Received: from hsinchu16.internal.sifive.com (59-124-168-89.hinet-ip.hinet.net. [59.124.168.89]) by smtp.gmail.com with ESMTPSA id g4-20020a633744000000b00381efba48b0sm12255117pgn.44.2022.03.28.02.52.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 28 Mar 2022 02:52:36 -0700 (PDT) From: Zong Li To: robh+dt@kernel.org, paul.walmsley@sifive.com, palmer@dabbelt.com, aou@eecs.berkeley.edu, krzysztof.kozlowski@canonical.com, conor.dooley@microchip.com, geert@linux-m68k.org, bin.meng@windriver.com, green.wan@sifive.com, vkoul@kernel.org, dmaengine@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org Cc: Zong Li , Rob Herring , Palmer Dabbelt Subject: [PATCH v8 1/4] dt-bindings: dma-engine: sifive,fu540: Add dma-channels property and modify compatible Date: Mon, 28 Mar 2022 17:52:22 +0800 Message-Id: <7cc9a7b5f7e6c28fc9eb172c441b5aed2159b8a0.1648461096.git.zong.li@sifive.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Add dma-channels property, then we can determine how many channels there by device tree, rather than statically defining it in PDMA driver. In addition, we also modify the compatible for PDMA versioning scheme. Signed-off-by: Zong Li Reviewed-by: Rob Herring Suggested-by: Palmer Dabbelt Reviewed-by: Palmer Dabbelt Acked-by: Palmer Dabbelt Acked-by: Krzysztof Kozlowski Reviewed-by: Bin Meng --- .../bindings/dma/sifive,fu540-c000-pdma.yaml | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/Documentation/devicetree/bindings/dma/sifive,fu540-c000-pdma.y= aml b/Documentation/devicetree/bindings/dma/sifive,fu540-c000-pdma.yaml index 47c46af25536..3271755787b4 100644 --- a/Documentation/devicetree/bindings/dma/sifive,fu540-c000-pdma.yaml +++ b/Documentation/devicetree/bindings/dma/sifive,fu540-c000-pdma.yaml @@ -28,7 +28,15 @@ allOf: properties: compatible: items: - - const: sifive,fu540-c000-pdma + - enum: + - sifive,fu540-c000-pdma + - const: sifive,pdma0 + description: + Should be "sifive,-pdma" and "sifive,pdma". + Supported compatible strings are - + "sifive,fu540-c000-pdma" for the SiFive PDMA v0 as integrated onto t= he + SiFive FU540 chip resp and "sifive,pdma0" for the SiFive PDMA v0 IP = block + with no chip integration tweaks. =20 reg: maxItems: 1 @@ -37,6 +45,12 @@ properties: minItems: 1 maxItems: 8 =20 + dma-channels: + description: For backwards-compatibility, the default value is 4 + minimum: 1 + maximum: 4 + default: 4 + '#dma-cells': const: 1 =20 @@ -50,8 +64,9 @@ unevaluatedProperties: false examples: - | dma-controller@3000000 { - compatible =3D "sifive,fu540-c000-pdma"; + compatible =3D "sifive,fu540-c000-pdma", "sifive,pdma0"; reg =3D <0x3000000 0x8000>; + dma-channels =3D <4>; interrupts =3D <23>, <24>, <25>, <26>, <27>, <28>, <29>, <30>; #dma-cells =3D <1>; }; --=20 2.35.1 From nobody Tue Jun 23 11:10:03 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6F22FC433FE for ; Mon, 28 Mar 2022 09:52:45 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S240043AbiC1JyY (ORCPT ); Mon, 28 Mar 2022 05:54:24 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58790 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240031AbiC1JyV (ORCPT ); Mon, 28 Mar 2022 05:54:21 -0400 Received: from mail-pj1-x102f.google.com (mail-pj1-x102f.google.com [IPv6:2607:f8b0:4864:20::102f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9BEAA54BD6 for ; Mon, 28 Mar 2022 02:52:40 -0700 (PDT) Received: by mail-pj1-x102f.google.com with SMTP id l4-20020a17090a49c400b001c6840df4a3so14964862pjm.0 for ; Mon, 28 Mar 2022 02:52:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sifive.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=bwZ4ntGN7f8A8nsIcId+rUmkc/uVaZ9W2h2a+0CTy+I=; b=IO1wRJ5JootJiOYi8EyMw7W414vNT7NAHx9rKQTYR0fx2t1ukxQU6t8S0ZcMXI+Qq+ /q3SDCiAwcSY0QOAO+YRlqTqqWbMrXikfSBCt/qUcdY0KrKYixn0g46dYlA9pBnldg79 zustXyExPGLSga3BfHWFywEdwpPF+quB+lj0f0xNKDvm9Dq9eiT2F9oX4F2t1ry1jcAc RQkJjH6g/2VoKdJ5bC9jmZ2mwUf5bQdok9n/dgc5ZGezYVWQ7fnzc36XoNXlM1eTwqWT RXPyJ15qRLLoCqmksuBVSr5yOV/nwOiRjvNQMl6YN4w2FP+FfZRXTDhETJTseOaVIzSW oBBA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=bwZ4ntGN7f8A8nsIcId+rUmkc/uVaZ9W2h2a+0CTy+I=; b=rg5Cm7LfA8896PYvRyZ/ohG+RsXNMsZFe8sY/YB0tezK1vtCi7LNu7mQCL962gWCMa Ayx2dXmfrXIgzW2+Z06LyA+IaLaWNSAT3/4I2tbSxMM7yYkX5irO3KCWgpWHpjJhFOvQ LlBJKHyO6jMyEhorW5lBUGNhuA62wajpa4SkvhP1wV21naAAG305OvHDAq51VaMtqD6/ c6+pg6DSDe1CxluVYxdkAp02BBvHiCmhgCkws7MvDxmtPDH16/LVHbe0SdUKmen82rUf s3RKveIVlst2ygTSA/Mkxr1t9qbhUX/xx65fEbuEt4w0qf52CtPSns9wO6zx1Au7q4QA 1/7Q== X-Gm-Message-State: AOAM532ykxvVuPKqNtb8tyvPUAUohHBqXmtidMsQ36zW70YC1/QasNgF R0WfJoMQj6uWNrRGiJfA7C1xWA== X-Google-Smtp-Source: ABdhPJyPFyUzbmqGInFSDy/EYxHjhBm+UfFDGTJClCd8Ky24rcAtEAcDFYKO1z1/CDOTCnKHWHtL+Q== X-Received: by 2002:a17:902:6bc3:b0:156:e4f:b014 with SMTP id m3-20020a1709026bc300b001560e4fb014mr4737654plt.17.1648461160156; Mon, 28 Mar 2022 02:52:40 -0700 (PDT) Received: from hsinchu16.internal.sifive.com (59-124-168-89.hinet-ip.hinet.net. [59.124.168.89]) by smtp.gmail.com with ESMTPSA id g4-20020a633744000000b00381efba48b0sm12255117pgn.44.2022.03.28.02.52.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 28 Mar 2022 02:52:39 -0700 (PDT) From: Zong Li To: robh+dt@kernel.org, paul.walmsley@sifive.com, palmer@dabbelt.com, aou@eecs.berkeley.edu, krzysztof.kozlowski@canonical.com, conor.dooley@microchip.com, geert@linux-m68k.org, bin.meng@windriver.com, green.wan@sifive.com, vkoul@kernel.org, dmaengine@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org Cc: Zong Li , Palmer Dabbelt Subject: [PATCH v8 2/4] riscv: dts: Add dma-channels property and modify compatible Date: Mon, 28 Mar 2022 17:52:23 +0800 Message-Id: X-Mailer: git-send-email 2.35.1 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Add dma-channels property, then we can determine how many channels there by device tree, in addition, we add the pdma versioning scheme for compatible. Signed-off-by: Zong Li Reviewed-by: Palmer Dabbelt Acked-by: Palmer Dabbelt Acked-by: Conor Dooley Reviewed-by: Bin Meng --- arch/riscv/boot/dts/sifive/fu540-c000.dtsi | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/arch/riscv/boot/dts/sifive/fu540-c000.dtsi b/arch/riscv/boot/d= ts/sifive/fu540-c000.dtsi index 3eef52b1a59b..6a3011180846 100644 --- a/arch/riscv/boot/dts/sifive/fu540-c000.dtsi +++ b/arch/riscv/boot/dts/sifive/fu540-c000.dtsi @@ -168,11 +168,12 @@ uart0: serial@10010000 { status =3D "disabled"; }; dma: dma@3000000 { - compatible =3D "sifive,fu540-c000-pdma"; + compatible =3D "sifive,fu540-c000-pdma", "sifive,pdma0"; reg =3D <0x0 0x3000000 0x0 0x8000>; interrupt-parent =3D <&plic0>; interrupts =3D <23>, <24>, <25>, <26>, <27>, <28>, <29>, <30>; + dma-channels =3D <4>; #dma-cells =3D <1>; }; uart1: serial@10011000 { --=20 2.35.1 From nobody Tue Jun 23 11:10:03 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id D8E59C433FE for ; Mon, 28 Mar 2022 09:52:51 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S240058AbiC1Jy3 (ORCPT ); Mon, 28 Mar 2022 05:54:29 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58948 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240049AbiC1JyZ (ORCPT ); Mon, 28 Mar 2022 05:54:25 -0400 Received: from mail-pl1-x629.google.com (mail-pl1-x629.google.com [IPv6:2607:f8b0:4864:20::629]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DD9AB54BD8 for ; Mon, 28 Mar 2022 02:52:43 -0700 (PDT) Received: by mail-pl1-x629.google.com with SMTP id i11so3047299plg.12 for ; Mon, 28 Mar 2022 02:52:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sifive.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=wa/jhOBDbzXypLwdqQHP2csPLeVnygjpsw6wefsCgcI=; b=Q3fVODma/iyy4N0/11SdBthh/s+q8+fOIxK61L2ALfHDGiUqEW8sE9ALtc52F85OhS EkXBFEVuHIE2gB44Iz1tiQrWKcRhG0a6s9aVJoZ9xbfv6CH6SO1u/V6y7NOA/nFFP7kL MWw5PXy8/qGv4cSwVRq55OiYaJbUpraPvbXSyzOXE4kADO2Kf1JZfbhCU6qxO9jTsXgm 1d1XLpCVpErOnecqUNkOmh81lGmRWpaT5KIpA6GNl3UK1gjtK/QJAwR2ccvyRpMAEkVx wVs6gKqRgH98VoJLDPbk3D93Dyu6tsiqmt3fVcs9X1kuynctSonwhdo7RXFhfzWcAu5x k75Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=wa/jhOBDbzXypLwdqQHP2csPLeVnygjpsw6wefsCgcI=; b=cnhoY/uqRto3vYi13Wy3vbn/OnBD0itpRE8EO4ut8OfuaC8hfvv0hamRIBB+UtyzgJ ehYKHk5HOvhDnjUelfhR53VwoVOVlRkGn+0DqmV9JLwgbaR9+1mPhucVeJlAa8uFiXYN qguhbuU3j6bLvll1fvybyEJKYLYfzQgpVD9qzu/B6AzZ1u/05nha4cowjwo/3xE18zH4 NJDv+9TPPlqsZEBGbhJ2s5K7lVbkXfoMQlVk/gWOD9cR9ppTEgARLQK0e2rvhBfkpuKt 7LSJWqiMZvkwMyVh7fptBwZWAaqJCbNeRSY7ymjaIBpjZsc53hzpKD1JEBofLhu9IYgp nTFg== X-Gm-Message-State: AOAM533UtA2xNUytRewIJVI8BmHDWFjy0lgz403DMTcD0TgqXIRo0SEm IdrChZEnleN9RvqhZn+R3r6JvA== X-Google-Smtp-Source: ABdhPJxHONZ3f2Yc2WSNu+jkr5b+vJB/GJkHJsbhf2730GFrUfxaNbwYpNK9G38hBoG4pMTeWyCn0w== X-Received: by 2002:a17:90a:470a:b0:1c9:a9b4:f88c with SMTP id h10-20020a17090a470a00b001c9a9b4f88cmr5064699pjg.185.1648461163359; Mon, 28 Mar 2022 02:52:43 -0700 (PDT) Received: from hsinchu16.internal.sifive.com (59-124-168-89.hinet-ip.hinet.net. [59.124.168.89]) by smtp.gmail.com with ESMTPSA id g4-20020a633744000000b00381efba48b0sm12255117pgn.44.2022.03.28.02.52.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 28 Mar 2022 02:52:42 -0700 (PDT) From: Zong Li To: robh+dt@kernel.org, paul.walmsley@sifive.com, palmer@dabbelt.com, aou@eecs.berkeley.edu, krzysztof.kozlowski@canonical.com, conor.dooley@microchip.com, geert@linux-m68k.org, bin.meng@windriver.com, green.wan@sifive.com, vkoul@kernel.org, dmaengine@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org Cc: Zong Li Subject: [PATCH v8 3/4] riscv: dts: rename the node name of dma Date: Mon, 28 Mar 2022 17:52:24 +0800 Message-Id: X-Mailer: git-send-email 2.35.1 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Rename the node name by the generic DMA naming Signed-off-by: Zong Li CC: Vinod Koul Reviewed-by: Bin Meng --- arch/riscv/boot/dts/sifive/fu540-c000.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/riscv/boot/dts/sifive/fu540-c000.dtsi b/arch/riscv/boot/d= ts/sifive/fu540-c000.dtsi index 6a3011180846..6eebe34c2851 100644 --- a/arch/riscv/boot/dts/sifive/fu540-c000.dtsi +++ b/arch/riscv/boot/dts/sifive/fu540-c000.dtsi @@ -167,7 +167,7 @@ uart0: serial@10010000 { clocks =3D <&prci PRCI_CLK_TLCLK>; status =3D "disabled"; }; - dma: dma@3000000 { + dma: dma-controller@3000000 { compatible =3D "sifive,fu540-c000-pdma", "sifive,pdma0"; reg =3D <0x0 0x3000000 0x0 0x8000>; interrupt-parent =3D <&plic0>; --=20 2.35.1 From nobody Tue Jun 23 11:10:03 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id C3245C433EF for ; Mon, 28 Mar 2022 09:52:54 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S240062AbiC1Jyd (ORCPT ); Mon, 28 Mar 2022 05:54:33 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59130 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240047AbiC1Jy2 (ORCPT ); Mon, 28 Mar 2022 05:54:28 -0400 Received: from mail-pj1-x1031.google.com (mail-pj1-x1031.google.com [IPv6:2607:f8b0:4864:20::1031]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4145154BF6 for ; Mon, 28 Mar 2022 02:52:47 -0700 (PDT) Received: by mail-pj1-x1031.google.com with SMTP id o3-20020a17090a3d4300b001c6bc749227so14939278pjf.1 for ; Mon, 28 Mar 2022 02:52:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sifive.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=oFYJu8bdS9lTnagtGk2u5UISyqGssJEWeZR75J4CCQ4=; b=GntnHgow6kb2bhuinGrTFT6S/X9qym/s0sFSEUkJXDmNQl82e2NCI1Dma+l72P+0wm 9XMVcbHiRuxmvVtSPBZ7tQKj3M9CwbQN8u0YrhUHuwLJA0xwxOAP/iwP5HG2ieL5yBOB riyl5rYiqhApthbGtlZAOlL61VBJIcvqO1QaO37Z7lv9H4vxQ+xubqdQx26xXUVGFD8d gxMFYcwX+olVPgEM1Ntshiy1FnwUIwyiKDhK2pqaCM1mSHd6b1m0g9+oLCrcBHPeLggT +UMQ6lX6a6VxpFVHvdyINtwXFxyfB2gkIAq5wYTXNjWGzZ4XNOPo3g7YIa1sPy5P0hSU vILg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=oFYJu8bdS9lTnagtGk2u5UISyqGssJEWeZR75J4CCQ4=; b=hG164/NraizmBhrS9TrX9KOsU96Bvj3y9NvWwyzbAKRQsJ6UTQTJfJoQ5QoCS/9+w0 ABGt5jycjWf6vb4LVCt+0YF1S8cfqBuFP/0kZ5UK8iuV0nxVzgZMlNet6yGNfkY9kaQg IBu2ML4bbYvk0bS4jZh2ac5rlD2MfhjGliIWUgL+bKIuUYYragMlijicibLH+KVwWkKF 5zqkh7QbMSOuvWIXChnYo5ofHXdVkXOFy1UX4P11TJ4IaPO9zUdqIKi0an6qLQhWCsWO xA7ot8owQ/CNOH/1hNOe+6wPt5TqXBahHvWDrR+6y3JhCCe6/3CcgmDHfFAO90g7vngj a1Mw== X-Gm-Message-State: AOAM531XgKNOWaTIG+ExskkKtu1UQ4DgPqL+f6p2OK6EJ5O4d+a7HdCe +0r7F82prLtW16yUzW04LOqCPg== X-Google-Smtp-Source: ABdhPJwLen54FYCTR5UKlde92eYTDiJhw3WeUWHMHtaUWkB4DnSeea8SCaamC7zkpBJAESiySUP9EA== X-Received: by 2002:a17:90b:1c01:b0:1c6:dc49:d146 with SMTP id oc1-20020a17090b1c0100b001c6dc49d146mr39288419pjb.29.1648461166701; Mon, 28 Mar 2022 02:52:46 -0700 (PDT) Received: from hsinchu16.internal.sifive.com (59-124-168-89.hinet-ip.hinet.net. [59.124.168.89]) by smtp.gmail.com with ESMTPSA id g4-20020a633744000000b00381efba48b0sm12255117pgn.44.2022.03.28.02.52.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 28 Mar 2022 02:52:46 -0700 (PDT) From: Zong Li To: robh+dt@kernel.org, paul.walmsley@sifive.com, palmer@dabbelt.com, aou@eecs.berkeley.edu, krzysztof.kozlowski@canonical.com, conor.dooley@microchip.com, geert@linux-m68k.org, bin.meng@windriver.com, green.wan@sifive.com, vkoul@kernel.org, dmaengine@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org Cc: Zong Li , Palmer Dabbelt Subject: [PATCH v8 4/4] dmaengine: sf-pdma: Get number of channel by device tree Date: Mon, 28 Mar 2022 17:52:25 +0800 Message-Id: X-Mailer: git-send-email 2.35.1 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" It currently assumes that there are always four channels, it would cause the error if there is actually less than four channels. Change that by getting number of channel from device tree. For backwards-compatibility, it uses the default value (i.e. 4) when there is no 'dma-channels' information in dts. Signed-off-by: Zong Li Acked-by: Palmer Dabbelt Reviewed-by: Bin Meng --- drivers/dma/sf-pdma/sf-pdma.c | 24 ++++++++++++++++-------- drivers/dma/sf-pdma/sf-pdma.h | 8 ++------ 2 files changed, 18 insertions(+), 14 deletions(-) diff --git a/drivers/dma/sf-pdma/sf-pdma.c b/drivers/dma/sf-pdma/sf-pdma.c index f12606aeff87..db5a4ef76077 100644 --- a/drivers/dma/sf-pdma/sf-pdma.c +++ b/drivers/dma/sf-pdma/sf-pdma.c @@ -482,23 +482,30 @@ static void sf_pdma_setup_chans(struct sf_pdma *pdma) static int sf_pdma_probe(struct platform_device *pdev) { struct sf_pdma *pdma; - struct sf_pdma_chan *chan; struct resource *res; - int len, chans; - int ret; + int ret, n_chans; const enum dma_slave_buswidth widths =3D DMA_SLAVE_BUSWIDTH_1_BYTE | DMA_SLAVE_BUSWIDTH_2_BYTES | DMA_SLAVE_BUSWIDTH_4_BYTES | DMA_SLAVE_BUSWIDTH_8_BYTES | DMA_SLAVE_BUSWIDTH_16_BYTES | DMA_SLAVE_BUSWIDTH_32_BYTES | DMA_SLAVE_BUSWIDTH_64_BYTES; =20 - chans =3D PDMA_NR_CH; - len =3D sizeof(*pdma) + sizeof(*chan) * chans; - pdma =3D devm_kzalloc(&pdev->dev, len, GFP_KERNEL); + ret =3D of_property_read_u32(pdev->dev.of_node, "dma-channels", &n_chans); + if (ret) { + /* backwards-compatibility for no dma-channels property */ + dev_dbg(&pdev->dev, "set number of channels to default value: 4\n"); + n_chans =3D PDMA_MAX_NR_CH; + } else if (n_chans > PDMA_MAX_NR_CH) { + dev_err(&pdev->dev, "the number of channels exceeds the maximum\n"); + return -EINVAL; + } + + pdma =3D devm_kzalloc(&pdev->dev, struct_size(pdma, chans, n_chans), + GFP_KERNEL); if (!pdma) return -ENOMEM; =20 - pdma->n_chans =3D chans; + pdma->n_chans =3D n_chans; =20 res =3D platform_get_resource(pdev, IORESOURCE_MEM, 0); pdma->membase =3D devm_ioremap_resource(&pdev->dev, res); @@ -556,7 +563,7 @@ static int sf_pdma_remove(struct platform_device *pdev) struct sf_pdma_chan *ch; int i; =20 - for (i =3D 0; i < PDMA_NR_CH; i++) { + for (i =3D 0; i < pdma->n_chans; i++) { ch =3D &pdma->chans[i]; =20 devm_free_irq(&pdev->dev, ch->txirq, ch); @@ -574,6 +581,7 @@ static int sf_pdma_remove(struct platform_device *pdev) =20 static const struct of_device_id sf_pdma_dt_ids[] =3D { { .compatible =3D "sifive,fu540-c000-pdma" }, + { .compatible =3D "sifive,pdma0" }, {}, }; MODULE_DEVICE_TABLE(of, sf_pdma_dt_ids); diff --git a/drivers/dma/sf-pdma/sf-pdma.h b/drivers/dma/sf-pdma/sf-pdma.h index 0c20167b097d..dcb3687bd5da 100644 --- a/drivers/dma/sf-pdma/sf-pdma.h +++ b/drivers/dma/sf-pdma/sf-pdma.h @@ -22,11 +22,7 @@ #include "../dmaengine.h" #include "../virt-dma.h" =20 -#define PDMA_NR_CH 4 - -#if (PDMA_NR_CH !=3D 4) -#error "Please define PDMA_NR_CH to 4" -#endif +#define PDMA_MAX_NR_CH 4 =20 #define PDMA_BASE_ADDR 0x3000000 #define PDMA_CHAN_OFFSET 0x1000 @@ -118,7 +114,7 @@ struct sf_pdma { void __iomem *membase; void __iomem *mappedbase; u32 n_chans; - struct sf_pdma_chan chans[PDMA_NR_CH]; + struct sf_pdma_chan chans[]; }; =20 #endif /* _SF_PDMA_H */ --=20 2.35.1