[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <e93d1b72-43da-4e96-9523-e1bbf3853031@opensource.cirrus.com>
Date: Thu, 13 Feb 2025 14:28:06 +0000
From: Richard Fitzgerald <rf@...nsource.cirrus.com>
To: Thomas Weißschuh <thomas.weissschuh@...utronix.de>,
"Simon Trimmer" <simont@...nsource.cirrus.com>,
Charles Keepax
<ckeepax@...nsource.cirrus.com>,
Mark Brown <broonie@...nel.org>
CC: <patches@...nsource.cirrus.com>, <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH 0/2] firmware: cs_dsp: Remove usage of GFP_DMA
On 11/02/2025 5:21 pm, Richard Fitzgerald wrote:
> On 11/02/2025 5:03 pm, Thomas Weißschuh wrote:
>> Also drop the bounce buffer in cs_dsp_coeff_write_ctrl_raw().
>>
>> The bounce buffer in cs_dsp_coeff_write_ctrl_raw() could theoretically
>> also be removed. That would be a functional change as the output may be
>> modified in error cases.
>> As I don't know the driver very well I left that part out.
>>
>> Not tested on real hardware.
>> This came up while porting kunit to mips64.
>> Apparently GFP_DMA does not work there, but IMO the usage of GFP_DMA by
I would say that is a bug in mips64 that should be fixed in mips64.
It is not reasonable to expect generic drivers to have special cases for
platforms that don't handle GFP_DMA.
>> cs_dsp is unnecessary in the first place.
>>
>
> You're sure that all I2C and SPI bus controllers now handle non-DMA-safe
> buffers correctly?
>
I just tested this.
The spi kernel doc says this:
* struct spi_transfer - a read/write buffer pair
* @tx_buf: data to be written (DMA-safe memory), or NULL
* @rx_buf: data to be read (DMA-safe memory), or NULL
On x86_64() a spi_write() fails with -EINVAL if I pass it a non-dma-safe
buffer of data. But it works if I pass it a buffer allocated with
GFP_DMA.
So I think it is a bad idea to remove GFP_DMA to workaround mips64.
>> Signed-off-by: Thomas Weißschuh <thomas.weissschuh@...utronix.de>
>> ---
>> Thomas Weißschuh (2):
>> firmware: cs_dsp: Remove usage of GFP_DMA
>> firmware: cs_dsp: Remove bounce buffer in
>> cs_dsp_coeff_write_ctrl_raw()
>>
>> drivers/firmware/cirrus/cs_dsp.c | 15 +++------------
>> 1 file changed, 3 insertions(+), 12 deletions(-)
>> ---
>> base-commit: 2014c95afecee3e76ca4a56956a936e23283f05b
>> change-id: 20250211-cs_dsp-gfp_dma-0581bdd09dd5
>>
>> Best regards,
>
Powered by blists - more mailing lists