summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Mauderer <Christian.Mauderer@embedded-brains.de>2017-11-17 14:23:55 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2017-11-17 14:28:56 +0100
commit9569b39515dc8a8e1e0381d45919c1ec296a7ea9 (patch)
tree8872fe67a511c435070db79b52c1881221819328
parentc360b1a2dc697e0227de54c219471e50860c0adb (diff)
at91_mci: Fix for 32k buffer.
-rw-r--r--freebsd/sys/arm/at91/at91_mci.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/freebsd/sys/arm/at91/at91_mci.c b/freebsd/sys/arm/at91/at91_mci.c
index e4988cb9..44772ae5 100644
--- a/freebsd/sys/arm/at91/at91_mci.c
+++ b/freebsd/sys/arm/at91/at91_mci.c
@@ -140,8 +140,15 @@ static sXdmad *pXdmad = &XDMAD_Instance;
* entire data cache, impacting overall system performance.
*/
#define BBCOUNT 2
+#ifndef __rtems__
#define BBSIZE (16*1024)
#define MAX_BLOCKS ((BBSIZE*BBCOUNT)/512)
+#else /* __rtems__ */
+#define BBSIZE (32*1024)
+#define MAX_BLOCKS ((BBSIZE)/512)
+/* FIXME: It would be better to split the DMA up in that case like in the
+ * original driver. But that would need some rework. */
+#endif /* __rtems__ */
static int mci_debug;
@@ -935,7 +942,11 @@ at91_mci_start_cmd(struct at91_mci_softc *sc, struct mmc_command *cmd)
bus_addr_t paddr;
int err;
+#ifndef __rtems__
if (remaining > (BBCOUNT*BBSIZE))
+#else /* __rtems__ */
+ if (remaining > (BBSIZE))
+#endif /* __rtems__ */
panic("IO read size exceeds MAXDATA\n");
if (data->flags & MMC_DATA_READ) {