diff options
-rw-r--r-- | sys/dev/sdmmc/sdmmc.c | 6 | ||||
-rw-r--r-- | sys/dev/sdmmc/sdmmcchip.h | 3 | ||||
-rw-r--r-- | sys/dev/sdmmc/sdmmcvar.h | 3 |
3 files changed, 8 insertions, 4 deletions
diff --git a/sys/dev/sdmmc/sdmmc.c b/sys/dev/sdmmc/sdmmc.c index 87328f0bc47..32285bce1cb 100644 --- a/sys/dev/sdmmc/sdmmc.c +++ b/sys/dev/sdmmc/sdmmc.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sdmmc.c,v 1.51 2018/08/09 13:52:36 patrick Exp $ */ +/* $OpenBSD: sdmmc.c,v 1.52 2018/12/29 11:37:30 patrick Exp $ */ /* * Copyright (c) 2006 Uwe Stuehler <uwe@openbsd.org> @@ -118,12 +118,14 @@ sdmmc_attach(struct device *parent, struct device *self, void *aux) sc->sc_dmap = saa->dmap; sc->sc_flags = saa->flags; sc->sc_caps = saa->caps; + sc->sc_max_seg = saa->max_seg ? saa->max_seg : MAXPHYS; sc->sc_max_xfer = saa->max_xfer; memcpy(&sc->sc_cookies, &saa->cookies, sizeof(sc->sc_cookies)); if (ISSET(sc->sc_caps, SMC_CAPS_DMA) && sc->sc_dmap == NULL) { error = bus_dmamap_create(sc->sc_dmat, MAXPHYS, SDMMC_MAXNSEGS, - MAXPHYS, 0, BUS_DMA_NOWAIT|BUS_DMA_ALLOCNOW, &sc->sc_dmap); + sc->sc_max_seg, 0, BUS_DMA_NOWAIT|BUS_DMA_ALLOCNOW, + &sc->sc_dmap); if (error) { printf("%s: can't create DMA map\n", DEVNAME(sc)); return; diff --git a/sys/dev/sdmmc/sdmmcchip.h b/sys/dev/sdmmc/sdmmcchip.h index 98b6d292399..14e2568c021 100644 --- a/sys/dev/sdmmc/sdmmcchip.h +++ b/sys/dev/sdmmc/sdmmcchip.h @@ -1,4 +1,4 @@ -/* $OpenBSD: sdmmcchip.h,v 1.12 2018/08/09 13:52:36 patrick Exp $ */ +/* $OpenBSD: sdmmcchip.h,v 1.13 2018/12/29 11:37:30 patrick Exp $ */ /* * Copyright (c) 2006 Uwe Stuehler <uwe@openbsd.org> @@ -104,6 +104,7 @@ struct sdmmcbus_attach_args { bus_dmamap_t dmap; int flags; int caps; + long max_seg; long max_xfer; void *cookies[SDMMC_MAX_FUNCTIONS]; }; diff --git a/sys/dev/sdmmc/sdmmcvar.h b/sys/dev/sdmmc/sdmmcvar.h index cd6a3637141..1cc635e3182 100644 --- a/sys/dev/sdmmc/sdmmcvar.h +++ b/sys/dev/sdmmc/sdmmcvar.h @@ -1,4 +1,4 @@ -/* $OpenBSD: sdmmcvar.h,v 1.30 2018/08/09 13:52:36 patrick Exp $ */ +/* $OpenBSD: sdmmcvar.h,v 1.31 2018/12/29 11:37:30 patrick Exp $ */ /* * Copyright (c) 2006 Uwe Stuehler <uwe@openbsd.org> @@ -213,6 +213,7 @@ struct sdmmc_softc { struct rwlock sc_lock; /* lock around host controller */ void *sc_scsibus; /* SCSI bus emulation softc */ TAILQ_HEAD(, sdmmc_intr_handler) sc_intrq; /* interrupt handlers */ + long sc_max_seg; /* maximum segment size */ long sc_max_xfer; /* maximum transfer size */ void *sc_cookies[SDMMC_MAX_FUNCTIONS]; /* pass extra info from bus to dev */ }; |