From: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
To: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Cc: "Frank Li" <Frank.li@nxp.com>,
"Konrad Dybcio" <konradybcio@kernel.org>,
"Vinod Koul" <vkoul@kernel.org>, "Sven Peter" <sven@kernel.org>,
"Janne Grunau" <j@jannau.net>,
"Alyssa Rosenzweig" <alyssa@rosenzweig.io>,
"Neal Gompa" <neal@gompa.dev>,
"Ludovic Desroches" <ludovic.desroches@microchip.com>,
"Florian Fainelli" <florian.fainelli@broadcom.com>,
"Broadcom internal kernel review list"
<bcm-kernel-feedback-list@broadcom.com>,
"Ray Jui" <rjui@broadcom.com>,
"Scott Branden" <sbranden@broadcom.com>,
"Paul Cercueil" <paul@crapouillou.net>,
"Eugeniy Paltsev" <Eugeniy.Paltsev@synopsys.com>,
"Viresh Kumar" <vireshk@kernel.org>,
"Andy Shevchenko" <andriy.shevchenko@linux.intel.com>,
"Shawn Guo" <shawnguo@kernel.org>,
"Sascha Hauer" <s.hauer@pengutronix.de>,
"Pengutronix Kernel Team" <kernel@pengutronix.de>,
"Fabio Estevam" <festevam@gmail.com>,
"Taichi Sugaya" <sugaya.taichi@socionext.com>,
"Takao Orito" <orito.takao@socionext.com>,
"Andreas Färber" <afaerber@suse.de>,
"Manivannan Sadhasivam" <mani@kernel.org>,
"Daniel Mack" <daniel@zonque.org>,
"Haojian Zhuang" <haojian.zhuang@gmail.com>,
"Robert Jarzmik" <robert.jarzmik@free.fr>,
"Geert Uytterhoeven" <geert+renesas@glider.be>,
"Magnus Damm" <magnus.damm@gmail.com>,
"Patrice Chotard" <patrice.chotard@foss.st.com>,
"Linus Walleij" <linus.walleij@linaro.org>,
"Amélie Delaunay" <amelie.delaunay@foss.st.com>,
"Maxime Coquelin" <mcoquelin.stm32@gmail.com>,
"Alexandre Torgue" <alexandre.torgue@foss.st.com>,
"Chen-Yu Tsai" <wens@csie.org>,
"Jernej Skrabec" <jernej.skrabec@gmail.com>,
"Samuel Holland" <samuel@sholland.org>,
"Laxman Dewangan" <ldewangan@nvidia.com>,
"Jon Hunter" <jonathanh@nvidia.com>,
"Thierry Reding" <thierry.reding@gmail.com>,
"Peter Ujfalusi" <peter.ujfalusi@gmail.com>,
"Kunihiko Hayashi" <hayashi.kunihiko@socionext.com>,
"Masami Hiramatsu" <mhiramat@kernel.org>,
"Michal Simek" <michal.simek@amd.com>,
"Rob Herring" <robh@kernel.org>,
"Saravana Kannan" <saravanak@google.com>,
"Martin Povišer" <povik+lin@cutebit.org>,
"Liam Girdwood" <lgirdwood@gmail.com>,
"Mark Brown" <broonie@kernel.org>,
"Jaroslav Kysela" <perex@perex.cz>,
"Takashi Iwai" <tiwai@suse.com>,
"Kuninori Morimoto" <kuninori.morimoto.gx@renesas.com>,
"Mukesh Kumar Savaliya" <quic_msavaliy@quicinc.com>,
"Viken Dadhaniya" <quic_vdadhani@quicinc.com>,
"Andi Shyti" <andi.shyti@kernel.org>,
"Krzysztof Kozlowski" <krzk+dt@kernel.org>,
"Conor Dooley" <conor+dt@kernel.org>,
"Bjorn Andersson" <andersson@kernel.org>,
"Marijn Suijten" <marijn.suijten@somainline.org>,
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
Subject: Re: [PATCH RFC 2/6] dmaengine: Make of_dma_request_slave_channel pass a cookie to of_xlate
Date: Tue, 5 Aug 2025 16:04:58 +0200 [thread overview]
Message-ID: <96cf6022-ef69-4749-88b0-e18a07bb8427@oss.qualcomm.com> (raw)
In-Reply-To: <20250804235140.GB12087@pendragon.ideasonboard.com>
On 8/5/25 1:51 AM, Laurent Pinchart wrote:
> On Sat, Aug 02, 2025 at 02:37:54PM +0200, Konrad Dybcio wrote:
>> On 8/1/25 2:00 PM, Laurent Pinchart wrote:
>>> On Wed, Jul 30, 2025 at 02:37:54PM -0400, Frank Li wrote:
>>>> On Wed, Jul 30, 2025 at 09:04:17PM +0300, Laurent Pinchart wrote:
>>>>> On Wed, Jul 30, 2025 at 12:39:43PM -0400, Frank Li wrote:
>>>>>> On Wed, Jul 30, 2025 at 11:33:29AM +0200, Konrad Dybcio wrote:
>>>>>>> From: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
>>>>>>>
>>>>>>> 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 <konrad.dybcio@oss.qualcomm.com>
>>>>>>> ---
[...]
>> So.. do you folks want me to alter the patch in any way?
>
> I think the runtime PM issue is orthogonal to the problem this series
> addresses. It can be addressed separately.
>
> That being said, I'm not a big fan of passing a void pointer to
> .of_xlate() to carry device-specific information, in a device-specific
> format. This seems prone to mismatch between clients and DMA engines.
> .of_xlate() also seems the wrong place to do this. It would be cleaner
> if we could use another operation, such as dmaengine_slave_config() for
> instance.
Right, I noticed that the drivers in question already apparently do the
very same thing (passing data through a voidptr), inside slave_config
(via the peripheral_config/_size fields)..
But that doesn't solve the issue this series is trying to tackle, since
every DMA consumer driver passes its own structure (or NULL).
My immediate idea is to add yet another field, but that's lame. The other
immediate idea would be to put an `u8 variant` at the start of all of
these structs ("we have tagged enums at home"), but that's lame *and*
dangerous.
Ideas?
Konrad
next prev parent reply other threads:[~2025-08-05 14:05 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-07-30 9:33 [RFC PATCH 0/6] Allow DMA consumers to pass a cookie to providers' of_xlate Konrad Dybcio
2025-07-30 9:33 ` [PATCH RFC 1/6] dt-bindings: dma: qcom,gpi: Retire passing the protocol ID Konrad Dybcio
2025-07-30 23:46 ` Rob Herring
2025-08-01 11:36 ` Konrad Dybcio
2025-07-30 9:33 ` [PATCH RFC 2/6] dmaengine: Make of_dma_request_slave_channel pass a cookie to of_xlate Konrad Dybcio
2025-07-30 16:39 ` Frank Li
2025-07-30 18:04 ` Laurent Pinchart
2025-07-30 18:37 ` Frank Li
2025-08-01 12:00 ` Laurent Pinchart
2025-08-02 12:37 ` Konrad Dybcio
2025-08-04 23:51 ` Laurent Pinchart
2025-08-05 14:04 ` Konrad Dybcio [this message]
2025-07-30 9:33 ` [PATCH RFC 3/6] dmaengine: qcom: gpi: Accept protocol ID hints Konrad Dybcio
2025-07-30 11:32 ` Geert Uytterhoeven
2025-08-02 12:39 ` Konrad Dybcio
2025-08-05 22:08 ` Andy Shevchenko
2025-07-30 9:33 ` [PATCH RFC 4/6] i2c: qcom-geni: Hint GENI protocol ID to GPI DMA Konrad Dybcio
2025-07-30 9:33 ` [PATCH RFC 5/6] spi: geni-qcom: " Konrad Dybcio
2025-07-30 10:19 ` Mark Brown
2025-07-30 9:33 ` [PATCH RFC 6/6] arm64: dts: qcom: x1e80100: Remove GENI protocol ID from DMA cells Konrad Dybcio
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=96cf6022-ef69-4749-88b0-e18a07bb8427@oss.qualcomm.com \
--to=konrad.dybcio@oss.qualcomm.com \
--cc=Eugeniy.Paltsev@synopsys.com \
--cc=Frank.li@nxp.com \
--cc=afaerber@suse.de \
--cc=alexandre.torgue@foss.st.com \
--cc=alyssa@rosenzweig.io \
--cc=amelie.delaunay@foss.st.com \
--cc=andersson@kernel.org \
--cc=andi.shyti@kernel.org \
--cc=andriy.shevchenko@linux.intel.com \
--cc=asahi@lists.linux.dev \
--cc=bcm-kernel-feedback-list@broadcom.com \
--cc=broonie@kernel.org \
--cc=conor+dt@kernel.org \
--cc=daniel@zonque.org \
--cc=devicetree@vger.kernel.org \
--cc=dmaengine@vger.kernel.org \
--cc=festevam@gmail.com \
--cc=florian.fainelli@broadcom.com \
--cc=geert+renesas@glider.be \
--cc=haojian.zhuang@gmail.com \
--cc=hayashi.kunihiko@socionext.com \
--cc=imx@lists.linux.dev \
--cc=j@jannau.net \
--cc=jernej.skrabec@gmail.com \
--cc=jonathanh@nvidia.com \
--cc=kernel@pengutronix.de \
--cc=konradybcio@kernel.org \
--cc=krzk+dt@kernel.org \
--cc=kuninori.morimoto.gx@renesas.com \
--cc=laurent.pinchart@ideasonboard.com \
--cc=ldewangan@nvidia.com \
--cc=lgirdwood@gmail.com \
--cc=linus.walleij@linaro.org \
--cc=linux-actions@lists.infradead.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-i2c@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mips@vger.kernel.org \
--cc=linux-renesas-soc@vger.kernel.org \
--cc=linux-rpi-kernel@lists.infradead.org \
--cc=linux-sound@vger.kernel.org \
--cc=linux-spi@vger.kernel.org \
--cc=linux-stm32@st-md-mailman.stormreply.com \
--cc=linux-sunxi@lists.linux.dev \
--cc=linux-tegra@vger.kernel.org \
--cc=ludovic.desroches@microchip.com \
--cc=magnus.damm@gmail.com \
--cc=mani@kernel.org \
--cc=marijn.suijten@somainline.org \
--cc=mcoquelin.stm32@gmail.com \
--cc=mhiramat@kernel.org \
--cc=michal.simek@amd.com \
--cc=neal@gompa.dev \
--cc=orito.takao@socionext.com \
--cc=patrice.chotard@foss.st.com \
--cc=paul@crapouillou.net \
--cc=perex@perex.cz \
--cc=peter.ujfalusi@gmail.com \
--cc=povik+lin@cutebit.org \
--cc=quic_msavaliy@quicinc.com \
--cc=quic_vdadhani@quicinc.com \
--cc=rjui@broadcom.com \
--cc=robert.jarzmik@free.fr \
--cc=robh@kernel.org \
--cc=s.hauer@pengutronix.de \
--cc=samuel@sholland.org \
--cc=saravanak@google.com \
--cc=sbranden@broadcom.com \
--cc=shawnguo@kernel.org \
--cc=sugaya.taichi@socionext.com \
--cc=sven@kernel.org \
--cc=thierry.reding@gmail.com \
--cc=tiwai@suse.com \
--cc=vireshk@kernel.org \
--cc=vkoul@kernel.org \
--cc=wens@csie.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox