| From 11b98195c75974432195bcd53da42a31e145eb52 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Sat, 22 May 2021 08:10:01 +0300 |
| Subject: mfd: cpcap: Fix cpcap dmamask not set warnings |
| |
| From: Tony Lindgren <tony@atomide.com> |
| |
| [ Upstream commit 0b7cbe811ca524295ea43d9a4d73d3427e419c54 ] |
| |
| We have started to get a bunch of pointless dmamask not set warnings |
| that makes the output of dmesg -l err,warn hard to read with many |
| extra warnings: |
| |
| cpcap-regulator cpcap-regulator.0: DMA mask not set |
| cpcap_adc cpcap_adc.0: DMA mask not set |
| cpcap_battery cpcap_battery.0: DMA mask not set |
| cpcap-charger cpcap-charger.0: DMA mask not set |
| cpcap-pwrbutton cpcap-pwrbutton.0: DMA mask not set |
| cpcap-led cpcap-led.0: DMA mask not set |
| cpcap-led cpcap-led.1: DMA mask not set |
| cpcap-led cpcap-led.2: DMA mask not set |
| cpcap-led cpcap-led.3: DMA mask not set |
| cpcap-led cpcap-led.4: DMA mask not set |
| cpcap-rtc cpcap-rtc.0: DMA mask not set |
| cpcap-usb-phy cpcap-usb-phy.0: DMA mask not set |
| |
| This seems to have started with commit 4d8bde883bfb ("OF: Don't set |
| default coherent DMA mask"). We have the parent SPI controller use |
| DMA, while CPCAP driver and it's children do not. For audio, the |
| DMA is handled over I2S bus with the McBSP driver. |
| |
| Cc: Carl Philipp Klemm <philipp@uvos.xyz> |
| Cc: Ivan Jelincic <parazyd@dyne.org> |
| Cc: Merlijn Wajer <merlijn@wizzup.org> |
| Cc: Pavel Machek <pavel@ucw.cz> |
| Cc: Sebastian Reichel <sre@kernel.org> |
| Cc: Sicelo A. Mhlongo <absicsz@gmail.com> |
| Signed-off-by: Tony Lindgren <tony@atomide.com> |
| Signed-off-by: Lee Jones <lee.jones@linaro.org> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/mfd/motorola-cpcap.c | 4 ++++ |
| 1 file changed, 4 insertions(+) |
| |
| diff --git a/drivers/mfd/motorola-cpcap.c b/drivers/mfd/motorola-cpcap.c |
| index 30d82bfe5b02..6fb206da2729 100644 |
| --- a/drivers/mfd/motorola-cpcap.c |
| +++ b/drivers/mfd/motorola-cpcap.c |
| @@ -327,6 +327,10 @@ static int cpcap_probe(struct spi_device *spi) |
| if (ret) |
| return ret; |
| |
| + /* Parent SPI controller uses DMA, CPCAP and child devices do not */ |
| + spi->dev.coherent_dma_mask = 0; |
| + spi->dev.dma_mask = &spi->dev.coherent_dma_mask; |
| + |
| return devm_mfd_add_devices(&spi->dev, 0, cpcap_mfd_devices, |
| ARRAY_SIZE(cpcap_mfd_devices), NULL, 0, NULL); |
| } |
| -- |
| 2.30.2 |
| |