summaryrefslogtreecommitdiffstats
path: root/target/linux/brcm2708/patches-4.4/0146-bcm2835-sdhost-Restore-ATOMIC-flag-to-PIO-sg-mapping.patch
blob: b3a1e2f6819e4179d50b7a7499d907ba935fc05e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
From 865b951f9bc7ce938c240eb17e829fd666a3f5eb 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/423] 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;
 	}