mirror of
https://github.com/team-infusion-developers/android_kernel_samsung_msm8976.git
synced 2024-09-22 04:15:02 +00:00
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: Pierre Ossman <drzeus@drzeus.cx>
This commit is contained in:
parent
4a0ddbd25a
commit
2a22b14edf
2 changed files with 6 additions and 19 deletions
|
@ -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)
|
||||||
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)
|
||||||
}
|
}
|
||||||
|
|
||||||
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)
|
||||||
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)
|
||||||
}
|
}
|
||||||
|
|
||||||
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 {
|
||||||
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 */
|
||||||
|
|
Loading…
Reference in a new issue