summaryrefslogtreecommitdiffstats
path: root/target/linux/brcm2708/patches-4.4/0146-bcm2835-sdhost-Restore-ATOMIC-flag-to-PIO-sg-mapping.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/brcm2708/patches-4.4/0146-bcm2835-sdhost-Restore-ATOMIC-flag-to-PIO-sg-mapping.patch')
-rw-r--r--target/linux/brcm2708/patches-4.4/0146-bcm2835-sdhost-Restore-ATOMIC-flag-to-PIO-sg-mapping.patch32
1 files changed, 32 insertions, 0 deletions
diff --git a/target/linux/brcm2708/patches-4.4/0146-bcm2835-sdhost-Restore-ATOMIC-flag-to-PIO-sg-mapping.patch b/target/linux/brcm2708/patches-4.4/0146-bcm2835-sdhost-Restore-ATOMIC-flag-to-PIO-sg-mapping.patch
new file mode 100644
index 0000000000..bc3bb26149
--- /dev/null
+++ b/target/linux/brcm2708/patches-4.4/0146-bcm2835-sdhost-Restore-ATOMIC-flag-to-PIO-sg-mapping.patch
@@ -0,0 +1,32 @@
+From 1bb1322d03193dc4214b030afad507d0df18e55c Mon Sep 17 00:00:00 2001
+From: Phil Elwell <phil@raspberrypi.org>
+Date: Mon, 15 Feb 2016 10:00:27 +0000
+Subject: [PATCH 146/304] bcm2835-sdhost: Restore ATOMIC flag to PIO sg mapping
+
+Allocation problems have been seen in a wireless driver, and
+this is the only change which might have been responsible.
+---
+ drivers/mmc/host/bcm2835-sdhost.c | 7 +++----
+ 1 file changed, 3 insertions(+), 4 deletions(-)
+
+--- a/drivers/mmc/host/bcm2835-sdhost.c
++++ b/drivers/mmc/host/bcm2835-sdhost.c
+@@ -874,15 +874,14 @@ static void bcm2835_sdhost_prepare_data(
+ host->flush_fifo = 0;
+ host->data->bytes_xfered = 0;
+
+-
+ if (!host->dma_desc) {
+ /* Use PIO */
+- int flags;
++ int flags = SG_MITER_ATOMIC;
+
+ if (data->flags & MMC_DATA_READ)
+- flags = SG_MITER_TO_SG;
++ flags |= SG_MITER_TO_SG;
+ else
+- flags = SG_MITER_FROM_SG;
++ flags |= SG_MITER_FROM_SG;
+ sg_miter_start(&host->sg_miter, data->sg, data->sg_len, flags);
+ host->blocks = data->blocks;
+ }