drivers/mmc/host/dw_mmc-exynos.c | 1 + drivers/mmc/host/dw_mmc.c | 4 ++-- drivers/mmc/host/dw_mmc.h | 2 ++ 3 files changed, 5 insertions(+), 2 deletions(-)
In Samsung Exynos 7870 devices with Broadcom Wi-Fi, it has been observed
that small sized DMA transfers are unreliable and are not written
properly, which renders the cache incoherent.
Experimental observations say that DMA transfer sizes of somewhere
around 64 to 512 are intolerable. We must thus implement a mechanism to
fall back to PIO transfer in this case. One such approach, which this
series implements is allowing the DMA transfer threshold, which is
already defined in the driver, to be configurable.
Note that this patch is likely to be labelled as a workaround. These
smaller transfers seem to be successful from downstream kernels,
however efforts to figure out how so went in vain. It is also very
possible that the downstream Broadcom Wi-Fi SDIO driver uses PIO
transfers as well.
Signed-off-by: Kaustabh Chakraborty <kauschluss@disroot.org>
---
Changes in v3:
- Move host->dma_threshold default to dw_mci_alloc_host() (Shawn Lin)
- Move comment to document struct dw_mci::dma_threshold (Shawn Lin)
- Link to v2: https://lore.kernel.org/r/20260414-dwmmc-dma-thr-v2-0-4058078f5361@disroot.org
Changes in v2:
- Remove dt-binding to set DMA threshold (Krzysztof Kozlowski)
- Add comment to describe struct dw_mci::dma_threshold (Shawn Lin)
- Set DMA threshold in Exynos 7870 DW-MMC driver (Krzysztof Kozlowski)
- Link to v1: https://lore.kernel.org/r/20260412-dwmmc-dma-thr-v1-0-75a2f658eee3@disroot.org
---
Kaustabh Chakraborty (2):
mmc: dw_mmc: implement option for configuring DMA threshold
mmc: dw_mmc: exynos: increase DMA threshold value for exynos7870
drivers/mmc/host/dw_mmc-exynos.c | 1 +
drivers/mmc/host/dw_mmc.c | 4 ++--
drivers/mmc/host/dw_mmc.h | 2 ++
3 files changed, 5 insertions(+), 2 deletions(-)
---
base-commit: 1c7cc4904160c6fc6377564140062d68a3dc93a0
change-id: 20260412-dwmmc-dma-thr-1090d8285ea7
Best regards,
--
Kaustabh Chakraborty <kauschluss@disroot.org>
On Wed, 15 Apr 2026 at 17:03, Kaustabh Chakraborty <kauschluss@disroot.org> wrote: > > In Samsung Exynos 7870 devices with Broadcom Wi-Fi, it has been observed > that small sized DMA transfers are unreliable and are not written > properly, which renders the cache incoherent. > > Experimental observations say that DMA transfer sizes of somewhere > around 64 to 512 are intolerable. We must thus implement a mechanism to > fall back to PIO transfer in this case. One such approach, which this > series implements is allowing the DMA transfer threshold, which is > already defined in the driver, to be configurable. > > Note that this patch is likely to be labelled as a workaround. These > smaller transfers seem to be successful from downstream kernels, > however efforts to figure out how so went in vain. It is also very > possible that the downstream Broadcom Wi-Fi SDIO driver uses PIO > transfers as well. > > Signed-off-by: Kaustabh Chakraborty <kauschluss@disroot.org> > --- > Changes in v3: > - Move host->dma_threshold default to dw_mci_alloc_host() (Shawn Lin) > - Move comment to document struct dw_mci::dma_threshold (Shawn Lin) > - Link to v2: https://lore.kernel.org/r/20260414-dwmmc-dma-thr-v2-0-4058078f5361@disroot.org The v3 series applied for next, thanks! Kind regards Uffe > > Changes in v2: > - Remove dt-binding to set DMA threshold (Krzysztof Kozlowski) > - Add comment to describe struct dw_mci::dma_threshold (Shawn Lin) > - Set DMA threshold in Exynos 7870 DW-MMC driver (Krzysztof Kozlowski) > - Link to v1: https://lore.kernel.org/r/20260412-dwmmc-dma-thr-v1-0-75a2f658eee3@disroot.org > > --- > Kaustabh Chakraborty (2): > mmc: dw_mmc: implement option for configuring DMA threshold > mmc: dw_mmc: exynos: increase DMA threshold value for exynos7870 > > drivers/mmc/host/dw_mmc-exynos.c | 1 + > drivers/mmc/host/dw_mmc.c | 4 ++-- > drivers/mmc/host/dw_mmc.h | 2 ++ > 3 files changed, 5 insertions(+), 2 deletions(-) > --- > base-commit: 1c7cc4904160c6fc6377564140062d68a3dc93a0 > change-id: 20260412-dwmmc-dma-thr-1090d8285ea7 > > Best regards, > -- > Kaustabh Chakraborty <kauschluss@disroot.org> >
On 2026-04-15 20:32 +05:30, Kaustabh Chakraborty wrote: > In Samsung Exynos 7870 devices with Broadcom Wi-Fi, it has been observed > that small sized DMA transfers are unreliable and are not written > properly, which renders the cache incoherent. > > Experimental observations say that DMA transfer sizes of somewhere > around 64 to 512 are intolerable. We must thus implement a mechanism to > fall back to PIO transfer in this case. One such approach, which this > series implements is allowing the DMA transfer threshold, which is > already defined in the driver, to be configurable. > > Note that this patch is likely to be labelled as a workaround. These > smaller transfers seem to be successful from downstream kernels, > however efforts to figure out how so went in vain. It is also very > possible that the downstream Broadcom Wi-Fi SDIO driver uses PIO > transfers as well. > > Signed-off-by: Kaustabh Chakraborty <kauschluss@disroot.org> Hi, bump! What's the status of this patch series? Both patches have been reviewed.
© 2016 - 2026 Red Hat, Inc.