openwrtv4/target/linux/brcm2708/patches-4.4/0032-Add-blk_pos-parameter-to-mmc-multi_io_quirk-callback.patch
Felix Fietkau 4224b52c3a brcm2708: add linux 4.4 support
- random-bcm2708 and spi-bcm2708 have been removed.
- sound-soc-bcm2708-i2s has been upstreamed as sound-soc-bcm2835-i2s.

Let's keep linux 4.1 for a while, since linux 4.4 appears to have some issues
with multicast traffic on RPi ethernet:
https://gist.github.com/Noltari/5b1cfdecce5ed4bc08fd

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>

SVN-Revision: 48266
2016-01-17 10:42:23 +00:00

75 lines
2.3 KiB
Diff

From 664c65e9a1191f4123b3d88595735d9ab56839e6 Mon Sep 17 00:00:00 2001
From: Phil Elwell <phil@raspberrypi.org>
Date: Fri, 17 Apr 2015 19:30:22 +0100
Subject: [PATCH 032/127] Add blk_pos parameter to mmc multi_io_quirk callback
---
drivers/mmc/card/block.c | 1 +
drivers/mmc/host/omap_hsmmc.c | 4 +++-
drivers/mmc/host/sh_mobile_sdhi.c | 4 +++-
drivers/mmc/host/tmio_mmc_pio.c | 4 +++-
include/linux/mmc/host.h | 4 +++-
5 files changed, 13 insertions(+), 4 deletions(-)
--- a/drivers/mmc/card/block.c
+++ b/drivers/mmc/card/block.c
@@ -1510,6 +1510,7 @@ static void mmc_blk_rw_rq_prep(struct mm
brq->data.blocks = card->host->ops->multi_io_quirk(card,
(rq_data_dir(req) == READ) ?
MMC_DATA_READ : MMC_DATA_WRITE,
+ blk_rq_pos(req),
brq->data.blocks);
}
--- a/drivers/mmc/host/omap_hsmmc.c
+++ b/drivers/mmc/host/omap_hsmmc.c
@@ -1832,7 +1832,9 @@ static void omap_hsmmc_conf_bus_power(st
}
static int omap_hsmmc_multi_io_quirk(struct mmc_card *card,
- unsigned int direction, int blk_size)
+ unsigned int direction,
+ u32 blk_pos,
+ int blk_size)
{
/* This controller can't do multiblock reads due to hw bugs */
if (direction == MMC_DATA_READ)
--- a/drivers/mmc/host/sh_mobile_sdhi.c
+++ b/drivers/mmc/host/sh_mobile_sdhi.c
@@ -170,7 +170,9 @@ static int sh_mobile_sdhi_write16_hook(s
}
static int sh_mobile_sdhi_multi_io_quirk(struct mmc_card *card,
- unsigned int direction, int blk_size)
+ unsigned int direction,
+ u32 blk_pos,
+ int blk_size)
{
/*
* In Renesas controllers, when performing a
--- a/drivers/mmc/host/tmio_mmc_pio.c
+++ b/drivers/mmc/host/tmio_mmc_pio.c
@@ -1003,7 +1003,9 @@ static int tmio_mmc_get_ro(struct mmc_ho
}
static int tmio_multi_io_quirk(struct mmc_card *card,
- unsigned int direction, int blk_size)
+ unsigned int direction,
+ u32 blk_pos,
+ int blk_size)
{
struct tmio_mmc_host *host = mmc_priv(card->host);
--- a/include/linux/mmc/host.h
+++ b/include/linux/mmc/host.h
@@ -143,7 +143,9 @@ struct mmc_host_ops {
* I/O. Returns the number of supported blocks for the request.
*/
int (*multi_io_quirk)(struct mmc_card *card,
- unsigned int direction, int blk_size);
+ unsigned int direction,
+ u32 blk_pos,
+ int blk_size);
};
struct mmc_card;