From nobody Sun Oct 5 20:03:51 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 684971F1306; Wed, 30 Jul 2025 09:34:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753868087; cv=none; b=bfcU7Keau0ceGMvkKMrf9kgA5rYI+UOm4IzlH6EBi0r6OkhRADkrKhlvdYtU2v9O7J0l9xH7RmAUOQpLp/SrrG28QiET7pmM4m6MeY4HWxJOiJ/KNh+nbBLexj79NEY6Ads6/2Oc7hztJw7t7pxfCPIBvDi+ZNZa6jayxQRDweE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753868087; c=relaxed/simple; bh=0jkmJjmaLP26q19mUDnS43dqbcQIG+Aa08NpifOstZ4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=IdDU4GpqjErc+NNDS4zNhIaezS7rRlWePnQXFbY1muC2pMlgatJ1WQ2xfvhRDV5sKz1n8VTIPaerlM2VsZ3PshNlcOqQJPlb+qtgoJ8f8EqQByqZNzMomFDZ+B7WEo2Q5tR3Wf4cKvIpjLxJS/DXEAOWVSDtNqOHSB37PqawiWI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=TmAAKvXd; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="TmAAKvXd" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4047CC4CEF5; Wed, 30 Jul 2025 09:34:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1753868086; bh=0jkmJjmaLP26q19mUDnS43dqbcQIG+Aa08NpifOstZ4=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=TmAAKvXdDoW/CWU1bIrTKUHmmGHqTa0gGirkycgOKiG3JXRxCzMoHt4wQgCSEdVXb k0ZYLvbZ1Rm7AMx287Y/rx3Xm++nXEEiO0Ym2huhAik83Lp1RDv8KzUQQJcyQmy8HK ZM1ohBTvCRjQPrK7tnkcrFn9xfDjJk8lD4ut7utYa26O/JjpOeSh6Cxkj0QcLPmTTB FHer34d0RC/ZQDNB4Q1ZXx/PwPZ9GsTTlMMkqM3kWuRVTZ00KEye8E6Ozt7ZVDO6L+ 2r+IcE5ef1D7VvGRBXVajkGwc77mBT3LUq3lgJ+TvwR7yslcDnbodWWo5EuzEocsI2 AqqUn5a3MGaLA== From: Konrad Dybcio Date: Wed, 30 Jul 2025 11:33:28 +0200 Subject: [PATCH RFC 1/6] dt-bindings: dma: qcom,gpi: Retire passing the protocol ID Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250730-topic-dma_genise_cookie-v1-1-b505c1238f9f@oss.qualcomm.com> References: <20250730-topic-dma_genise_cookie-v1-0-b505c1238f9f@oss.qualcomm.com> In-Reply-To: <20250730-topic-dma_genise_cookie-v1-0-b505c1238f9f@oss.qualcomm.com> To: Vinod Koul , Sven Peter , Janne Grunau , Alyssa Rosenzweig , Neal Gompa , Ludovic Desroches , Florian Fainelli , Broadcom internal kernel review list , Ray Jui , Scott Branden , Paul Cercueil , Eugeniy Paltsev , Viresh Kumar , Andy Shevchenko , Frank Li , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Taichi Sugaya , Takao Orito , =?utf-8?q?Andreas_F=C3=A4rber?= , Manivannan Sadhasivam , Daniel Mack , Haojian Zhuang , Robert Jarzmik , Geert Uytterhoeven , Magnus Damm , Patrice Chotard , Linus Walleij , =?utf-8?q?Am=C3=A9lie_Delaunay?= , Maxime Coquelin , Alexandre Torgue , Chen-Yu Tsai , Jernej Skrabec , Samuel Holland , Laxman Dewangan , Jon Hunter , Thierry Reding , Peter Ujfalusi , Kunihiko Hayashi , Masami Hiramatsu , Michal Simek , Laurent Pinchart , Rob Herring , Saravana Kannan , =?utf-8?q?Martin_Povi=C5=A1er?= , Liam Girdwood , Mark Brown , Jaroslav Kysela , Takashi Iwai , Kuninori Morimoto , Mukesh Kumar Savaliya , Viken Dadhaniya , Andi Shyti , Krzysztof Kozlowski , Conor Dooley , Bjorn Andersson , Konrad Dybcio Cc: Marijn Suijten , dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org, asahi@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-rpi-kernel@lists.infradead.org, linux-mips@vger.kernel.org, imx@lists.linux.dev, linux-actions@lists.infradead.org, linux-arm-msm@vger.kernel.org, linux-renesas-soc@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, linux-sunxi@lists.linux.dev, linux-tegra@vger.kernel.org, devicetree@vger.kernel.org, linux-sound@vger.kernel.org, linux-i2c@vger.kernel.org, linux-spi@vger.kernel.org, Konrad Dybcio X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1753868049; l=1740; i=konrad.dybcio@oss.qualcomm.com; s=20230215; h=from:subject:message-id; bh=yNIS2ZIXL38n6NlfTncthlTW/cDDGkytjzcrGiY6noU=; b=jRMGBRYh5z3VhrE2hOQ/tsahlnmmCcC5+6eD5S7UtXRq/sQbsboibgpVNMlio7nRvIevSuKgV G2e4Ba2obqDAiq+P7fA3mJTvqy4/YFtc8YKHIuHXwOfKw1XAd4F1c9N X-Developer-Key: i=konrad.dybcio@oss.qualcomm.com; a=ed25519; pk=iclgkYvtl2w05SSXO5EjjSYlhFKsJ+5OSZBjOkQuEms= From: Konrad Dybcio This is a software construct that has no business being expressed in dt-bindings. Drivers can be constructed to retrieve the protocol ID at runtime or hardcode them per protocol. Remove it, as a pre-requisite for further simplifying the GENI bindings. Signed-off-by: Konrad Dybcio --- Documentation/devicetree/bindings/dma/qcom,gpi.yaml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Documentation/devicetree/bindings/dma/qcom,gpi.yaml b/Document= ation/devicetree/bindings/dma/qcom,gpi.yaml index bbe4da2a11054f0d272017ddf5d5f7e47cf7a443..745613b93b210afd38946030f74= 77e91e08c907a 100644 --- a/Documentation/devicetree/bindings/dma/qcom,gpi.yaml +++ b/Documentation/devicetree/bindings/dma/qcom,gpi.yaml @@ -61,14 +61,13 @@ properties: maxItems: 13 =20 "#dma-cells": - const: 3 + const: 2 description: > DMA clients must use the format described in dma.txt, giving a phand= le to the DMA controller plus the following 3 integer cells: - channel: if set to 0xffffffff, any available channel will be alloc= ated for the client. Otherwise, the exact channel specified will be use= d. - seid: serial id of the client as defined in the SoC documentation. - - client: type of the client as defined in dt-bindings/dma/qcom-gpi.h =20 iommus: maxItems: 1 @@ -98,7 +97,7 @@ examples: #include gpi_dma0: dma-controller@800000 { compatible =3D "qcom,sdm845-gpi-dma"; - #dma-cells =3D <3>; + #dma-cells =3D <2>; reg =3D <0x00800000 0x60000>; iommus =3D <&apps_smmu 0x0016 0x0>; dma-channels =3D <13>; --=20 2.50.1 From nobody Sun Oct 5 20:03:51 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D132B19D065; Wed, 30 Jul 2025 09:35:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753868105; cv=none; b=hqlZdfPKeO3M+JZW+aIBR8KoRacZDOqhm1cfiCM7900nc2YAQhQtISkRu1P/InCSVKW9tww5VIyTbQM4W1FVaAx2O8wZ6NyhXXnL2+stvWFykA8L5mMsJYSt2yrxauLp0pVrOcSBPG9bhuA5WWsTquNu5zyo2clXTiKoXi+S4dY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753868105; c=relaxed/simple; bh=10sLARnF5eV8ok4Slb1wNTcF5Nxs+ckq8ULmadkCi0M=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=TcC5CbRmeD5Gj2elroWjw8nYe5wc74YKUpZRikV0J7epYJ+Gvz4MbDwCS90u7xatrU7cF4rYdgs//9TyA/q2R1kiaTsT4UgECdMUBH3x5Rp/Jrlfk0Pw0Jf8MEaztZRXOKkNcS2TusuTp+Z+S863/ND7Vdre3Z2DP653hm0FuOg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=XNrZk2Iu; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="XNrZk2Iu" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 743F1C4CEE7; Wed, 30 Jul 2025 09:34:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1753868104; bh=10sLARnF5eV8ok4Slb1wNTcF5Nxs+ckq8ULmadkCi0M=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=XNrZk2Iuy+OR4AC7IwARnDMs9nPmYpwX0wdGRAOoTlKGxcUz4ZCGXrIDVSFu5rYOL f9ypzOFS0/BoyFRdxfm1mwE+CHbn2l8rrw83AktBeuB9aqMcLI+0MENm5FWLj19bfq uzKl8jxsyqL0tS7siFhaVMjFNmzgTRwwFOOXbHAtw8GtWiGUaEj4hskhjfz8fPrRRL jgbXighXs2535Bdp+dti2rmK3vLTBb9jzcvMjjhI5xrK4kV+kvBgDhabeHZOVGUT45 xxSbfE7ngED13yjtOSPtSH2QWqX+XmUau8Mse5a8OffW52LJYS8hBKQhmoTsLUZX+o wIXEQ6TliPLPA== From: Konrad Dybcio Date: Wed, 30 Jul 2025 11:33:29 +0200 Subject: [PATCH RFC 2/6] dmaengine: Make of_dma_request_slave_channel pass a cookie to of_xlate Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250730-topic-dma_genise_cookie-v1-2-b505c1238f9f@oss.qualcomm.com> References: <20250730-topic-dma_genise_cookie-v1-0-b505c1238f9f@oss.qualcomm.com> In-Reply-To: <20250730-topic-dma_genise_cookie-v1-0-b505c1238f9f@oss.qualcomm.com> To: Vinod Koul , Sven Peter , Janne Grunau , Alyssa Rosenzweig , Neal Gompa , Ludovic Desroches , Florian Fainelli , Broadcom internal kernel review list , Ray Jui , Scott Branden , Paul Cercueil , Eugeniy Paltsev , Viresh Kumar , Andy Shevchenko , Frank Li , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Taichi Sugaya , Takao Orito , =?utf-8?q?Andreas_F=C3=A4rber?= , Manivannan Sadhasivam , Daniel Mack , Haojian Zhuang , Robert Jarzmik , Geert Uytterhoeven , Magnus Damm , Patrice Chotard , Linus Walleij , =?utf-8?q?Am=C3=A9lie_Delaunay?= , Maxime Coquelin , Alexandre Torgue , Chen-Yu Tsai , Jernej Skrabec , Samuel Holland , Laxman Dewangan , Jon Hunter , Thierry Reding , Peter Ujfalusi , Kunihiko Hayashi , Masami Hiramatsu , Michal Simek , Laurent Pinchart , Rob Herring , Saravana Kannan , =?utf-8?q?Martin_Povi=C5=A1er?= , Liam Girdwood , Mark Brown , Jaroslav Kysela , Takashi Iwai , Kuninori Morimoto , Mukesh Kumar Savaliya , Viken Dadhaniya , Andi Shyti , Krzysztof Kozlowski , Conor Dooley , Bjorn Andersson , Konrad Dybcio Cc: Marijn Suijten , dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org, asahi@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-rpi-kernel@lists.infradead.org, linux-mips@vger.kernel.org, imx@lists.linux.dev, linux-actions@lists.infradead.org, linux-arm-msm@vger.kernel.org, linux-renesas-soc@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, linux-sunxi@lists.linux.dev, linux-tegra@vger.kernel.org, devicetree@vger.kernel.org, linux-sound@vger.kernel.org, linux-i2c@vger.kernel.org, linux-spi@vger.kernel.org, Konrad Dybcio X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1753868049; l=41147; i=konrad.dybcio@oss.qualcomm.com; s=20230215; h=from:subject:message-id; bh=9tS9fZeoHZSXBaYSdbV1jPZpu0UonCsud5z1b5FfPkA=; b=CSlwdyd8BXid7PbifYgkiQoJzLvbhBosOEFKzxAQ2ykBlPZmwvmzv8kaBt3QbC9LWJhp0Z4n1 7HfOQz+2yzFDpConPJUype0GI4VKqhzIuxuTq0VxSHjjjLMiFob/G+O X-Developer-Key: i=konrad.dybcio@oss.qualcomm.com; a=ed25519; pk=iclgkYvtl2w05SSXO5EjjSYlhFKsJ+5OSZBjOkQuEms= From: Konrad Dybcio The DMA subsystem attempts to make it theoretically possible to pair any DMA block with any user. While that's convenient from a codebase sanity perspective, some blocks are more intertwined. One such case is the Qualcomm GENI, where each wrapper contains a number of Serial Engine instances, each one of which can be programmed to support a different protocol (such as I2C, I3C, SPI, UART, etc.). The GPI DMA it's designed together with, needs to receive the ID of the protocol that's in use, to adjust its behavior accordingly. Currently, that's done through passing that ID through device tree, with each Serial Engine expressed NUM_PROTOCOL times, resulting in terrible dt-bindings that are full of useless copypasta. In a step to cut down on that, let the DMA user give the engine driver a hint at request time. Signed-off-by: Konrad Dybcio --- drivers/dma/amba-pl08x.c | 3 ++- drivers/dma/apple-admac.c | 3 ++- drivers/dma/at_hdmac.c | 6 ++++-- drivers/dma/at_xdmac.c | 3 ++- drivers/dma/bcm2835-dma.c | 3 ++- drivers/dma/dma-jz4780.c | 3 ++- drivers/dma/dmaengine.c | 20 +++++++++++++++++--- drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c | 3 ++- drivers/dma/dw/of.c | 3 ++- drivers/dma/ep93xx_dma.c | 6 ++++-- drivers/dma/fsl-edma-main.c | 6 ++++-- drivers/dma/img-mdc-dma.c | 3 ++- drivers/dma/imx-dma.c | 3 ++- drivers/dma/imx-sdma.c | 3 ++- drivers/dma/lgm/lgm-dma.c | 3 ++- drivers/dma/milbeaut-hdmac.c | 4 +++- drivers/dma/mmp_pdma.c | 3 ++- drivers/dma/mmp_tdma.c | 3 ++- drivers/dma/moxart-dma.c | 3 ++- drivers/dma/mxs-dma.c | 3 ++- drivers/dma/nbpfaxi.c | 3 ++- drivers/dma/of-dma.c | 18 +++++++++++------- drivers/dma/owl-dma.c | 3 ++- drivers/dma/pl330.c | 3 ++- drivers/dma/pxa_dma.c | 3 ++- drivers/dma/qcom/bam_dma.c | 3 ++- drivers/dma/qcom/gpi.c | 3 ++- drivers/dma/qcom/qcom_adm.c | 3 ++- drivers/dma/sh/rcar-dmac.c | 3 ++- drivers/dma/sh/rz-dmac.c | 3 ++- drivers/dma/sh/usb-dmac.c | 3 ++- drivers/dma/st_fdma.c | 3 ++- drivers/dma/ste_dma40.c | 3 ++- drivers/dma/stm32/stm32-dma.c | 3 ++- drivers/dma/stm32/stm32-dma3.c | 4 +++- drivers/dma/stm32/stm32-mdma.c | 3 ++- drivers/dma/sun4i-dma.c | 3 ++- drivers/dma/sun6i-dma.c | 3 ++- drivers/dma/tegra186-gpc-dma.c | 3 ++- drivers/dma/tegra20-apb-dma.c | 3 ++- drivers/dma/tegra210-adma.c | 3 ++- drivers/dma/ti/cppi41.c | 3 ++- drivers/dma/ti/edma.c | 3 ++- drivers/dma/ti/k3-udma.c | 3 ++- drivers/dma/uniphier-xdmac.c | 3 ++- drivers/dma/xilinx/xilinx_dma.c | 3 ++- drivers/dma/xilinx/xilinx_dpdma.c | 3 ++- drivers/dma/xilinx/zynqmp_dma.c | 3 ++- include/linux/dmaengine.h | 7 +++++++ include/linux/of_dma.h | 16 +++++++++------- sound/soc/apple/mca.c | 2 +- sound/soc/renesas/rcar/dma.c | 2 +- 52 files changed, 146 insertions(+), 68 deletions(-) diff --git a/drivers/dma/amba-pl08x.c b/drivers/dma/amba-pl08x.c index 38cdbca59485ca22fbe2aa4c786c1d4a69bf8a86..6427367dd459d98a032bded3e91= 5e989e3c4a699 100644 --- a/drivers/dma/amba-pl08x.c +++ b/drivers/dma/amba-pl08x.c @@ -2529,7 +2529,8 @@ static struct dma_chan *pl08x_find_chan_id(struct pl0= 8x_driver_data *pl08x, } =20 static struct dma_chan *pl08x_of_xlate(struct of_phandle_args *dma_spec, - struct of_dma *ofdma) + struct of_dma *ofdma, + void *data) { struct pl08x_driver_data *pl08x =3D ofdma->of_dma_data; struct dma_chan *dma_chan; diff --git a/drivers/dma/apple-admac.c b/drivers/dma/apple-admac.c index bd49f03742912198804a02a22e38da2c21093761..58507b9dab8c33defe60fa526f7= b9dd34a18f6e5 100644 --- a/drivers/dma/apple-admac.c +++ b/drivers/dma/apple-admac.c @@ -579,7 +579,8 @@ static void admac_free_chan_resources(struct dma_chan *= chan) } =20 static struct dma_chan *admac_dma_of_xlate(struct of_phandle_args *dma_spe= c, - struct of_dma *ofdma) + struct of_dma *ofdma, + void *data) { struct admac_data *ad =3D (struct admac_data *) ofdma->of_dma_data; unsigned int index; diff --git a/drivers/dma/at_hdmac.c b/drivers/dma/at_hdmac.c index 2d147712cbc69b5d296001a4e50cf46277798b89..137409c33441b6bb338c552875f= 01fc67825e8ef 100644 --- a/drivers/dma/at_hdmac.c +++ b/drivers/dma/at_hdmac.c @@ -1794,7 +1794,8 @@ static bool at_dma_filter(struct dma_chan *chan, void= *slave) } =20 static struct dma_chan *at_dma_xlate(struct of_phandle_args *dma_spec, - struct of_dma *of_dma) + struct of_dma *of_dma, + void *data) { struct dma_chan *chan; struct at_dma_chan *atchan; @@ -1861,7 +1862,8 @@ static struct dma_chan *at_dma_xlate(struct of_phandl= e_args *dma_spec, } #else static struct dma_chan *at_dma_xlate(struct of_phandle_args *dma_spec, - struct of_dma *of_dma) + struct of_dma *of_dma, + void *data) { return NULL; } diff --git a/drivers/dma/at_xdmac.c b/drivers/dma/at_xdmac.c index 3fbc74710a1336dfb0420fffdc9a1952da1a8f95..9f4c93cbc738e41fcf9042b2f97= 4f8abde8a58f7 100644 --- a/drivers/dma/at_xdmac.c +++ b/drivers/dma/at_xdmac.c @@ -633,7 +633,8 @@ static inline void at_xdmac_increment_block_count(struc= t dma_chan *chan, } =20 static struct dma_chan *at_xdmac_xlate(struct of_phandle_args *dma_spec, - struct of_dma *of_dma) + struct of_dma *of_dma, + void *data) { struct at_xdmac *atxdmac =3D of_dma->of_dma_data; struct at_xdmac_chan *atchan; diff --git a/drivers/dma/bcm2835-dma.c b/drivers/dma/bcm2835-dma.c index 0117bb2e8591be630d6682e9625574a1bcc80515..87069bca16328a29a175ab3f9b2= 39f08149ad396 100644 --- a/drivers/dma/bcm2835-dma.c +++ b/drivers/dma/bcm2835-dma.c @@ -860,7 +860,8 @@ static const struct of_device_id bcm2835_dma_of_match[]= =3D { MODULE_DEVICE_TABLE(of, bcm2835_dma_of_match); =20 static struct dma_chan *bcm2835_dma_xlate(struct of_phandle_args *spec, - struct of_dma *ofdma) + struct of_dma *ofdma, + void *data) { struct bcm2835_dmadev *d =3D ofdma->of_dma_data; struct dma_chan *chan; diff --git a/drivers/dma/dma-jz4780.c b/drivers/dma/dma-jz4780.c index 100057603fd4e1c4f11b678e5cf66517a509ec9b..b41d0b7ab936673812c0047e22d= bbf1e743176f1 100644 --- a/drivers/dma/dma-jz4780.c +++ b/drivers/dma/dma-jz4780.c @@ -803,7 +803,8 @@ static bool jz4780_dma_filter_fn(struct dma_chan *chan,= void *param) } =20 static struct dma_chan *jz4780_of_dma_xlate(struct of_phandle_args *dma_sp= ec, - struct of_dma *ofdma) + struct of_dma *ofdma, + void *data) { struct jz4780_dma_dev *jzdma =3D ofdma->of_dma_data; dma_cap_mask_t mask =3D jzdma->dma_device.cap_mask; diff --git a/drivers/dma/dmaengine.c b/drivers/dma/dmaengine.c index ca13cd39330ba4d822baaab412356a166b656350..a3f14c4da906e95a4dda07f09b2= b2e19b3bab22d 100644 --- a/drivers/dma/dmaengine.c +++ b/drivers/dma/dmaengine.c @@ -806,20 +806,21 @@ static const struct dma_slave_map *dma_filter_match(s= truct dma_device *device, } =20 /** - * dma_request_chan - try to allocate an exclusive slave channel + * dma_request_chan_w_data - try to allocate an exclusive slave channel, w= ith extra data * @dev: pointer to client device structure * @name: slave channel name + * @data: pointer to producer-consumer specific data * * Returns pointer to appropriate DMA channel on success or an error point= er. */ -struct dma_chan *dma_request_chan(struct device *dev, const char *name) +struct dma_chan *dma_request_chan_w_data(struct device *dev, const char *n= ame, void *data) { struct fwnode_handle *fwnode =3D dev_fwnode(dev); struct dma_device *d, *_d; struct dma_chan *chan =3D NULL; =20 if (is_of_node(fwnode)) - chan =3D of_dma_request_slave_channel(to_of_node(fwnode), name); + chan =3D of_dma_request_slave_channel(to_of_node(fwnode), name, data); else if (is_acpi_device_node(fwnode)) chan =3D acpi_dma_request_slave_chan_by_name(dev, name); =20 @@ -871,6 +872,19 @@ struct dma_chan *dma_request_chan(struct device *dev, = const char *name) =20 return chan; } +EXPORT_SYMBOL_GPL(dma_request_chan_w_data); + +/** + * dma_request_chan - try to allocate an exclusive slave channel + * @dev: pointer to client device structure + * @name: slave channel name + * + * Returns pointer to appropriate DMA channel on success or an error point= er. + */ +struct dma_chan *dma_request_chan(struct device *dev, const char *name) +{ + return dma_request_chan_w_data(dev, name, NULL); +} EXPORT_SYMBOL_GPL(dma_request_chan); =20 /** diff --git a/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c b/drivers/dma/d= w-axi-dmac/dw-axi-dmac-platform.c index b23536645ff7ccb59fa1363f500f742a41b7631f..fba3cc34a91d1017f4a5f69028e= 85a028bd9f94b 100644 --- a/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c +++ b/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c @@ -1358,7 +1358,8 @@ static int __maybe_unused axi_dma_runtime_resume(stru= ct device *dev) } =20 static struct dma_chan *dw_axi_dma_of_xlate(struct of_phandle_args *dma_sp= ec, - struct of_dma *ofdma) + struct of_dma *ofdma, + void *data) { struct dw_axi_dma *dw =3D ofdma->of_dma_data; struct axi_dma_chan *chan; diff --git a/drivers/dma/dw/of.c b/drivers/dma/dw/of.c index 523ca806837cb3c028f2ae7c1b3b7be7275344f1..92c320542fa6e9d60ac7abbda9a= c8ec207017d34 100644 --- a/drivers/dma/dw/of.c +++ b/drivers/dma/dw/of.c @@ -14,7 +14,8 @@ #include "internal.h" =20 static struct dma_chan *dw_dma_of_xlate(struct of_phandle_args *dma_spec, - struct of_dma *ofdma) + struct of_dma *ofdma, + void *data) { struct dw_dma *dw =3D ofdma->of_dma_data; struct dw_dma_slave slave =3D { diff --git a/drivers/dma/ep93xx_dma.c b/drivers/dma/ep93xx_dma.c index e424bb5c40e79c5784437c5b6e259c340fb30432..81e66580911c7894cad9558106a= 497f4a4c59bd4 100644 --- a/drivers/dma/ep93xx_dma.c +++ b/drivers/dma/ep93xx_dma.c @@ -1443,7 +1443,8 @@ static bool ep93xx_m2p_dma_filter(struct dma_chan *ch= an, void *filter_param) } =20 static struct dma_chan *ep93xx_m2p_dma_of_xlate(struct of_phandle_args *dm= a_spec, - struct of_dma *ofdma) + struct of_dma *ofdma, + void *data) { struct ep93xx_dma_engine *edma =3D ofdma->of_dma_data; dma_cap_mask_t mask =3D edma->dma_dev.cap_mask; @@ -1474,7 +1475,8 @@ static bool ep93xx_m2m_dma_filter(struct dma_chan *ch= an, void *filter_param) } =20 static struct dma_chan *ep93xx_m2m_dma_of_xlate(struct of_phandle_args *dm= a_spec, - struct of_dma *ofdma) + struct of_dma *ofdma, + void *data) { struct ep93xx_dma_engine *edma =3D ofdma->of_dma_data; dma_cap_mask_t mask =3D edma->dma_dev.cap_mask; diff --git a/drivers/dma/fsl-edma-main.c b/drivers/dma/fsl-edma-main.c index 97583c7d51a2e8e7a50c7eb4f5ff0582ac95798d..e9b2441779cee3278f0ab03c6a9= 57c00a7f8d0be 100644 --- a/drivers/dma/fsl-edma-main.c +++ b/drivers/dma/fsl-edma-main.c @@ -249,7 +249,8 @@ static bool fsl_edma_srcid_in_use(struct fsl_edma_engin= e *fsl_edma, u32 srcid) } =20 static struct dma_chan *fsl_edma_xlate(struct of_phandle_args *dma_spec, - struct of_dma *ofdma) + struct of_dma *ofdma, + void *data) { struct fsl_edma_engine *fsl_edma =3D ofdma->of_dma_data; struct dma_chan *chan, *_chan; @@ -292,7 +293,8 @@ static struct dma_chan *fsl_edma_xlate(struct of_phandl= e_args *dma_spec, } =20 static struct dma_chan *fsl_edma3_xlate(struct of_phandle_args *dma_spec, - struct of_dma *ofdma) + struct of_dma *ofdma, + void *data) { struct fsl_edma_engine *fsl_edma =3D ofdma->of_dma_data; struct dma_chan *chan, *_chan; diff --git a/drivers/dma/img-mdc-dma.c b/drivers/dma/img-mdc-dma.c index fd55bcd060ab89e7a871e4db26c4519985e90c2b..88a304af3ed2adfbb9566f161d8= b12c39d7ce86a 100644 --- a/drivers/dma/img-mdc-dma.c +++ b/drivers/dma/img-mdc-dma.c @@ -805,7 +805,8 @@ static irqreturn_t mdc_chan_irq(int irq, void *dev_id) } =20 static struct dma_chan *mdc_of_xlate(struct of_phandle_args *dma_spec, - struct of_dma *ofdma) + struct of_dma *ofdma, + void *data) { struct mdc_dma *mdma =3D ofdma->of_dma_data; struct dma_chan *chan; diff --git a/drivers/dma/imx-dma.c b/drivers/dma/imx-dma.c index ba434657059a8b984849a058afa501a89320d494..d0bd11f73f74f59af2e4bf96d18= 7fde459262e22 100644 --- a/drivers/dma/imx-dma.c +++ b/drivers/dma/imx-dma.c @@ -1016,7 +1016,8 @@ static bool imxdma_filter_fn(struct dma_chan *chan, v= oid *param) } =20 static struct dma_chan *imxdma_xlate(struct of_phandle_args *dma_spec, - struct of_dma *ofdma) + struct of_dma *ofdma, + void *data) { int count =3D dma_spec->args_count; struct imxdma_engine *imxdma =3D ofdma->of_dma_data; diff --git a/drivers/dma/imx-sdma.c b/drivers/dma/imx-sdma.c index 02a85d6f1bea2df7d355858094c0c0b0bd07148e..76dbe21cfa2bf97c5fac0ef7e6c= 4f73927c9d7de 100644 --- a/drivers/dma/imx-sdma.c +++ b/drivers/dma/imx-sdma.c @@ -2207,7 +2207,8 @@ static bool sdma_filter_fn(struct dma_chan *chan, voi= d *fn_param) } =20 static struct dma_chan *sdma_xlate(struct of_phandle_args *dma_spec, - struct of_dma *ofdma) + struct of_dma *ofdma, + void *data) { struct sdma_engine *sdma =3D ofdma->of_dma_data; dma_cap_mask_t mask =3D sdma->dma_device.cap_mask; diff --git a/drivers/dma/lgm/lgm-dma.c b/drivers/dma/lgm/lgm-dma.c index 8173c3f1075a629f54bb6172b9afd3579e51a91b..b51070fd2a7480321ac59258903= 200ae0bc0ecf0 100644 --- a/drivers/dma/lgm/lgm-dma.c +++ b/drivers/dma/lgm/lgm-dma.c @@ -1382,7 +1382,8 @@ update_client_configs(struct of_dma *ofdma, struct of= _phandle_args *spec) } =20 static struct dma_chan *ldma_xlate(struct of_phandle_args *spec, - struct of_dma *ofdma) + struct of_dma *ofdma, + void *data) { struct ldma_dev *d =3D ofdma->of_dma_data; u32 chan_id =3D spec->args[0]; diff --git a/drivers/dma/milbeaut-hdmac.c b/drivers/dma/milbeaut-hdmac.c index 9a5ec247ed6d924f364e9232e8a6de5476db7825..b4cdb707303264224977e5e876a= 8fd5fd42d9eb5 100644 --- a/drivers/dma/milbeaut-hdmac.c +++ b/drivers/dma/milbeaut-hdmac.c @@ -400,7 +400,9 @@ static void milbeaut_hdmac_desc_free(struct virt_dma_de= sc *vd) } =20 static struct dma_chan * -milbeaut_hdmac_xlate(struct of_phandle_args *dma_spec, struct of_dma *of_d= ma) +milbeaut_hdmac_xlate(struct of_phandle_args *dma_spec, + struct of_dma *of_dma, + void *data) { struct milbeaut_hdmac_device *mdev =3D of_dma->of_dma_data; struct milbeaut_hdmac_chan *mc; diff --git a/drivers/dma/mmp_pdma.c b/drivers/dma/mmp_pdma.c index a95d31103d3063a1d11177a1a37b89ac2fd213e9..d2cd00423d7871d93965210008e= e5b16044ab8a6 100644 --- a/drivers/dma/mmp_pdma.c +++ b/drivers/dma/mmp_pdma.c @@ -1001,7 +1001,8 @@ static const struct of_device_id mmp_pdma_dt_ids[] = =3D { MODULE_DEVICE_TABLE(of, mmp_pdma_dt_ids); =20 static struct dma_chan *mmp_pdma_dma_xlate(struct of_phandle_args *dma_spe= c, - struct of_dma *ofdma) + struct of_dma *ofdma, + void *data) { struct mmp_pdma_device *d =3D ofdma->of_dma_data; struct dma_chan *chan; diff --git a/drivers/dma/mmp_tdma.c b/drivers/dma/mmp_tdma.c index b7fb843c67a6f247395296fc726f7b6cab7d223f..cb4db4b266df31702de8c2b8bb5= b2206013d3284 100644 --- a/drivers/dma/mmp_tdma.c +++ b/drivers/dma/mmp_tdma.c @@ -607,7 +607,8 @@ static bool mmp_tdma_filter_fn(struct dma_chan *chan, v= oid *fn_param) } =20 static struct dma_chan *mmp_tdma_xlate(struct of_phandle_args *dma_spec, - struct of_dma *ofdma) + struct of_dma *ofdma, + void *data) { struct mmp_tdma_device *tdev =3D ofdma->of_dma_data; dma_cap_mask_t mask =3D tdev->device.cap_mask; diff --git a/drivers/dma/moxart-dma.c b/drivers/dma/moxart-dma.c index de09e1ab77676d3ff2070dfb30c9d03a9bb63e0d..2ce3e5c3ca511ac2c5d5f0f2962= 7819ecb518c96 100644 --- a/drivers/dma/moxart-dma.c +++ b/drivers/dma/moxart-dma.c @@ -321,7 +321,8 @@ static struct dma_async_tx_descriptor *moxart_prep_slav= e_sg( } =20 static struct dma_chan *moxart_of_xlate(struct of_phandle_args *dma_spec, - struct of_dma *ofdma) + struct of_dma *ofdma, + void *data) { struct moxart_dmadev *mdc =3D ofdma->of_dma_data; struct dma_chan *chan; diff --git a/drivers/dma/mxs-dma.c b/drivers/dma/mxs-dma.c index cfb9962417ef68e976ae03c3c6f3054dc89bd1e6..30209bf506fe93563423881610f= dd5b259decdaa 100644 --- a/drivers/dma/mxs-dma.c +++ b/drivers/dma/mxs-dma.c @@ -722,7 +722,8 @@ static bool mxs_dma_filter_fn(struct dma_chan *chan, vo= id *fn_param) } =20 static struct dma_chan *mxs_dma_xlate(struct of_phandle_args *dma_spec, - struct of_dma *ofdma) + struct of_dma *ofdma, + void *data) { struct mxs_dma_engine *mxs_dma =3D ofdma->of_dma_data; dma_cap_mask_t mask =3D mxs_dma->dma_device.cap_mask; diff --git a/drivers/dma/nbpfaxi.c b/drivers/dma/nbpfaxi.c index 765462303de098c01ee38540ae7e1cf70570e92e..d9387f34b886631144d06ef2d84= 75672f9bc79fd 100644 --- a/drivers/dma/nbpfaxi.c +++ b/drivers/dma/nbpfaxi.c @@ -1098,7 +1098,8 @@ static void nbpf_free_chan_resources(struct dma_chan = *dchan) } =20 static struct dma_chan *nbpf_of_xlate(struct of_phandle_args *dma_spec, - struct of_dma *ofdma) + struct of_dma *ofdma, + void *data) { struct nbpf_device *nbpf =3D ofdma->of_dma_data; struct dma_chan *dchan; diff --git a/drivers/dma/of-dma.c b/drivers/dma/of-dma.c index 423442e55d368d1e020b981306aa6b792c8b66b9..6cd8dd285c041dedb7ed61e18a1= cd91316ed0dda 100644 --- a/drivers/dma/of-dma.c +++ b/drivers/dma/of-dma.c @@ -53,7 +53,8 @@ static struct of_dma *of_dma_find_controller(const struct= of_phandle_args *dma_s * to request channel from the real DMA controller. */ static struct dma_chan *of_dma_router_xlate(struct of_phandle_args *dma_sp= ec, - struct of_dma *ofdma) + struct of_dma *ofdma, + void *data) { struct dma_chan *chan; struct of_dma *ofdma_target; @@ -74,7 +75,7 @@ static struct dma_chan *of_dma_router_xlate(struct of_pha= ndle_args *dma_spec, goto err; } =20 - chan =3D ofdma_target->of_dma_xlate(&dma_spec_target, ofdma_target); + chan =3D ofdma_target->of_dma_xlate(&dma_spec_target, ofdma_target, NULL); if (IS_ERR_OR_NULL(chan)) { ofdma->dma_router->route_free(ofdma->dma_router->dev, route_data); @@ -117,7 +118,7 @@ static struct dma_chan *of_dma_router_xlate(struct of_p= handle_args *dma_spec, */ int of_dma_controller_register(struct device_node *np, struct dma_chan *(*of_dma_xlate) - (struct of_phandle_args *, struct of_dma *), + (struct of_phandle_args *, struct of_dma *, void *), void *data) { struct of_dma *ofdma; @@ -249,7 +250,8 @@ static int of_dma_match_channel(struct device_node *np,= const char *name, * Returns pointer to appropriate DMA channel on success or an error point= er. */ struct dma_chan *of_dma_request_slave_channel(struct device_node *np, - const char *name) + const char *name, + void *data) { struct of_phandle_args dma_spec; struct of_dma *ofdma; @@ -289,7 +291,7 @@ struct dma_chan *of_dma_request_slave_channel(struct de= vice_node *np, ofdma =3D of_dma_find_controller(&dma_spec); =20 if (ofdma) { - chan =3D ofdma->of_dma_xlate(&dma_spec, ofdma); + chan =3D ofdma->of_dma_xlate(&dma_spec, ofdma, data); } else { ret_no_channel =3D -EPROBE_DEFER; chan =3D NULL; @@ -319,7 +321,8 @@ EXPORT_SYMBOL_GPL(of_dma_request_slave_channel); * pointer to appropriate dma channel on success or NULL on error. */ struct dma_chan *of_dma_simple_xlate(struct of_phandle_args *dma_spec, - struct of_dma *ofdma) + struct of_dma *ofdma, + void *data) { int count =3D dma_spec->args_count; struct of_dma_filter_info *info =3D ofdma->of_dma_data; @@ -349,7 +352,8 @@ EXPORT_SYMBOL_GPL(of_dma_simple_xlate); * Returns pointer to appropriate dma channel on success or NULL on error. */ struct dma_chan *of_dma_xlate_by_chan_id(struct of_phandle_args *dma_spec, - struct of_dma *ofdma) + struct of_dma *ofdma, + void *data) { struct dma_device *dev =3D ofdma->of_dma_data; struct dma_chan *chan, *candidate =3D NULL; diff --git a/drivers/dma/owl-dma.c b/drivers/dma/owl-dma.c index 57cec757d8f5687d465f8b2a7997709f91f03335..b80ae8c3cff2a787cf22ee24b9b= d7205c39ff997 100644 --- a/drivers/dma/owl-dma.c +++ b/drivers/dma/owl-dma.c @@ -1060,7 +1060,8 @@ static inline void owl_dma_free(struct owl_dma *od) } =20 static struct dma_chan *owl_dma_of_xlate(struct of_phandle_args *dma_spec, - struct of_dma *ofdma) + struct of_dma *ofdma, + void *data) { struct owl_dma *od =3D ofdma->of_dma_data; struct owl_dma_vchan *vchan; diff --git a/drivers/dma/pl330.c b/drivers/dma/pl330.c index 82a9fe88ad54c995616ceb9b4be63e3e884fa49f..0671cda5dcd767aa0a8492fc128= a9a0be0992ec5 100644 --- a/drivers/dma/pl330.c +++ b/drivers/dma/pl330.c @@ -2140,7 +2140,8 @@ static void pl330_tasklet(struct tasklet_struct *t) } =20 static struct dma_chan *of_dma_pl330_xlate(struct of_phandle_args *dma_spe= c, - struct of_dma *ofdma) + struct of_dma *ofdma, + void *data) { int count =3D dma_spec->args_count; struct pl330_dmac *pl330 =3D ofdma->of_dma_data; diff --git a/drivers/dma/pxa_dma.c b/drivers/dma/pxa_dma.c index 249296389771cf685b65eb11e38fd0262c26679d..94b7ba1cd0aa57c4a5eaa76cf6b= 7fdd5c5b479ed 100644 --- a/drivers/dma/pxa_dma.c +++ b/drivers/dma/pxa_dma.c @@ -1281,7 +1281,8 @@ static const struct of_device_id pxad_dt_ids[] =3D { MODULE_DEVICE_TABLE(of, pxad_dt_ids); =20 static struct dma_chan *pxad_dma_xlate(struct of_phandle_args *dma_spec, - struct of_dma *ofdma) + struct of_dma *ofdma, + void *data) { struct pxad_device *d =3D ofdma->of_dma_data; struct dma_chan *chan; diff --git a/drivers/dma/qcom/bam_dma.c b/drivers/dma/qcom/bam_dma.c index bbc3276992bb012a1b79937bdbd069fc01f75331..471500951dc493cbf9e4f085352= a37c11d0b9274 100644 --- a/drivers/dma/qcom/bam_dma.c +++ b/drivers/dma/qcom/bam_dma.c @@ -1165,7 +1165,8 @@ static void bam_dma_free_desc(struct virt_dma_desc *v= d) } =20 static struct dma_chan *bam_dma_xlate(struct of_phandle_args *dma_spec, - struct of_dma *of) + struct of_dma *of, + void *data) { struct bam_device *bdev =3D container_of(of->of_dma_data, struct bam_device, common); diff --git a/drivers/dma/qcom/gpi.c b/drivers/dma/qcom/gpi.c index 8e87738086b25ac37edbdcd5e237447f3e832e8e..51d19494099dae09f4579ba8c3e= ddfa0487bf487 100644 --- a/drivers/dma/qcom/gpi.c +++ b/drivers/dma/qcom/gpi.c @@ -2108,7 +2108,8 @@ static int gpi_find_avail_gpii(struct gpi_dev *gpi_de= v, u32 seid) =20 /* gpi_of_dma_xlate: open client requested channel */ static struct dma_chan *gpi_of_dma_xlate(struct of_phandle_args *args, - struct of_dma *of_dma) + struct of_dma *of_dma, + void *data) { struct gpi_dev *gpi_dev =3D (struct gpi_dev *)of_dma->of_dma_data; u32 seid, chid; diff --git a/drivers/dma/qcom/qcom_adm.c b/drivers/dma/qcom/qcom_adm.c index 6be54fddcee18f9be6b5fee9f55c4bbd9a99ca56..7702c1d904160cbaa73e79ce294= 08f576df6e1f4 100644 --- a/drivers/dma/qcom/qcom_adm.c +++ b/drivers/dma/qcom/qcom_adm.c @@ -716,7 +716,8 @@ static void adm_channel_init(struct adm_device *adev, s= truct adm_chan *achan, * Returns pointer to appropriate dma channel on success or NULL on error. */ static struct dma_chan *adm_dma_xlate(struct of_phandle_args *dma_spec, - struct of_dma *ofdma) + struct of_dma *ofdma, + void *data) { struct dma_device *dev =3D ofdma->of_dma_data; struct dma_chan *chan, *candidate =3D NULL; diff --git a/drivers/dma/sh/rcar-dmac.c b/drivers/dma/sh/rcar-dmac.c index 0c45ce8c74aa2dedb2764856453da4d9944ab83f..510424bfb86b344ffa2ff2dc566= a1d0fff826715 100644 --- a/drivers/dma/sh/rcar-dmac.c +++ b/drivers/dma/sh/rcar-dmac.c @@ -1700,7 +1700,8 @@ static bool rcar_dmac_chan_filter(struct dma_chan *ch= an, void *arg) } =20 static struct dma_chan *rcar_dmac_of_xlate(struct of_phandle_args *dma_spe= c, - struct of_dma *ofdma) + struct of_dma *ofdma, + void *data) { struct rcar_dmac_chan *rchan; struct dma_chan *chan; diff --git a/drivers/dma/sh/rz-dmac.c b/drivers/dma/sh/rz-dmac.c index 1f687b08d6b8677d9300b5c7274559bfc9574643..381a00db75da5e84336a5185233= 3efaa3001077e 100644 --- a/drivers/dma/sh/rz-dmac.c +++ b/drivers/dma/sh/rz-dmac.c @@ -767,7 +767,8 @@ static bool rz_dmac_chan_filter(struct dma_chan *chan, = void *arg) } =20 static struct dma_chan *rz_dmac_of_xlate(struct of_phandle_args *dma_spec, - struct of_dma *ofdma) + struct of_dma *ofdma, + void *data) { dma_cap_mask_t mask; =20 diff --git a/drivers/dma/sh/usb-dmac.c b/drivers/dma/sh/usb-dmac.c index 7e2b6c97fa2f97f2d3dfe323f684f65278f012ee..c1c141cc49ff40ac367150fecb4= 75a087cd8d827 100644 --- a/drivers/dma/sh/usb-dmac.c +++ b/drivers/dma/sh/usb-dmac.c @@ -646,7 +646,8 @@ static bool usb_dmac_chan_filter(struct dma_chan *chan,= void *arg) } =20 static struct dma_chan *usb_dmac_of_xlate(struct of_phandle_args *dma_spec, - struct of_dma *ofdma) + struct of_dma *ofdma, + void *data) { struct dma_chan *chan; dma_cap_mask_t mask; diff --git a/drivers/dma/st_fdma.c b/drivers/dma/st_fdma.c index c65ee0c7bfbdb2ade49e24618a5a83160440681d..cf78abb9654f4259a57faf63c01= 83212771dfae0 100644 --- a/drivers/dma/st_fdma.c +++ b/drivers/dma/st_fdma.c @@ -165,7 +165,8 @@ static irqreturn_t st_fdma_irq_handler(int irq, void *d= ev_id) } =20 static struct dma_chan *st_fdma_of_xlate(struct of_phandle_args *dma_spec, - struct of_dma *ofdma) + struct of_dma *ofdma, + void *data) { struct st_fdma_dev *fdev =3D ofdma->of_dma_data; struct dma_chan *chan; diff --git a/drivers/dma/ste_dma40.c b/drivers/dma/ste_dma40.c index d52e1685aed53ffa49c7c7f6d6a611a358e7f360..45ba20448354d840629495935b9= 63bc4574003ec 100644 --- a/drivers/dma/ste_dma40.c +++ b/drivers/dma/ste_dma40.c @@ -2365,7 +2365,8 @@ static void d40_set_prio_realtime(struct d40_chan *d4= 0c) #define D40_DT_FLAGS_HIGH_PRIO(flags) ((flags >> 4) & 0x1) =20 static struct dma_chan *d40_xlate(struct of_phandle_args *dma_spec, - struct of_dma *ofdma) + struct of_dma *ofdma, + void *data) { struct stedma40_chan_cfg cfg; dma_cap_mask_t cap; diff --git a/drivers/dma/stm32/stm32-dma.c b/drivers/dma/stm32/stm32-dma.c index 04389936c8a6a5970b43408173e3d9968e6b148c..a477030c2bbcf241d35b285af06= c9fb8f980b625 100644 --- a/drivers/dma/stm32/stm32-dma.c +++ b/drivers/dma/stm32/stm32-dma.c @@ -1519,7 +1519,8 @@ static void stm32_dma_set_config(struct stm32_dma_cha= n *chan, } =20 static struct dma_chan *stm32_dma_of_xlate(struct of_phandle_args *dma_spe= c, - struct of_dma *ofdma) + struct of_dma *ofdma, + void *data) { struct stm32_dma_device *dmadev =3D ofdma->of_dma_data; struct device *dev =3D dmadev->ddev.dev; diff --git a/drivers/dma/stm32/stm32-dma3.c b/drivers/dma/stm32/stm32-dma3.c index 50e7106c5cb73394c1de52ad5f571f6db63750e6..c63bd9f5640aae458da9c1522e8= d68f6290fe2c6 100644 --- a/drivers/dma/stm32/stm32-dma3.c +++ b/drivers/dma/stm32/stm32-dma3.c @@ -1582,7 +1582,9 @@ static bool stm32_dma3_filter_fn(struct dma_chan *c, = void *fn_param) return true; } =20 -static struct dma_chan *stm32_dma3_of_xlate(struct of_phandle_args *dma_sp= ec, struct of_dma *ofdma) +static struct dma_chan *stm32_dma3_of_xlate(struct of_phandle_args *dma_sp= ec, + struct of_dma *ofdma, + void *data) { struct stm32_dma3_ddata *ddata =3D ofdma->of_dma_data; dma_cap_mask_t mask =3D ddata->dma_dev.cap_mask; diff --git a/drivers/dma/stm32/stm32-mdma.c b/drivers/dma/stm32/stm32-mdma.c index 080c1c725216cb627675c372591b4c0c227c3cea..8700ff0308ea71fff6a35f0c0c4= 071f3bd60d4a3 100644 --- a/drivers/dma/stm32/stm32-mdma.c +++ b/drivers/dma/stm32/stm32-mdma.c @@ -1539,7 +1539,8 @@ static bool stm32_mdma_filter_fn(struct dma_chan *c, = void *fn_param) } =20 static struct dma_chan *stm32_mdma_of_xlate(struct of_phandle_args *dma_sp= ec, - struct of_dma *ofdma) + struct of_dma *ofdma, + void *data) { struct stm32_mdma_device *dmadev =3D ofdma->of_dma_data; dma_cap_mask_t mask =3D dmadev->ddev.cap_mask; diff --git a/drivers/dma/sun4i-dma.c b/drivers/dma/sun4i-dma.c index 00d2fd38d17f65a5fcbb4d0ec57c2361f499d3c7..4a71f64439c83154f7699ba3a37= dd6bcb706b85e 100644 --- a/drivers/dma/sun4i-dma.c +++ b/drivers/dma/sun4i-dma.c @@ -1018,7 +1018,8 @@ static int sun4i_dma_config(struct dma_chan *chan, } =20 static struct dma_chan *sun4i_dma_of_xlate(struct of_phandle_args *dma_spe= c, - struct of_dma *ofdma) + struct of_dma *ofdma, + void *data) { struct sun4i_dma_dev *priv =3D ofdma->of_dma_data; struct sun4i_dma_vchan *vchan; diff --git a/drivers/dma/sun6i-dma.c b/drivers/dma/sun6i-dma.c index 2215ff877bf7d024d1885c37c98187b519c75980..715d7ba6e681d9053eb0f31f045= 6e75938586a89 100644 --- a/drivers/dma/sun6i-dma.c +++ b/drivers/dma/sun6i-dma.c @@ -1029,7 +1029,8 @@ static void sun6i_dma_free_chan_resources(struct dma_= chan *chan) } =20 static struct dma_chan *sun6i_dma_of_xlate(struct of_phandle_args *dma_spe= c, - struct of_dma *ofdma) + struct of_dma *ofdma, + void *data) { struct sun6i_dma_dev *sdev =3D ofdma->of_dma_data; struct sun6i_vchan *vchan; diff --git a/drivers/dma/tegra186-gpc-dma.c b/drivers/dma/tegra186-gpc-dma.c index 4d6fe0efa76e4b4270958e5cfeecdc7d5c762414..171ece174300553c39242a7fd69= 1f5e8fd65ccf5 100644 --- a/drivers/dma/tegra186-gpc-dma.c +++ b/drivers/dma/tegra186-gpc-dma.c @@ -1289,7 +1289,8 @@ static void tegra_dma_free_chan_resources(struct dma_= chan *dc) } =20 static struct dma_chan *tegra_dma_of_xlate(struct of_phandle_args *dma_spe= c, - struct of_dma *ofdma) + struct of_dma *ofdma, + void *data) { struct tegra_dma *tdma =3D ofdma->of_dma_data; struct tegra_dma_channel *tdc; diff --git a/drivers/dma/tegra20-apb-dma.c b/drivers/dma/tegra20-apb-dma.c index 14a61e53a41b73f29bb2ab04ae9d95421280f51c..8d0976a50e6f035fe9765ef5259= c2a8173060151 100644 --- a/drivers/dma/tegra20-apb-dma.c +++ b/drivers/dma/tegra20-apb-dma.c @@ -1343,7 +1343,8 @@ static void tegra_dma_free_chan_resources(struct dma_= chan *dc) } =20 static struct dma_chan *tegra_dma_of_xlate(struct of_phandle_args *dma_spe= c, - struct of_dma *ofdma) + struct of_dma *ofdma, + void *data) { struct tegra_dma *tdma =3D ofdma->of_dma_data; struct tegra_dma_channel *tdc; diff --git a/drivers/dma/tegra210-adma.c b/drivers/dma/tegra210-adma.c index fad896ff29a2d3f5b2605ae2bc93e1b5b2349978..e8343d0264f729bffa919a1774d= 0df3fc78d6c0c 100644 --- a/drivers/dma/tegra210-adma.c +++ b/drivers/dma/tegra210-adma.c @@ -802,7 +802,8 @@ static void tegra_adma_free_chan_resources(struct dma_c= han *dc) } =20 static struct dma_chan *tegra_dma_of_xlate(struct of_phandle_args *dma_spe= c, - struct of_dma *ofdma) + struct of_dma *ofdma, + void *data) { struct tegra_adma *tdma =3D ofdma->of_dma_data; struct tegra_adma_chan *tdc; diff --git a/drivers/dma/ti/cppi41.c b/drivers/dma/ti/cppi41.c index 8d8c3d6038fcc20b43d1b31292092cde00dc123e..c0947a6a35b37868ed7c60a1466= 035d143896d7c 100644 --- a/drivers/dma/ti/cppi41.c +++ b/drivers/dma/ti/cppi41.c @@ -981,7 +981,8 @@ static struct of_dma_filter_info cpp41_dma_info =3D { }; =20 static struct dma_chan *cppi41_dma_xlate(struct of_phandle_args *dma_spec, - struct of_dma *ofdma) + struct of_dma *ofdma, + void *data) { int count =3D dma_spec->args_count; struct of_dma_filter_info *info =3D ofdma->of_dma_data; diff --git a/drivers/dma/ti/edma.c b/drivers/dma/ti/edma.c index 3ed406f08c442e1930aca4d15059d914eca4b55e..4fe6c0fae307e1bdb50a354d46c= 11ae38fe503db 100644 --- a/drivers/dma/ti/edma.c +++ b/drivers/dma/ti/edma.c @@ -2275,7 +2275,8 @@ static struct edma_soc_info *edma_setup_info_from_dt(= struct device *dev, } =20 static struct dma_chan *of_edma_xlate(struct of_phandle_args *dma_spec, - struct of_dma *ofdma) + struct of_dma *ofdma, + void *data) { return NULL; } diff --git a/drivers/dma/ti/k3-udma.c b/drivers/dma/ti/k3-udma.c index aa2dc762140f6eee334f4506a592e72600ae9834..22e5a61a3a3364723c64bf45483= 37714d7b9bfa6 100644 --- a/drivers/dma/ti/k3-udma.c +++ b/drivers/dma/ti/k3-udma.c @@ -4250,7 +4250,8 @@ static bool udma_dma_filter_fn(struct dma_chan *chan,= void *param) } =20 static struct dma_chan *udma_of_xlate(struct of_phandle_args *dma_spec, - struct of_dma *ofdma) + struct of_dma *ofdma, + void *data) { struct udma_dev *ud =3D ofdma->of_dma_data; struct udma_filter_param filter_param; diff --git a/drivers/dma/uniphier-xdmac.c b/drivers/dma/uniphier-xdmac.c index ceeb6171c9d1174cc643e9b5e7c70f6488884aec..ea8e8e244b3a994005e1e3b44bb= b0dcc36886c92 100644 --- a/drivers/dma/uniphier-xdmac.c +++ b/drivers/dma/uniphier-xdmac.c @@ -464,7 +464,8 @@ static void uniphier_xdmac_chan_init(struct uniphier_xd= mac_device *xdev, } =20 static struct dma_chan *of_dma_uniphier_xlate(struct of_phandle_args *dma_= spec, - struct of_dma *ofdma) + struct of_dma *ofdma, + void *data) { struct uniphier_xdmac_device *xdev =3D ofdma->of_dma_data; int chan_id =3D dma_spec->args[0]; diff --git a/drivers/dma/xilinx/xilinx_dma.c b/drivers/dma/xilinx/xilinx_dm= a.c index a34d8f0ceed8b18402954e5a27555e2a2978cb7b..359f419535140b980d003cf0a49= bbcbeded906dc 100644 --- a/drivers/dma/xilinx/xilinx_dma.c +++ b/drivers/dma/xilinx/xilinx_dma.c @@ -3005,7 +3005,8 @@ static int xilinx_dma_child_probe(struct xilinx_dma_d= evice *xdev, * Return: DMA channel pointer on success and NULL on error */ static struct dma_chan *of_dma_xilinx_xlate(struct of_phandle_args *dma_sp= ec, - struct of_dma *ofdma) + struct of_dma *ofdma, + void *data) { struct xilinx_dma_device *xdev =3D ofdma->of_dma_data; int chan_id =3D dma_spec->args[0]; diff --git a/drivers/dma/xilinx/xilinx_dpdma.c b/drivers/dma/xilinx/xilinx_= dpdma.c index ee5d9fdbfd7fa84f82fd45970151c056275ce7d3..efa0dcb25fa016e76ef41f784d9= b651065e1285f 100644 --- a/drivers/dma/xilinx/xilinx_dpdma.c +++ b/drivers/dma/xilinx/xilinx_dpdma.c @@ -1689,7 +1689,8 @@ static void xilinx_dpdma_chan_remove(struct xilinx_dp= dma_chan *chan) } =20 static struct dma_chan *of_dma_xilinx_xlate(struct of_phandle_args *dma_sp= ec, - struct of_dma *ofdma) + struct of_dma *ofdma, + void *data) { struct xilinx_dpdma_device *xdev =3D ofdma->of_dma_data; u32 chan_id =3D dma_spec->args[0]; diff --git a/drivers/dma/xilinx/zynqmp_dma.c b/drivers/dma/xilinx/zynqmp_dm= a.c index d05fc5fcc77dcedd32cc23c99d084504647c31aa..717ab63f398a12c31035ca8bda7= 8a9d4db9ce325 100644 --- a/drivers/dma/xilinx/zynqmp_dma.c +++ b/drivers/dma/xilinx/zynqmp_dma.c @@ -972,7 +972,8 @@ static int zynqmp_dma_chan_probe(struct zynqmp_dma_devi= ce *zdev, * Return: DMA channel pointer on success and NULL on error */ static struct dma_chan *of_zynqmp_dma_xlate(struct of_phandle_args *dma_sp= ec, - struct of_dma *ofdma) + struct of_dma *ofdma, + void *data) { struct zynqmp_dma_device *zdev =3D ofdma->of_dma_data; =20 diff --git a/include/linux/dmaengine.h b/include/linux/dmaengine.h index 6de7c05d6bd8c99e176fe2fde0a9c3b55d40b37c..586f871234e60cd2e042bda124d= b5c8aed5ea814 100644 --- a/include/linux/dmaengine.h +++ b/include/linux/dmaengine.h @@ -1522,6 +1522,7 @@ struct dma_chan *__dma_request_channel(const dma_cap_= mask_t *mask, dma_filter_fn fn, void *fn_param, struct device_node *np); =20 +struct dma_chan *dma_request_chan_w_data(struct device *dev, const char *n= ame, void *data); struct dma_chan *dma_request_chan(struct device *dev, const char *name); struct dma_chan *dma_request_chan_by_mask(const dma_cap_mask_t *mask); struct dma_chan *devm_dma_request_chan(struct device *dev, const char *nam= e); @@ -1551,6 +1552,12 @@ static inline struct dma_chan *__dma_request_channel= (const dma_cap_mask_t *mask, { return NULL; } +struct dma_chan *dma_request_chan_w_data(struct device *dev, + const char *name, + void *data) +{ + return ERR_PTR(-ENODEV); +} static inline struct dma_chan *dma_request_chan(struct device *dev, const char *name) { diff --git a/include/linux/of_dma.h b/include/linux/of_dma.h index fd706cdf255c61c82ce30ef9a2c44930bef34bc8..9f9bc4207b85d48d73c25aad4b3= 62e7c84c01756 100644 --- a/include/linux/of_dma.h +++ b/include/linux/of_dma.h @@ -19,7 +19,7 @@ struct of_dma { struct list_head of_dma_controllers; struct device_node *of_node; struct dma_chan *(*of_dma_xlate) - (struct of_phandle_args *, struct of_dma *); + (struct of_phandle_args *, struct of_dma *, void *); void *(*of_dma_route_allocate) (struct of_phandle_args *, struct of_dma *); struct dma_router *dma_router; @@ -34,7 +34,7 @@ struct of_dma_filter_info { #ifdef CONFIG_DMA_OF extern int of_dma_controller_register(struct device_node *np, struct dma_chan *(*of_dma_xlate) - (struct of_phandle_args *, struct of_dma *), + (struct of_phandle_args *, struct of_dma *, void *), void *data); extern void of_dma_controller_free(struct device_node *np); =20 @@ -45,16 +45,17 @@ extern int of_dma_router_register(struct device_node *n= p, #define of_dma_router_free of_dma_controller_free =20 extern struct dma_chan *of_dma_request_slave_channel(struct device_node *n= p, - const char *name); + const char *name, + void *data); extern struct dma_chan *of_dma_simple_xlate(struct of_phandle_args *dma_sp= ec, - struct of_dma *ofdma); + struct of_dma *ofdma, void *data); extern struct dma_chan *of_dma_xlate_by_chan_id(struct of_phandle_args *dm= a_spec, - struct of_dma *ofdma); + struct of_dma *ofdma, void *data); =20 #else static inline int of_dma_controller_register(struct device_node *np, struct dma_chan *(*of_dma_xlate) - (struct of_phandle_args *, struct of_dma *), + (struct of_phandle_args *, struct of_dma *, void *), void *data) { return -ENODEV; @@ -75,7 +76,8 @@ static inline int of_dma_router_register(struct device_no= de *np, #define of_dma_router_free of_dma_controller_free =20 static inline struct dma_chan *of_dma_request_slave_channel(struct device_= node *np, - const char *name) + const char *name, + void *data) { return ERR_PTR(-ENODEV); } diff --git a/sound/soc/apple/mca.c b/sound/soc/apple/mca.c index 5dd24ab90d0f052bb48f451cf009dc2e9128014d..43d48e4ac8161ee9955120fe64f= 7b911bfdfe1ca 100644 --- a/sound/soc/apple/mca.c +++ b/sound/soc/apple/mca.c @@ -926,7 +926,7 @@ static struct dma_chan *mca_request_dma_channel(struct = mca_cluster *cl, unsigned char *name =3D devm_kasprintf(cl->host->dev, GFP_KERNEL, is_tx ? "tx%da" : "rx%db", cl->no); #endif - return of_dma_request_slave_channel(cl->host->dev->of_node, name); + return of_dma_request_slave_channel(cl->host->dev->of_node, name, NULL); =20 } =20 diff --git a/sound/soc/renesas/rcar/dma.c b/sound/soc/renesas/rcar/dma.c index 2035ce06fe4c4aeaa8620d817910a5319732fa58..dcbff2fc61a0472adea22637101= 6a128563b3cd0 100644 --- a/sound/soc/renesas/rcar/dma.c +++ b/sound/soc/renesas/rcar/dma.c @@ -204,7 +204,7 @@ struct dma_chan *rsnd_dma_request_channel(struct device= _node *of_node, char *nam } =20 if (i =3D=3D rsnd_mod_id_raw(mod) && (!chan)) - chan =3D of_dma_request_slave_channel(np, x); + chan =3D of_dma_request_slave_channel(np, x, NULL); i++; } =20 --=20 2.50.1 From nobody Sun Oct 5 20:03:51 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A89E91F1306; Wed, 30 Jul 2025 09:35:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753868121; cv=none; b=c1MXWSyA4qhBfKZwXjfYS1/8ejj5XqV1ygAqlRK3IKtxhimEIl16GT3iztZ8dxyhhCIQrytV3jqa0HJ0tfsFVTh1eLZ/WlMwb5hYaLUGmIWIkXpVepqM5hKhRdMczWUSgN6olREuGWhFAFc78TI5ig8gOl2wsaJdVnItjpJM+6M= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753868121; c=relaxed/simple; bh=aA06HY/lOSd3mPr1XSqrpLr6Pd2WiKly7Q4jhNILr0k=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=ARfxm53/ZGwtb8zwJPGeJ42aNY1UebTixQcNcE/ZQXmSHA9899VXdQ0JQjsrakzQqKm9V3urLaHILzwaRUu0pN3nxhaVUZ0KMDq9i7dYyJecRQUIwA0Es/+x9VFvrCufssslDrtOYZ53J/IBfDJv5Y869YHRVzvb2L0wqzl19aA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=X20Qu+oA; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="X20Qu+oA" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 26518C4CEFA; Wed, 30 Jul 2025 09:35:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1753868121; bh=aA06HY/lOSd3mPr1XSqrpLr6Pd2WiKly7Q4jhNILr0k=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=X20Qu+oAGYALAZW8LlI1Jp8MQCufmMbh8UsHOAntPiRCfIo1vVPagWzlUeHRzM2ib jT+xdrw78SNuwjwUb32cbcH3mgxpAoXOZ4Zg1j7NWUooGA/ZzGBOiH9W1L4GWjRWFE B/+oPbMaoJ/wt9VhCc9QhlTLuuet2qAKY9aLNueH8qcl65h6W6ooJqVilX5yoB1mc8 zFhYhT2q7996B2D9NvA675YD22D615U/u5YdtI7LVxBEYGg2dY0FpjSl9cAboL4RVk 4+8DZ3a/6AahKCAFKmzPsmsdjdV/g3ZCQmkNFHI+3Z7iMJIgQJNyHvl7PPoaU4c/bH BKWc4j/OR9R6Q== From: Konrad Dybcio Date: Wed, 30 Jul 2025 11:33:30 +0200 Subject: [PATCH RFC 3/6] dmaengine: qcom: gpi: Accept protocol ID hints Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250730-topic-dma_genise_cookie-v1-3-b505c1238f9f@oss.qualcomm.com> References: <20250730-topic-dma_genise_cookie-v1-0-b505c1238f9f@oss.qualcomm.com> In-Reply-To: <20250730-topic-dma_genise_cookie-v1-0-b505c1238f9f@oss.qualcomm.com> To: Vinod Koul , Sven Peter , Janne Grunau , Alyssa Rosenzweig , Neal Gompa , Ludovic Desroches , Florian Fainelli , Broadcom internal kernel review list , Ray Jui , Scott Branden , Paul Cercueil , Eugeniy Paltsev , Viresh Kumar , Andy Shevchenko , Frank Li , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Taichi Sugaya , Takao Orito , =?utf-8?q?Andreas_F=C3=A4rber?= , Manivannan Sadhasivam , Daniel Mack , Haojian Zhuang , Robert Jarzmik , Geert Uytterhoeven , Magnus Damm , Patrice Chotard , Linus Walleij , =?utf-8?q?Am=C3=A9lie_Delaunay?= , Maxime Coquelin , Alexandre Torgue , Chen-Yu Tsai , Jernej Skrabec , Samuel Holland , Laxman Dewangan , Jon Hunter , Thierry Reding , Peter Ujfalusi , Kunihiko Hayashi , Masami Hiramatsu , Michal Simek , Laurent Pinchart , Rob Herring , Saravana Kannan , =?utf-8?q?Martin_Povi=C5=A1er?= , Liam Girdwood , Mark Brown , Jaroslav Kysela , Takashi Iwai , Kuninori Morimoto , Mukesh Kumar Savaliya , Viken Dadhaniya , Andi Shyti , Krzysztof Kozlowski , Conor Dooley , Bjorn Andersson , Konrad Dybcio Cc: Marijn Suijten , dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org, asahi@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-rpi-kernel@lists.infradead.org, linux-mips@vger.kernel.org, imx@lists.linux.dev, linux-actions@lists.infradead.org, linux-arm-msm@vger.kernel.org, linux-renesas-soc@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, linux-sunxi@lists.linux.dev, linux-tegra@vger.kernel.org, devicetree@vger.kernel.org, linux-sound@vger.kernel.org, linux-i2c@vger.kernel.org, linux-spi@vger.kernel.org, Konrad Dybcio X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1753868049; l=2282; i=konrad.dybcio@oss.qualcomm.com; s=20230215; h=from:subject:message-id; bh=hT9/eTcrm4TFika8xoyExyqhdwm/y3dhh9PjlVi8zDo=; b=rFCrLSTCp6a2Uf6sMUaFPcqvBgaQoklHtJ66/j+p46U6SPZphS90PFnkwzDJjknQfkSaPRA61 hdswKqRCxQHBYk8hSzo3z4zQMrQXXMGPR2fTI1C8CqBTvD4QZfE497x X-Developer-Key: i=konrad.dybcio@oss.qualcomm.com; a=ed25519; pk=iclgkYvtl2w05SSXO5EjjSYlhFKsJ+5OSZBjOkQuEms= From: Konrad Dybcio Client drivers may now pass hints to dmaengine drivers. GPI DMA's only consumers (GENI SEs) need to pass a protocol (I2C, I3C, SPI, etc.) ID to the DMA engine driver, for it to take different actions. Currently, that's done through passing that ID through device tree, with each Serial Engine expressed NUM_PROTOCOL times, resulting in terrible dt-bindings that are full of useless copypasta. To help get rid of that, accept the driver cookie instead, while keeping backwards compatibility. Signed-off-by: Konrad Dybcio --- drivers/dma/qcom/gpi.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/drivers/dma/qcom/gpi.c b/drivers/dma/qcom/gpi.c index 51d19494099dae09f4579ba8c3eddfa0487bf487..de9e564dc21b2230c9446dfb881= 135003721a750 100644 --- a/drivers/dma/qcom/gpi.c +++ b/drivers/dma/qcom/gpi.c @@ -17,6 +17,8 @@ #include "../dmaengine.h" #include "../virt-dma.h" =20 +#include + #define TRE_TYPE_DMA 0x10 #define TRE_TYPE_IMMEDIATE_DMA 0x11 #define TRE_TYPE_GO 0x20 @@ -2109,15 +2111,19 @@ static int gpi_find_avail_gpii(struct gpi_dev *gpi_= dev, u32 seid) /* gpi_of_dma_xlate: open client requested channel */ static struct dma_chan *gpi_of_dma_xlate(struct of_phandle_args *args, struct of_dma *of_dma, - void *data) + void *proto) { struct gpi_dev *gpi_dev =3D (struct gpi_dev *)of_dma->of_dma_data; u32 seid, chid; int gpii; struct gchan *gchan; =20 - if (args->args_count < 3) { - dev_err(gpi_dev->dev, "gpii require minimum 2 args, client passed:%d arg= s\n", + /* The protocol ID has been historically stored in the third cell */ + if (!proto && args->args_count < 3) + return NULL; + + if (args->args_count < 2) { + dev_err(gpi_dev->dev, "gpii requires minimum 2 args, client passed:%d ar= gs\n", args->args_count); return NULL; } @@ -2145,7 +2151,8 @@ static struct dma_chan *gpi_of_dma_xlate(struct of_ph= andle_args *args, } =20 gchan->seid =3D seid; - gchan->protocol =3D args->args[2]; + /* The protocol ID is in the teens range, simply ignore the higher bits */ + gchan->protocol =3D (u32)((u64)proto); =20 return dma_get_slave_channel(&gchan->vc.chan); } --=20 2.50.1 From nobody Sun Oct 5 20:03:51 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7272A269806; Wed, 30 Jul 2025 09:35:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753868139; cv=none; b=I+lmfC4eNcVKms/sGXVlyRnnXbaV+AyKLof1FmZSHu+zfLW/d4bM+AEvmjiAnj1viNfcPLT+EqxCczhDGWrLYTY4CX0c1GixRLEwH8ptBWLPHFo+onuyptjnEKTNM9vTXTusPOAAubWeJFf20/2BNEfvj4r3lr5ofjjFzUPr4X8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753868139; c=relaxed/simple; bh=gPmFOCUj56gB0mgUUsKxqdENITaoV8SNoAcVzVDUVXQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=VHUr5TjMlA8fwkCUt6WW0K6k+QsCsjeio5BkpZ8uSumJvogzdb/G3qiDmfDuNRxO4+MWkzgdajFjy4YvNWFEMekuymlANWsJHf/CGPWyxTpsUZptF+IHJz2LcjNvQLXvUteJrsMeXtTkAHdkuJVwk9S1+98p39ZuELoCKHE4+Mg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=gUey1day; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="gUey1day" Received: by smtp.kernel.org (Postfix) with ESMTPSA id B07B0C4CEF6; Wed, 30 Jul 2025 09:35:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1753868137; bh=gPmFOCUj56gB0mgUUsKxqdENITaoV8SNoAcVzVDUVXQ=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=gUey1daysHX4CjFYuMEGjnbmPolvDXae9NnSIwYiFjcedOZLw+Z1H91EszY3i9Bc+ RQb/4FH768f4vRWIXstiydvBg+lsjMHIYvVN+AQ0Luf2kvzaT/+ifGBQ7GjMRHFqct tLb1O8mFe9RIBntuWpGyZY+EnmBlnKZdEPAXnHzfDreCdthUu7eGCtl3xQ1/l1Kxe5 AYTdZjvbTKquJpRVroXwWZ5ko5AHCLbaAde97Nidc33PwK9Cmfdm7LwL1SMxNmoOhU UCe10rrtQlM4Jt4MzH4+scSeEZXRR7w5bPsNNJosKHQPaDrtTYSR9/fDH1RhxNM6ij rZmNU67Z9qVvw== From: Konrad Dybcio Date: Wed, 30 Jul 2025 11:33:31 +0200 Subject: [PATCH RFC 4/6] i2c: qcom-geni: Hint GENI protocol ID to GPI DMA Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250730-topic-dma_genise_cookie-v1-4-b505c1238f9f@oss.qualcomm.com> References: <20250730-topic-dma_genise_cookie-v1-0-b505c1238f9f@oss.qualcomm.com> In-Reply-To: <20250730-topic-dma_genise_cookie-v1-0-b505c1238f9f@oss.qualcomm.com> To: Vinod Koul , Sven Peter , Janne Grunau , Alyssa Rosenzweig , Neal Gompa , Ludovic Desroches , Florian Fainelli , Broadcom internal kernel review list , Ray Jui , Scott Branden , Paul Cercueil , Eugeniy Paltsev , Viresh Kumar , Andy Shevchenko , Frank Li , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Taichi Sugaya , Takao Orito , =?utf-8?q?Andreas_F=C3=A4rber?= , Manivannan Sadhasivam , Daniel Mack , Haojian Zhuang , Robert Jarzmik , Geert Uytterhoeven , Magnus Damm , Patrice Chotard , Linus Walleij , =?utf-8?q?Am=C3=A9lie_Delaunay?= , Maxime Coquelin , Alexandre Torgue , Chen-Yu Tsai , Jernej Skrabec , Samuel Holland , Laxman Dewangan , Jon Hunter , Thierry Reding , Peter Ujfalusi , Kunihiko Hayashi , Masami Hiramatsu , Michal Simek , Laurent Pinchart , Rob Herring , Saravana Kannan , =?utf-8?q?Martin_Povi=C5=A1er?= , Liam Girdwood , Mark Brown , Jaroslav Kysela , Takashi Iwai , Kuninori Morimoto , Mukesh Kumar Savaliya , Viken Dadhaniya , Andi Shyti , Krzysztof Kozlowski , Conor Dooley , Bjorn Andersson , Konrad Dybcio Cc: Marijn Suijten , dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org, asahi@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-rpi-kernel@lists.infradead.org, linux-mips@vger.kernel.org, imx@lists.linux.dev, linux-actions@lists.infradead.org, linux-arm-msm@vger.kernel.org, linux-renesas-soc@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, linux-sunxi@lists.linux.dev, linux-tegra@vger.kernel.org, devicetree@vger.kernel.org, linux-sound@vger.kernel.org, linux-i2c@vger.kernel.org, linux-spi@vger.kernel.org, Konrad Dybcio X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1753868049; l=1290; i=konrad.dybcio@oss.qualcomm.com; s=20230215; h=from:subject:message-id; bh=I3VYNNnaYUUJT+yNxJu2LDKZ0p5QFLebL1fPwM6iQcU=; b=r8aKTBYPiwfltdkmnV7Jw0zxdzT1E+Hq8RSvGglxlhd/28VcOh7CqbzzK2Fs5vifRSyZ6bAiZ 4ZgyjRNT4cvDIvkGt7EnjNhvpWuKR/4k4cVpRwSghCBSCh7hc6aFGyn X-Developer-Key: i=konrad.dybcio@oss.qualcomm.com; a=ed25519; pk=iclgkYvtl2w05SSXO5EjjSYlhFKsJ+5OSZBjOkQuEms= From: Konrad Dybcio With the API in place, request the correct protocol ID with the GPI DMA to avoid having to hardcode this obvious information in the device tree. Signed-off-by: Konrad Dybcio --- drivers/i2c/busses/i2c-qcom-geni.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/i2c/busses/i2c-qcom-geni.c b/drivers/i2c/busses/i2c-qc= om-geni.c index ff2289b52c84ccf9ef786c2618bd869453c5f611..4c702ee728d6cc9282688bc278b= d401f3de3266a 100644 --- a/drivers/i2c/busses/i2c-qcom-geni.c +++ b/drivers/i2c/busses/i2c-qcom-geni.c @@ -754,14 +754,14 @@ static int setup_gpi_dma(struct geni_i2c_dev *gi2c) int ret; =20 geni_se_select_mode(&gi2c->se, GENI_GPI_DMA); - gi2c->tx_c =3D dma_request_chan(gi2c->se.dev, "tx"); + gi2c->tx_c =3D dma_request_chan_w_data(gi2c->se.dev, "tx", (void *)GENI_S= E_I2C); if (IS_ERR(gi2c->tx_c)) { ret =3D dev_err_probe(gi2c->se.dev, PTR_ERR(gi2c->tx_c), "Failed to get tx DMA ch\n"); goto err_tx; } =20 - gi2c->rx_c =3D dma_request_chan(gi2c->se.dev, "rx"); + gi2c->rx_c =3D dma_request_chan_w_data(gi2c->se.dev, "rx", (void *)GENI_S= E_I2C); if (IS_ERR(gi2c->rx_c)) { ret =3D dev_err_probe(gi2c->se.dev, PTR_ERR(gi2c->rx_c), "Failed to get rx DMA ch\n"); --=20 2.50.1 From nobody Sun Oct 5 20:03:51 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 743F726D4F9; Wed, 30 Jul 2025 09:35:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753868155; cv=none; b=nJdxWS5SHD4oTs4+93vgSAgfTCP0UQgeyoBCbxlq2j9enHy8mriFL2+Yu1cHdrNXKDpP8RJ78g80v1yait61JbziVCRa1NJtqX2lYwgTH8EGbZvuoPheKEvpD8JCaTaT6P1SQw6zBCcLMUk9KZdRB4b2u5dD5I4OKREFjgfE8V4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753868155; c=relaxed/simple; bh=N00UN43mM8ni3MxsfDldCEpbhEFJB1eKWpki3YYPYWs=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=CkBJkGlrR14QpkASWSYxGAAwqUWc2sG5efmIDG3l94Kkme5X5BZrvph5I80bK06wWFbhjLltZvfBfpPQ5nNl/DAhq++8i+YheDWjBOybZ8rzktoQCW3WyKozr5im6i+BD9N00+bycixhhbC680zmLHSwxPO0O6juyxNM6EWW488= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=noqZGFAg; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="noqZGFAg" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 7CE23C4CEF5; Wed, 30 Jul 2025 09:35:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1753868155; bh=N00UN43mM8ni3MxsfDldCEpbhEFJB1eKWpki3YYPYWs=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=noqZGFAgIK4mo6I1FeATvcM2ik9vQma41t4JUvtFkKPX2Zyetn8mtfxVbZd45yE/l U1Y7mJtuU7SJ7CnstPsB9K/3qhjUv1e7CgSaHl0J3j/ea3QCIEAkIqNTLELSBwDe8I skZfM0x2hjLgrbULs/BH/jFJJPXLUcH/woib6J09xkCPOzz4f3nW4fUwsJqGElA1rN C7eOoveWThhAUrn9GaIC+eUJQKFKxUe8xiu3UMeUP8xalqL+GLbOclrk1AaQgpePos AeZ3QIghSLLNWwhAzXVCWOcVbFBTZ5AqTwazkUJgoNOyvosM2ZHoaMGIraYa5LXHU2 S5rwqKIyuCchA== From: Konrad Dybcio Date: Wed, 30 Jul 2025 11:33:32 +0200 Subject: [PATCH RFC 5/6] spi: geni-qcom: Hint GENI protocol ID to GPI DMA Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250730-topic-dma_genise_cookie-v1-5-b505c1238f9f@oss.qualcomm.com> References: <20250730-topic-dma_genise_cookie-v1-0-b505c1238f9f@oss.qualcomm.com> In-Reply-To: <20250730-topic-dma_genise_cookie-v1-0-b505c1238f9f@oss.qualcomm.com> To: Vinod Koul , Sven Peter , Janne Grunau , Alyssa Rosenzweig , Neal Gompa , Ludovic Desroches , Florian Fainelli , Broadcom internal kernel review list , Ray Jui , Scott Branden , Paul Cercueil , Eugeniy Paltsev , Viresh Kumar , Andy Shevchenko , Frank Li , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Taichi Sugaya , Takao Orito , =?utf-8?q?Andreas_F=C3=A4rber?= , Manivannan Sadhasivam , Daniel Mack , Haojian Zhuang , Robert Jarzmik , Geert Uytterhoeven , Magnus Damm , Patrice Chotard , Linus Walleij , =?utf-8?q?Am=C3=A9lie_Delaunay?= , Maxime Coquelin , Alexandre Torgue , Chen-Yu Tsai , Jernej Skrabec , Samuel Holland , Laxman Dewangan , Jon Hunter , Thierry Reding , Peter Ujfalusi , Kunihiko Hayashi , Masami Hiramatsu , Michal Simek , Laurent Pinchart , Rob Herring , Saravana Kannan , =?utf-8?q?Martin_Povi=C5=A1er?= , Liam Girdwood , Mark Brown , Jaroslav Kysela , Takashi Iwai , Kuninori Morimoto , Mukesh Kumar Savaliya , Viken Dadhaniya , Andi Shyti , Krzysztof Kozlowski , Conor Dooley , Bjorn Andersson , Konrad Dybcio Cc: Marijn Suijten , dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org, asahi@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-rpi-kernel@lists.infradead.org, linux-mips@vger.kernel.org, imx@lists.linux.dev, linux-actions@lists.infradead.org, linux-arm-msm@vger.kernel.org, linux-renesas-soc@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, linux-sunxi@lists.linux.dev, linux-tegra@vger.kernel.org, devicetree@vger.kernel.org, linux-sound@vger.kernel.org, linux-i2c@vger.kernel.org, linux-spi@vger.kernel.org, Konrad Dybcio X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1753868049; l=1173; i=konrad.dybcio@oss.qualcomm.com; s=20230215; h=from:subject:message-id; bh=3qGrKkb0vUuJZdQ+qYHRcWxsslKGyEP5yydY522z8YA=; b=aICFJMG7AM48jTVVIFcvL8HDUChGXUjvlcmEfMfL9VNkZkzvMxo+3E1Pz4CGquWLPcm5h3n8G X5nW37uxlajC9Yv3uV+k462eLSjMMB00KSWeicS1u5fh7SmWNRlnhIs X-Developer-Key: i=konrad.dybcio@oss.qualcomm.com; a=ed25519; pk=iclgkYvtl2w05SSXO5EjjSYlhFKsJ+5OSZBjOkQuEms= From: Konrad Dybcio With the API in place, request the correct protocol ID with the GPI DMA to avoid having to hardcode this obvious information in the device tree. Signed-off-by: Konrad Dybcio Acked-by: Mark Brown --- drivers/spi/spi-geni-qcom.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/spi/spi-geni-qcom.c b/drivers/spi/spi-geni-qcom.c index 768d7482102adec9b7178077724dc3976a2760c8..0ea157ac06e12012e1a36218bf3= a4058a9db6048 100644 --- a/drivers/spi/spi-geni-qcom.c +++ b/drivers/spi/spi-geni-qcom.c @@ -623,14 +623,14 @@ static int spi_geni_grab_gpi_chan(struct spi_geni_mas= ter *mas) { int ret; =20 - mas->tx =3D dma_request_chan(mas->dev, "tx"); + mas->tx =3D dma_request_chan_w_data(mas->dev, "tx", (void *)GENI_SE_SPI); if (IS_ERR(mas->tx)) { ret =3D dev_err_probe(mas->dev, PTR_ERR(mas->tx), "Failed to get tx DMA ch\n"); goto err_tx; } =20 - mas->rx =3D dma_request_chan(mas->dev, "rx"); + mas->rx =3D dma_request_chan_w_data(mas->dev, "rx", (void *)GENI_SE_SPI); if (IS_ERR(mas->rx)) { ret =3D dev_err_probe(mas->dev, PTR_ERR(mas->rx), "Failed to get rx DMA ch\n"); --=20 2.50.1 From nobody Sun Oct 5 20:03:51 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DE700275861; Wed, 30 Jul 2025 09:36:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753868173; cv=none; b=Eeulju9TaBm6ehnI4VhPHCCWyUwf1ryjX5dZqaunseb1B/HdIFb0JjZyuGTCrwiirLhtjzIFBxP8AqUJdR7qIoulATlCr7YJzxBo3zmLVYCkHAxMkyNa6sXV64Lh8oRaAJ7cgcsFtsDAobibWAiTqPZ2zRwSRzdc//IJULBhAOM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753868173; c=relaxed/simple; bh=U7eQoDwMZXfDwuwVea0w+jYJ1TMWNsXv/5d12PtqCK4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=ubiH8ej7ul88+8CzDevhwZXDjOnzPYcv4m8+6+11+9TM3fo36D2cQe2GMX6LdVm+rKbaW3BGTKImsieJh668T8yRiwZFdc5BUkxDFMHn10Gwq8u3fuN8kbdY+3diuqzMbY8CJxG5Jc33kYhJMIYDu2jS8WHxqlIssakksdoK5HU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=P3Cze1Sx; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="P3Cze1Sx" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 77134C4CEFB; Wed, 30 Jul 2025 09:35:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1753868172; bh=U7eQoDwMZXfDwuwVea0w+jYJ1TMWNsXv/5d12PtqCK4=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=P3Cze1SxwkLKbJLG1vfxsWJMSu7uughnp8h8z/jfcLSusC7y2lNnWpwXYSYKof/RI pgw5X2hvPr3vpshyjAg/8KUszmUzrSDqQyU2nzBL0pa8fd1NyQmM2vLnJDW0aiL+6+ bGecyZDOoFtJ2sP0ZoYIV2SZYn5HV1MGiLAdUvBFgrO4m5dcRjK613/Cw+nWCimvDx FL44Q4jW691/RrI0rcDoXytLvMAiIpuARGWDUePZM4GKk2w3vu0gZLKGX4ko774PIW AhQJCP+JzuaiFfueMW+88Y5kZM0abgIUeY26ug1ZfW+RCf6O8hXTEnChataQmCOT3F UHPFgP1QhJTmg== From: Konrad Dybcio Date: Wed, 30 Jul 2025 11:33:33 +0200 Subject: [PATCH RFC 6/6] arm64: dts: qcom: x1e80100: Remove GENI protocol ID from DMA cells Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250730-topic-dma_genise_cookie-v1-6-b505c1238f9f@oss.qualcomm.com> References: <20250730-topic-dma_genise_cookie-v1-0-b505c1238f9f@oss.qualcomm.com> In-Reply-To: <20250730-topic-dma_genise_cookie-v1-0-b505c1238f9f@oss.qualcomm.com> To: Vinod Koul , Sven Peter , Janne Grunau , Alyssa Rosenzweig , Neal Gompa , Ludovic Desroches , Florian Fainelli , Broadcom internal kernel review list , Ray Jui , Scott Branden , Paul Cercueil , Eugeniy Paltsev , Viresh Kumar , Andy Shevchenko , Frank Li , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Taichi Sugaya , Takao Orito , =?utf-8?q?Andreas_F=C3=A4rber?= , Manivannan Sadhasivam , Daniel Mack , Haojian Zhuang , Robert Jarzmik , Geert Uytterhoeven , Magnus Damm , Patrice Chotard , Linus Walleij , =?utf-8?q?Am=C3=A9lie_Delaunay?= , Maxime Coquelin , Alexandre Torgue , Chen-Yu Tsai , Jernej Skrabec , Samuel Holland , Laxman Dewangan , Jon Hunter , Thierry Reding , Peter Ujfalusi , Kunihiko Hayashi , Masami Hiramatsu , Michal Simek , Laurent Pinchart , Rob Herring , Saravana Kannan , =?utf-8?q?Martin_Povi=C5=A1er?= , Liam Girdwood , Mark Brown , Jaroslav Kysela , Takashi Iwai , Kuninori Morimoto , Mukesh Kumar Savaliya , Viken Dadhaniya , Andi Shyti , Krzysztof Kozlowski , Conor Dooley , Bjorn Andersson , Konrad Dybcio Cc: Marijn Suijten , dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org, asahi@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-rpi-kernel@lists.infradead.org, linux-mips@vger.kernel.org, imx@lists.linux.dev, linux-actions@lists.infradead.org, linux-arm-msm@vger.kernel.org, linux-renesas-soc@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, linux-sunxi@lists.linux.dev, linux-tegra@vger.kernel.org, devicetree@vger.kernel.org, linux-sound@vger.kernel.org, linux-i2c@vger.kernel.org, linux-spi@vger.kernel.org, Konrad Dybcio X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1753868049; l=18562; i=konrad.dybcio@oss.qualcomm.com; s=20230215; h=from:subject:message-id; bh=eDOVFQ3sSBau28xDU0M0uPPUVN4g8jr8B0d8rvg5egs=; b=xH4jh5rJF8B145J7w0kFZHTYYTom25yvk5j1qw11KTCOGB0+ZcbC18dRuZ105iOgHDfhfDxBn cEAuRlJPY88DvQulmsLTFg0yEf8bqDuTx1ByVsle1gQfPH4q1Ggpi4H X-Developer-Key: i=konrad.dybcio@oss.qualcomm.com; a=ed25519; pk=iclgkYvtl2w05SSXO5EjjSYlhFKsJ+5OSZBjOkQuEms= From: Konrad Dybcio In preparation for coalescing the duplicate nodes referring to the same GENI serial engines running different protocol firmware, remove the no longer necessary protocol IDs from each of the GPI DMA consumers. Signed-off-by: Konrad Dybcio --- arch/arm64/boot/dts/qcom/x1e80100.dtsi | 198 ++++++++++++++++-------------= ---- 1 file changed, 99 insertions(+), 99 deletions(-) diff --git a/arch/arm64/boot/dts/qcom/x1e80100.dtsi b/arch/arm64/boot/dts/q= com/x1e80100.dtsi index 5e9a8fa3cf96468b12775f91192cbd779d5ce946..0dc055c9660501f3e5e3ba87e15= 60125eba67730 100644 --- a/arch/arm64/boot/dts/qcom/x1e80100.dtsi +++ b/arch/arm64/boot/dts/qcom/x1e80100.dtsi @@ -844,7 +844,7 @@ gpi_dma2: dma-controller@800000 { =20 dma-channels =3D <12>; dma-channel-mask =3D <0x3e>; - #dma-cells =3D <3>; + #dma-cells =3D <2>; =20 iommus =3D <&apps_smmu 0x436 0x0>; =20 @@ -890,8 +890,8 @@ &config_noc SLAVE_QUP_2 QCOM_ICC_TAG_ACTIVE_ONLY>, power-domains =3D <&rpmhpd RPMHPD_CX>; required-opps =3D <&rpmhpd_opp_low_svs>; =20 - dmas =3D <&gpi_dma2 0 0 QCOM_GPI_I2C>, - <&gpi_dma2 1 0 QCOM_GPI_I2C>; + dmas =3D <&gpi_dma2 0 0>, + <&gpi_dma2 1 0>; dma-names =3D "tx", "rx"; =20 @@ -926,8 +926,8 @@ &config_noc SLAVE_QUP_2 QCOM_ICC_TAG_ACTIVE_ONLY>, power-domains =3D <&rpmhpd RPMHPD_CX>; operating-points-v2 =3D <&qup_opp_table_120mhz>; =20 - dmas =3D <&gpi_dma2 0 0 QCOM_GPI_SPI>, - <&gpi_dma2 1 0 QCOM_GPI_SPI>; + dmas =3D <&gpi_dma2 0 0>, + <&gpi_dma2 1 0>; dma-names =3D "tx", "rx"; =20 @@ -962,8 +962,8 @@ &config_noc SLAVE_QUP_2 QCOM_ICC_TAG_ACTIVE_ONLY>, power-domains =3D <&rpmhpd RPMHPD_CX>; required-opps =3D <&rpmhpd_opp_low_svs>; =20 - dmas =3D <&gpi_dma2 0 1 QCOM_GPI_I2C>, - <&gpi_dma2 1 1 QCOM_GPI_I2C>; + dmas =3D <&gpi_dma2 0 1>, + <&gpi_dma2 1 1>; dma-names =3D "tx", "rx"; =20 @@ -998,8 +998,8 @@ &config_noc SLAVE_QUP_2 QCOM_ICC_TAG_ACTIVE_ONLY>, power-domains =3D <&rpmhpd RPMHPD_CX>; operating-points-v2 =3D <&qup_opp_table_120mhz>; =20 - dmas =3D <&gpi_dma2 0 1 QCOM_GPI_SPI>, - <&gpi_dma2 1 1 QCOM_GPI_SPI>; + dmas =3D <&gpi_dma2 0 1>, + <&gpi_dma2 1 1>; dma-names =3D "tx", "rx"; =20 @@ -1034,8 +1034,8 @@ &config_noc SLAVE_QUP_2 QCOM_ICC_TAG_ACTIVE_ONLY>, power-domains =3D <&rpmhpd RPMHPD_CX>; required-opps =3D <&rpmhpd_opp_low_svs>; =20 - dmas =3D <&gpi_dma2 0 2 QCOM_GPI_I2C>, - <&gpi_dma2 1 2 QCOM_GPI_I2C>; + dmas =3D <&gpi_dma2 0 2>, + <&gpi_dma2 1 2>; dma-names =3D "tx", "rx"; =20 @@ -1070,8 +1070,8 @@ &config_noc SLAVE_QUP_2 QCOM_ICC_TAG_ACTIVE_ONLY>, power-domains =3D <&rpmhpd RPMHPD_CX>; operating-points-v2 =3D <&qup_opp_table_100mhz>; =20 - dmas =3D <&gpi_dma2 0 2 QCOM_GPI_SPI>, - <&gpi_dma2 1 2 QCOM_GPI_SPI>; + dmas =3D <&gpi_dma2 0 2>, + <&gpi_dma2 1 2>; dma-names =3D "tx", "rx"; =20 @@ -1106,8 +1106,8 @@ &config_noc SLAVE_QUP_2 QCOM_ICC_TAG_ACTIVE_ONLY>, power-domains =3D <&rpmhpd RPMHPD_CX>; required-opps =3D <&rpmhpd_opp_low_svs>; =20 - dmas =3D <&gpi_dma2 0 3 QCOM_GPI_I2C>, - <&gpi_dma2 1 3 QCOM_GPI_I2C>; + dmas =3D <&gpi_dma2 0 3>, + <&gpi_dma2 1 3>; dma-names =3D "tx", "rx"; =20 @@ -1142,8 +1142,8 @@ &config_noc SLAVE_QUP_2 QCOM_ICC_TAG_ACTIVE_ONLY>, power-domains =3D <&rpmhpd RPMHPD_CX>; operating-points-v2 =3D <&qup_opp_table_100mhz>; =20 - dmas =3D <&gpi_dma2 0 3 QCOM_GPI_SPI>, - <&gpi_dma2 1 3 QCOM_GPI_SPI>; + dmas =3D <&gpi_dma2 0 3>, + <&gpi_dma2 1 3>; dma-names =3D "tx", "rx"; =20 @@ -1178,8 +1178,8 @@ &config_noc SLAVE_QUP_2 QCOM_ICC_TAG_ACTIVE_ONLY>, power-domains =3D <&rpmhpd RPMHPD_CX>; required-opps =3D <&rpmhpd_opp_low_svs>; =20 - dmas =3D <&gpi_dma2 0 4 QCOM_GPI_I2C>, - <&gpi_dma2 1 4 QCOM_GPI_I2C>; + dmas =3D <&gpi_dma2 0 4>, + <&gpi_dma2 1 4>; dma-names =3D "tx", "rx"; =20 @@ -1214,8 +1214,8 @@ &config_noc SLAVE_QUP_2 QCOM_ICC_TAG_ACTIVE_ONLY>, power-domains =3D <&rpmhpd RPMHPD_CX>; operating-points-v2 =3D <&qup_opp_table_100mhz>; =20 - dmas =3D <&gpi_dma2 0 4 QCOM_GPI_SPI>, - <&gpi_dma2 1 4 QCOM_GPI_SPI>; + dmas =3D <&gpi_dma2 0 4>, + <&gpi_dma2 1 4>; dma-names =3D "tx", "rx"; =20 @@ -1250,8 +1250,8 @@ &config_noc SLAVE_QUP_2 QCOM_ICC_TAG_ACTIVE_ONLY>, power-domains =3D <&rpmhpd RPMHPD_CX>; required-opps =3D <&rpmhpd_opp_low_svs>; =20 - dmas =3D <&gpi_dma2 0 5 QCOM_GPI_I2C>, - <&gpi_dma2 1 5 QCOM_GPI_I2C>; + dmas =3D <&gpi_dma2 0 5>, + <&gpi_dma2 1 5>; dma-names =3D "tx", "rx"; =20 @@ -1286,8 +1286,8 @@ &config_noc SLAVE_QUP_2 QCOM_ICC_TAG_ACTIVE_ONLY>, power-domains =3D <&rpmhpd RPMHPD_CX>; operating-points-v2 =3D <&qup_opp_table_100mhz>; =20 - dmas =3D <&gpi_dma2 0 5 QCOM_GPI_SPI>, - <&gpi_dma2 1 5 QCOM_GPI_SPI>; + dmas =3D <&gpi_dma2 0 5>, + <&gpi_dma2 1 5>; dma-names =3D "tx", "rx"; =20 @@ -1347,8 +1347,8 @@ &config_noc SLAVE_QUP_2 QCOM_ICC_TAG_ACTIVE_ONLY>, power-domains =3D <&rpmhpd RPMHPD_CX>; required-opps =3D <&rpmhpd_opp_low_svs>; =20 - dmas =3D <&gpi_dma2 0 6 QCOM_GPI_I2C>, - <&gpi_dma2 1 6 QCOM_GPI_I2C>; + dmas =3D <&gpi_dma2 0 6>, + <&gpi_dma2 1 6>; dma-names =3D "tx", "rx"; =20 @@ -1383,8 +1383,8 @@ &config_noc SLAVE_QUP_2 QCOM_ICC_TAG_ACTIVE_ONLY>, power-domains =3D <&rpmhpd RPMHPD_CX>; operating-points-v2 =3D <&qup_opp_table_100mhz>; =20 - dmas =3D <&gpi_dma2 0 6 QCOM_GPI_SPI>, - <&gpi_dma2 1 6 QCOM_GPI_SPI>; + dmas =3D <&gpi_dma2 0 6>, + <&gpi_dma2 1 6>; dma-names =3D "tx", "rx"; =20 @@ -1419,8 +1419,8 @@ &config_noc SLAVE_QUP_2 QCOM_ICC_TAG_ACTIVE_ONLY>, power-domains =3D <&rpmhpd RPMHPD_CX>; required-opps =3D <&rpmhpd_opp_low_svs>; =20 - dmas =3D <&gpi_dma2 0 7 QCOM_GPI_I2C>, - <&gpi_dma2 1 7 QCOM_GPI_I2C>; + dmas =3D <&gpi_dma2 0 7>, + <&gpi_dma2 1 7>; dma-names =3D "tx", "rx"; =20 @@ -1455,8 +1455,8 @@ &config_noc SLAVE_QUP_2 QCOM_ICC_TAG_ACTIVE_ONLY>, power-domains =3D <&rpmhpd RPMHPD_CX>; operating-points-v2 =3D <&qup_opp_table_100mhz>; =20 - dmas =3D <&gpi_dma2 0 7 QCOM_GPI_SPI>, - <&gpi_dma2 1 7 QCOM_GPI_SPI>; + dmas =3D <&gpi_dma2 0 7>, + <&gpi_dma2 1 7>; dma-names =3D "tx", "rx"; =20 @@ -1489,7 +1489,7 @@ gpi_dma1: dma-controller@a00000 { =20 dma-channels =3D <12>; dma-channel-mask =3D <0x3e>; - #dma-cells =3D <3>; + #dma-cells =3D <2>; =20 iommus =3D <&apps_smmu 0x136 0x0>; =20 @@ -1535,8 +1535,8 @@ &config_noc SLAVE_QUP_1 QCOM_ICC_TAG_ACTIVE_ONLY>, power-domains =3D <&rpmhpd RPMHPD_CX>; required-opps =3D <&rpmhpd_opp_low_svs>; =20 - dmas =3D <&gpi_dma1 0 0 QCOM_GPI_I2C>, - <&gpi_dma1 1 0 QCOM_GPI_I2C>; + dmas =3D <&gpi_dma1 0 0>, + <&gpi_dma1 1 0>; dma-names =3D "tx", "rx"; =20 @@ -1571,8 +1571,8 @@ &config_noc SLAVE_QUP_1 QCOM_ICC_TAG_ACTIVE_ONLY>, power-domains =3D <&rpmhpd RPMHPD_CX>; operating-points-v2 =3D <&qup_opp_table_120mhz>; =20 - dmas =3D <&gpi_dma1 0 0 QCOM_GPI_SPI>, - <&gpi_dma1 1 0 QCOM_GPI_SPI>; + dmas =3D <&gpi_dma1 0 0>, + <&gpi_dma1 1 0>; dma-names =3D "tx", "rx"; =20 @@ -1607,8 +1607,8 @@ &config_noc SLAVE_QUP_1 QCOM_ICC_TAG_ACTIVE_ONLY>, power-domains =3D <&rpmhpd RPMHPD_CX>; required-opps =3D <&rpmhpd_opp_low_svs>; =20 - dmas =3D <&gpi_dma1 0 1 QCOM_GPI_I2C>, - <&gpi_dma1 1 1 QCOM_GPI_I2C>; + dmas =3D <&gpi_dma1 0 1>, + <&gpi_dma1 1 1>; dma-names =3D "tx", "rx"; =20 @@ -1643,8 +1643,8 @@ &config_noc SLAVE_QUP_1 QCOM_ICC_TAG_ACTIVE_ONLY>, power-domains =3D <&rpmhpd RPMHPD_CX>; operating-points-v2 =3D <&qup_opp_table_120mhz>; =20 - dmas =3D <&gpi_dma1 0 1 QCOM_GPI_SPI>, - <&gpi_dma1 1 1 QCOM_GPI_SPI>; + dmas =3D <&gpi_dma1 0 1>, + <&gpi_dma1 1 1>; dma-names =3D "tx", "rx"; =20 @@ -1679,8 +1679,8 @@ &config_noc SLAVE_QUP_1 QCOM_ICC_TAG_ACTIVE_ONLY>, power-domains =3D <&rpmhpd RPMHPD_CX>; required-opps =3D <&rpmhpd_opp_low_svs>; =20 - dmas =3D <&gpi_dma1 0 2 QCOM_GPI_I2C>, - <&gpi_dma1 1 2 QCOM_GPI_I2C>; + dmas =3D <&gpi_dma1 0 2>, + <&gpi_dma1 1 2>; dma-names =3D "tx", "rx"; =20 @@ -1715,8 +1715,8 @@ &config_noc SLAVE_QUP_1 QCOM_ICC_TAG_ACTIVE_ONLY>, power-domains =3D <&rpmhpd RPMHPD_CX>; operating-points-v2 =3D <&qup_opp_table_100mhz>; =20 - dmas =3D <&gpi_dma1 0 2 QCOM_GPI_SPI>, - <&gpi_dma1 1 2 QCOM_GPI_SPI>; + dmas =3D <&gpi_dma1 0 2>, + <&gpi_dma1 1 2>; dma-names =3D "tx", "rx"; =20 @@ -1751,8 +1751,8 @@ &config_noc SLAVE_QUP_1 QCOM_ICC_TAG_ACTIVE_ONLY>, power-domains =3D <&rpmhpd RPMHPD_CX>; required-opps =3D <&rpmhpd_opp_low_svs>; =20 - dmas =3D <&gpi_dma1 0 3 QCOM_GPI_I2C>, - <&gpi_dma1 1 3 QCOM_GPI_I2C>; + dmas =3D <&gpi_dma1 0 3>, + <&gpi_dma1 1 3>; dma-names =3D "tx", "rx"; =20 @@ -1787,8 +1787,8 @@ &config_noc SLAVE_QUP_1 QCOM_ICC_TAG_ACTIVE_ONLY>, power-domains =3D <&rpmhpd RPMHPD_CX>; operating-points-v2 =3D <&qup_opp_table_100mhz>; =20 - dmas =3D <&gpi_dma1 0 3 QCOM_GPI_SPI>, - <&gpi_dma1 1 3 QCOM_GPI_SPI>; + dmas =3D <&gpi_dma1 0 3>, + <&gpi_dma1 1 3>; dma-names =3D "tx", "rx"; =20 @@ -1823,8 +1823,8 @@ &config_noc SLAVE_QUP_1 QCOM_ICC_TAG_ACTIVE_ONLY>, power-domains =3D <&rpmhpd RPMHPD_CX>; required-opps =3D <&rpmhpd_opp_low_svs>; =20 - dmas =3D <&gpi_dma1 0 4 QCOM_GPI_I2C>, - <&gpi_dma1 1 4 QCOM_GPI_I2C>; + dmas =3D <&gpi_dma1 0 4>, + <&gpi_dma1 1 4>; dma-names =3D "tx", "rx"; =20 @@ -1859,8 +1859,8 @@ &config_noc SLAVE_QUP_1 QCOM_ICC_TAG_ACTIVE_ONLY>, power-domains =3D <&rpmhpd RPMHPD_CX>; operating-points-v2 =3D <&qup_opp_table_100mhz>; =20 - dmas =3D <&gpi_dma1 0 4 QCOM_GPI_SPI>, - <&gpi_dma1 1 4 QCOM_GPI_SPI>; + dmas =3D <&gpi_dma1 0 4>, + <&gpi_dma1 1 4>; dma-names =3D "tx", "rx"; =20 @@ -1895,8 +1895,8 @@ &config_noc SLAVE_QUP_1 QCOM_ICC_TAG_ACTIVE_ONLY>, power-domains =3D <&rpmhpd RPMHPD_CX>; required-opps =3D <&rpmhpd_opp_low_svs>; =20 - dmas =3D <&gpi_dma1 0 5 QCOM_GPI_I2C>, - <&gpi_dma1 1 5 QCOM_GPI_I2C>; + dmas =3D <&gpi_dma1 0 5>, + <&gpi_dma1 1 5>; dma-names =3D "tx", "rx"; =20 @@ -1931,8 +1931,8 @@ &config_noc SLAVE_QUP_1 QCOM_ICC_TAG_ACTIVE_ONLY>, power-domains =3D <&rpmhpd RPMHPD_CX>; operating-points-v2 =3D <&qup_opp_table_100mhz>; =20 - dmas =3D <&gpi_dma1 0 5 QCOM_GPI_SPI>, - <&gpi_dma1 1 5 QCOM_GPI_SPI>; + dmas =3D <&gpi_dma1 0 5>, + <&gpi_dma1 1 5>; dma-names =3D "tx", "rx"; =20 @@ -1967,8 +1967,8 @@ &config_noc SLAVE_QUP_1 QCOM_ICC_TAG_ACTIVE_ONLY>, power-domains =3D <&rpmhpd RPMHPD_CX>; required-opps =3D <&rpmhpd_opp_low_svs>; =20 - dmas =3D <&gpi_dma1 0 6 QCOM_GPI_I2C>, - <&gpi_dma1 1 6 QCOM_GPI_I2C>; + dmas =3D <&gpi_dma1 0 6>, + <&gpi_dma1 1 6>; dma-names =3D "tx", "rx"; =20 @@ -2003,8 +2003,8 @@ &config_noc SLAVE_QUP_1 QCOM_ICC_TAG_ACTIVE_ONLY>, power-domains =3D <&rpmhpd RPMHPD_CX>; operating-points-v2 =3D <&qup_opp_table_100mhz>; =20 - dmas =3D <&gpi_dma1 0 6 QCOM_GPI_SPI>, - <&gpi_dma1 1 6 QCOM_GPI_SPI>; + dmas =3D <&gpi_dma1 0 6>, + <&gpi_dma1 1 6>; dma-names =3D "tx", "rx"; =20 @@ -2064,8 +2064,8 @@ &config_noc SLAVE_QUP_1 QCOM_ICC_TAG_ACTIVE_ONLY>, power-domains =3D <&rpmhpd RPMHPD_CX>; required-opps =3D <&rpmhpd_opp_low_svs>; =20 - dmas =3D <&gpi_dma1 0 7 QCOM_GPI_I2C>, - <&gpi_dma1 1 7 QCOM_GPI_I2C>; + dmas =3D <&gpi_dma1 0 7>, + <&gpi_dma1 1 7>; dma-names =3D "tx", "rx"; =20 @@ -2100,8 +2100,8 @@ &config_noc SLAVE_QUP_1 QCOM_ICC_TAG_ACTIVE_ONLY>, power-domains =3D <&rpmhpd RPMHPD_CX>; operating-points-v2 =3D <&qup_opp_table_100mhz>; =20 - dmas =3D <&gpi_dma1 0 7 QCOM_GPI_SPI>, - <&gpi_dma1 1 7 QCOM_GPI_SPI>; + dmas =3D <&gpi_dma1 0 7>, + <&gpi_dma1 1 7>; dma-names =3D "tx", "rx"; =20 @@ -2134,7 +2134,7 @@ gpi_dma0: dma-controller@b00000 { =20 dma-channels =3D <12>; dma-channel-mask =3D <0x3e>; - #dma-cells =3D <3>; + #dma-cells =3D <2>; =20 iommus =3D <&apps_smmu 0x456 0x0>; =20 @@ -2179,8 +2179,8 @@ &config_noc SLAVE_QUP_0 QCOM_ICC_TAG_ACTIVE_ONLY>, power-domains =3D <&rpmhpd RPMHPD_CX>; required-opps =3D <&rpmhpd_opp_low_svs>; =20 - dmas =3D <&gpi_dma0 0 0 QCOM_GPI_I2C>, - <&gpi_dma0 1 0 QCOM_GPI_I2C>; + dmas =3D <&gpi_dma0 0 0>, + <&gpi_dma0 1 0>; dma-names =3D "tx", "rx"; =20 @@ -2215,8 +2215,8 @@ &config_noc SLAVE_QUP_0 QCOM_ICC_TAG_ACTIVE_ONLY>, power-domains =3D <&rpmhpd RPMHPD_CX>; operating-points-v2 =3D <&qup_opp_table_120mhz>; =20 - dmas =3D <&gpi_dma0 0 0 QCOM_GPI_SPI>, - <&gpi_dma0 1 0 QCOM_GPI_SPI>; + dmas =3D <&gpi_dma0 0 0>, + <&gpi_dma0 1 0>; dma-names =3D "tx", "rx"; =20 @@ -2251,8 +2251,8 @@ &config_noc SLAVE_QUP_0 QCOM_ICC_TAG_ACTIVE_ONLY>, power-domains =3D <&rpmhpd RPMHPD_CX>; required-opps =3D <&rpmhpd_opp_low_svs>; =20 - dmas =3D <&gpi_dma0 0 1 QCOM_GPI_I2C>, - <&gpi_dma0 1 1 QCOM_GPI_I2C>; + dmas =3D <&gpi_dma0 0 1>, + <&gpi_dma0 1 1>; dma-names =3D "tx", "rx"; =20 @@ -2287,8 +2287,8 @@ &config_noc SLAVE_QUP_0 QCOM_ICC_TAG_ACTIVE_ONLY>, power-domains =3D <&rpmhpd RPMHPD_CX>; operating-points-v2 =3D <&qup_opp_table_120mhz>; =20 - dmas =3D <&gpi_dma0 0 1 QCOM_GPI_SPI>, - <&gpi_dma0 1 1 QCOM_GPI_SPI>; + dmas =3D <&gpi_dma0 0 1>, + <&gpi_dma0 1 1>; dma-names =3D "tx", "rx"; =20 @@ -2323,8 +2323,8 @@ &config_noc SLAVE_QUP_0 QCOM_ICC_TAG_ACTIVE_ONLY>, power-domains =3D <&rpmhpd RPMHPD_CX>; required-opps =3D <&rpmhpd_opp_low_svs>; =20 - dmas =3D <&gpi_dma0 0 2 QCOM_GPI_I2C>, - <&gpi_dma0 1 2 QCOM_GPI_I2C>; + dmas =3D <&gpi_dma0 0 2>, + <&gpi_dma0 1 2>; dma-names =3D "tx", "rx"; =20 @@ -2384,8 +2384,8 @@ &config_noc SLAVE_QUP_0 QCOM_ICC_TAG_ACTIVE_ONLY>, power-domains =3D <&rpmhpd RPMHPD_CX>; operating-points-v2 =3D <&qup_opp_table_100mhz>; =20 - dmas =3D <&gpi_dma0 0 2 QCOM_GPI_SPI>, - <&gpi_dma0 1 2 QCOM_GPI_SPI>; + dmas =3D <&gpi_dma0 0 2>, + <&gpi_dma0 1 2>; dma-names =3D "tx", "rx"; =20 @@ -2420,8 +2420,8 @@ &config_noc SLAVE_QUP_0 QCOM_ICC_TAG_ACTIVE_ONLY>, power-domains =3D <&rpmhpd RPMHPD_CX>; required-opps =3D <&rpmhpd_opp_low_svs>; =20 - dmas =3D <&gpi_dma0 0 3 QCOM_GPI_I2C>, - <&gpi_dma0 1 3 QCOM_GPI_I2C>; + dmas =3D <&gpi_dma0 0 3>, + <&gpi_dma0 1 3>; dma-names =3D "tx", "rx"; =20 @@ -2456,8 +2456,8 @@ &config_noc SLAVE_QUP_0 QCOM_ICC_TAG_ACTIVE_ONLY>, power-domains =3D <&rpmhpd RPMHPD_CX>; operating-points-v2 =3D <&qup_opp_table_100mhz>; =20 - dmas =3D <&gpi_dma0 0 3 QCOM_GPI_SPI>, - <&gpi_dma0 1 3 QCOM_GPI_SPI>; + dmas =3D <&gpi_dma0 0 3>, + <&gpi_dma0 1 3>; dma-names =3D "tx", "rx"; =20 @@ -2492,8 +2492,8 @@ &config_noc SLAVE_QUP_0 QCOM_ICC_TAG_ACTIVE_ONLY>, power-domains =3D <&rpmhpd RPMHPD_CX>; required-opps =3D <&rpmhpd_opp_low_svs>; =20 - dmas =3D <&gpi_dma0 0 4 QCOM_GPI_I2C>, - <&gpi_dma0 1 4 QCOM_GPI_I2C>; + dmas =3D <&gpi_dma0 0 4>, + <&gpi_dma0 1 4>; dma-names =3D "tx", "rx"; =20 @@ -2528,8 +2528,8 @@ &config_noc SLAVE_QUP_0 QCOM_ICC_TAG_ACTIVE_ONLY>, power-domains =3D <&rpmhpd RPMHPD_CX>; operating-points-v2 =3D <&qup_opp_table_100mhz>; =20 - dmas =3D <&gpi_dma0 0 4 QCOM_GPI_SPI>, - <&gpi_dma0 1 4 QCOM_GPI_SPI>; + dmas =3D <&gpi_dma0 0 4>, + <&gpi_dma0 1 4>; dma-names =3D "tx", "rx"; =20 @@ -2564,8 +2564,8 @@ &config_noc SLAVE_QUP_0 QCOM_ICC_TAG_ACTIVE_ONLY>, power-domains =3D <&rpmhpd RPMHPD_CX>; required-opps =3D <&rpmhpd_opp_low_svs>; =20 - dmas =3D <&gpi_dma0 0 5 QCOM_GPI_I2C>, - <&gpi_dma0 1 5 QCOM_GPI_I2C>; + dmas =3D <&gpi_dma0 0 5>, + <&gpi_dma0 1 5>; dma-names =3D "tx", "rx"; =20 @@ -2600,8 +2600,8 @@ &config_noc SLAVE_QUP_0 QCOM_ICC_TAG_ACTIVE_ONLY>, power-domains =3D <&rpmhpd RPMHPD_CX>; operating-points-v2 =3D <&qup_opp_table_100mhz>; =20 - dmas =3D <&gpi_dma0 0 5 QCOM_GPI_SPI>, - <&gpi_dma0 1 5 QCOM_GPI_SPI>; + dmas =3D <&gpi_dma0 0 5>, + <&gpi_dma0 1 5>; dma-names =3D "tx", "rx"; =20 @@ -2636,8 +2636,8 @@ &config_noc SLAVE_QUP_0 QCOM_ICC_TAG_ACTIVE_ONLY>, power-domains =3D <&rpmhpd RPMHPD_CX>; required-opps =3D <&rpmhpd_opp_low_svs>; =20 - dmas =3D <&gpi_dma0 0 6 QCOM_GPI_I2C>, - <&gpi_dma0 1 6 QCOM_GPI_I2C>; + dmas =3D <&gpi_dma0 0 6>, + <&gpi_dma0 1 6>; dma-names =3D "tx", "rx"; =20 @@ -2672,8 +2672,8 @@ &config_noc SLAVE_QUP_0 QCOM_ICC_TAG_ACTIVE_ONLY>, power-domains =3D <&rpmhpd RPMHPD_CX>; operating-points-v2 =3D <&qup_opp_table_100mhz>; =20 - dmas =3D <&gpi_dma0 0 6 QCOM_GPI_SPI>, - <&gpi_dma0 1 6 QCOM_GPI_SPI>; + dmas =3D <&gpi_dma0 0 6>, + <&gpi_dma0 1 6>; dma-names =3D "tx", "rx"; =20 @@ -2708,8 +2708,8 @@ &config_noc SLAVE_QUP_0 QCOM_ICC_TAG_ACTIVE_ONLY>, power-domains =3D <&rpmhpd RPMHPD_CX>; required-opps =3D <&rpmhpd_opp_low_svs>; =20 - dmas =3D <&gpi_dma0 0 7 QCOM_GPI_I2C>, - <&gpi_dma0 1 7 QCOM_GPI_I2C>; + dmas =3D <&gpi_dma0 0 7>, + <&gpi_dma0 1 7>; dma-names =3D "tx", "rx"; =20 @@ -2744,8 +2744,8 @@ &config_noc SLAVE_QUP_0 QCOM_ICC_TAG_ACTIVE_ONLY>, power-domains =3D <&rpmhpd RPMHPD_CX>; operating-points-v2 =3D <&qup_opp_table_100mhz>; =20 - dmas =3D <&gpi_dma0 0 7 QCOM_GPI_SPI>, - <&gpi_dma0 1 7 QCOM_GPI_SPI>; + dmas =3D <&gpi_dma0 0 7>, + <&gpi_dma0 1 7>; dma-names =3D "tx", "rx"; =20 --=20 2.50.1