Not sure yet why transfers fail but this gets things going
---
 sys/dev/fdt/dwmmc.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/sys/dev/fdt/dwmmc.c b/sys/dev/fdt/dwmmc.c
index c7a236b367b..b6891ae8a49 100644
--- a/sys/dev/fdt/dwmmc.c
+++ b/sys/dev/fdt/dwmmc.c
@@ -424,7 +424,10 @@ dwmmc_attach(struct device *parent, struct device *self, 
void *aux)
        saa.sch = sc;
        saa.dmat = sc->sc_dmat;
        saa.dmap = sc->sc_dmap;
-       saa.caps |= SMC_CAPS_DMA;
+
+       /* XXX: mmc dma is broken on rk3128, don't use it for now */
+       if (!OF_is_compatible(faa->fa_node, "rockchip,rk3128-dw-mshc"))
+               saa.caps |= SMC_CAPS_DMA;
 
        if (OF_getproplen(sc->sc_node, "cap-mmc-highspeed") == 0)
                saa.caps |= SMC_CAPS_MMC_HIGHSPEED;
-- 
2.47.1

Reply via email to