Commit 2a22b14e authored by Pierre Ossman's avatar Pierre Ossman

mmc: sdhci: replace kmap with page_address

Since we actively avoid highmem, calling kmap_atomic() instead
of page_address() is effectively only obfuscation.
Signed-off-by: default avatarPierre Ossman <drzeus@drzeus.cx>
parent 4a0ddbd2
...@@ -206,15 +206,9 @@ static void sdhci_deactivate_led(struct sdhci_host *host) ...@@ -206,15 +206,9 @@ static void sdhci_deactivate_led(struct sdhci_host *host)
* * * *
\*****************************************************************************/ \*****************************************************************************/
static inline char* sdhci_kmap_sg(struct sdhci_host* host) static inline char* sdhci_sg_to_buffer(struct sdhci_host* host)
{ {
host->mapped_sg = kmap_atomic(host->cur_sg->page, KM_BIO_SRC_IRQ); return page_address(host->cur_sg->page) + host->cur_sg->offset;
return host->mapped_sg + host->cur_sg->offset;
}
static inline void sdhci_kunmap_sg(struct sdhci_host* host)
{
kunmap_atomic(host->mapped_sg, KM_BIO_SRC_IRQ);
} }
static inline int sdhci_next_sg(struct sdhci_host* host) static inline int sdhci_next_sg(struct sdhci_host* host)
...@@ -249,7 +243,7 @@ static void sdhci_read_block_pio(struct sdhci_host *host) ...@@ -249,7 +243,7 @@ static void sdhci_read_block_pio(struct sdhci_host *host)
chunk_remain = 0; chunk_remain = 0;
data = 0; data = 0;
buffer = sdhci_kmap_sg(host) + host->offset; buffer = sdhci_sg_to_buffer(host) + host->offset;
while (blksize) { while (blksize) {
if (chunk_remain == 0) { if (chunk_remain == 0) {
...@@ -273,16 +267,13 @@ static void sdhci_read_block_pio(struct sdhci_host *host) ...@@ -273,16 +267,13 @@ static void sdhci_read_block_pio(struct sdhci_host *host)
} }
if (host->remain == 0) { if (host->remain == 0) {
sdhci_kunmap_sg(host);
if (sdhci_next_sg(host) == 0) { if (sdhci_next_sg(host) == 0) {
BUG_ON(blksize != 0); BUG_ON(blksize != 0);
return; return;
} }
buffer = sdhci_kmap_sg(host); buffer = sdhci_sg_to_buffer(host);
} }
} }
sdhci_kunmap_sg(host);
} }
static void sdhci_write_block_pio(struct sdhci_host *host) static void sdhci_write_block_pio(struct sdhci_host *host)
...@@ -299,7 +290,7 @@ static void sdhci_write_block_pio(struct sdhci_host *host) ...@@ -299,7 +290,7 @@ static void sdhci_write_block_pio(struct sdhci_host *host)
data = 0; data = 0;
bytes = 0; bytes = 0;
buffer = sdhci_kmap_sg(host) + host->offset; buffer = sdhci_sg_to_buffer(host) + host->offset;
while (blksize) { while (blksize) {
size = min(host->size, host->remain); size = min(host->size, host->remain);
...@@ -323,16 +314,13 @@ static void sdhci_write_block_pio(struct sdhci_host *host) ...@@ -323,16 +314,13 @@ static void sdhci_write_block_pio(struct sdhci_host *host)
} }
if (host->remain == 0) { if (host->remain == 0) {
sdhci_kunmap_sg(host);
if (sdhci_next_sg(host) == 0) { if (sdhci_next_sg(host) == 0) {
BUG_ON(blksize != 0); BUG_ON(blksize != 0);
return; return;
} }
buffer = sdhci_kmap_sg(host); buffer = sdhci_sg_to_buffer(host);
} }
} }
sdhci_kunmap_sg(host);
} }
static void sdhci_transfer_pio(struct sdhci_host *host) static void sdhci_transfer_pio(struct sdhci_host *host)
......
...@@ -183,7 +183,6 @@ struct sdhci_host { ...@@ -183,7 +183,6 @@ struct sdhci_host {
struct mmc_data *data; /* Current data request */ struct mmc_data *data; /* Current data request */
struct scatterlist *cur_sg; /* We're working on this */ struct scatterlist *cur_sg; /* We're working on this */
char *mapped_sg; /* This is where it's mapped */
int num_sg; /* Entries left */ int num_sg; /* Entries left */
int offset; /* Offset into current sg */ int offset; /* Offset into current sg */
int remain; /* Bytes left in current */ int remain; /* Bytes left in current */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment