[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <36f3ef2d-fd46-492a-87e6-3eb70467859d@oss.qualcomm.com>
Date: Thu, 31 Jul 2025 00:32:58 +0200
From: Konrad Dybcio <konrad.dybcio@....qualcomm.com>
To: Pengyu Luo <mitltlatltl@...il.com>, Vinod Koul <vkoul@...nel.org>,
Rob Herring <robh@...nel.org>,
Krzysztof Kozlowski <krzk+dt@...nel.org>,
Conor Dooley <conor+dt@...nel.org>,
Bjorn Andersson <andersson@...nel.org>,
Konrad Dybcio <konradybcio@...nel.org>,
Dmitry Baryshkov <dmitry.baryshkov@....qualcomm.com>
Cc: linux-arm-msm@...r.kernel.org, dmaengine@...r.kernel.org,
devicetree@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH v3 2/2] arm64: dts: qcom: sc8280xp: Describe GPI DMA
controller nodes
On 6/17/25 11:00 AM, Pengyu Luo wrote:
> SPI on SC8280XP requires DMA (GSI) mode to function properly. Without
> it, SPI controllers fall back to FIFO mode, which causes:
>
> [ 0.901296] geni_spi 898000.spi: error -ENODEV: Failed to get tx DMA ch
> [ 0.901305] geni_spi 898000.spi: FIFO mode disabled, but couldn't get DMA, fall back to FIFO mode
> ...
> [ 45.605974] goodix-spi-hid spi0.0: SPI transfer timed out
> [ 45.605988] geni_spi 898000.spi: Can't set CS when prev xfer running
> [ 46.621555] spi_master spi0: failed to transfer one message from queue
> [ 46.621568] spi_master spi0: noqueue transfer failed
> [ 46.621577] goodix-spi-hid spi0.0: spi transfer error: -110
> [ 46.621585] goodix-spi-hid spi0.0: probe with driver goodix-spi-hid failed with error -110
>
> Therefore, describe GPI DMA controller nodes for qup{0,1,2}, and
> describe DMA channels for SPI and I2C, UART is excluded for now, as
> it does not yet support this mode.
>
> Note that, since there is no public schematic, this is derived from
> Windows drivers. The drivers do not expose any DMA channel mask
> information, so all available channels are enabled.
>
> Signed-off-by: Pengyu Luo <mitltlatltl@...il.com>
> ---
[...]
> + gpi_dma0: dma-controller@...000 {
Double space before '{'
> + compatible = "qcom,sc8280xp-gpi-dma", "qcom,sm6350-gpi-dma";
> + reg = <0 0x00900000 0 0x60000>;
> +
> + interrupts = <GIC_SPI 244 IRQ_TYPE_LEVEL_HIGH>,
> + <GIC_SPI 245 IRQ_TYPE_LEVEL_HIGH>,
> + <GIC_SPI 246 IRQ_TYPE_LEVEL_HIGH>,
> + <GIC_SPI 247 IRQ_TYPE_LEVEL_HIGH>,
> + <GIC_SPI 248 IRQ_TYPE_LEVEL_HIGH>,
> + <GIC_SPI 249 IRQ_TYPE_LEVEL_HIGH>,
> + <GIC_SPI 250 IRQ_TYPE_LEVEL_HIGH>,
> + <GIC_SPI 251 IRQ_TYPE_LEVEL_HIGH>,
> + <GIC_SPI 252 IRQ_TYPE_LEVEL_HIGH>,
> + <GIC_SPI 253 IRQ_TYPE_LEVEL_HIGH>,
> + <GIC_SPI 254 IRQ_TYPE_LEVEL_HIGH>,
> + <GIC_SPI 255 IRQ_TYPE_LEVEL_HIGH>,
> + <GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH>;
The last entry is incorrect and superfluous, please remove
You can also enable the gpi_dma nodes by default
lgtm otherwise
Konrad
Powered by blists - more mailing lists