openwrtv4/target/linux/brcm2708/patches-4.4/0146-bcm2835-sdhost-Restore-ATOMIC-flag-to-PIO-sg-mapping.patch
Álvaro Fernández Rojas 2b1c6b21b5 brcm2708: update linux 4.4 patches to latest version
As usual these patches were extracted and rebased from the raspberry pi repo:
https://github.com/raspberrypi/linux/tree/rpi-4.4.y

Also adds support for Raspberry Pi Compute Module 3 (untested).

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2016-09-10 14:54:26 +02:00

32 lines
1,001 B
Diff

From 2ace17c79f413a43950944cf282235ea3de8c6e2 Mon Sep 17 00:00:00 2001
From: Phil Elwell <phil@raspberrypi.org>
Date: Mon, 15 Feb 2016 10:00:27 +0000
Subject: [PATCH] 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;
}