cd2114e19c
As usual these patches were extracted from the raspberry pi repo: https://github.com/raspberrypi/linux/tree/rpi-4.4.y Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com> SVN-Revision: 48966
75 lines
2.3 KiB
Diff
75 lines
2.3 KiB
Diff
From 462591cf98f15614620667e93b7f8bc0da6e86da 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/170] 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;
|