Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 46216
b: refs/heads/master
c: 2a22b14
h: refs/heads/master
v: v3
  • Loading branch information
Pierre Ossman committed Feb 4, 2007
1 parent 7fd591a commit d4f4054
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 20 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 4a0ddbd25ad4e03a0a1657f5cb2259c9a35fe9e6
refs/heads/master: 2a22b14edfdf1dce303ec48bb934a6a2edb278b5
24 changes: 6 additions & 18 deletions trunk/drivers/mmc/sdhci.c
Original file line number Diff line number Diff line change
Expand Up @@ -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 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);
return page_address(host->cur_sg->page) + host->cur_sg->offset;
}

static inline int sdhci_next_sg(struct sdhci_host* host)
Expand Down Expand Up @@ -249,7 +243,7 @@ static void sdhci_read_block_pio(struct sdhci_host *host)
chunk_remain = 0;
data = 0;

buffer = sdhci_kmap_sg(host) + host->offset;
buffer = sdhci_sg_to_buffer(host) + host->offset;

while (blksize) {
if (chunk_remain == 0) {
Expand All @@ -273,16 +267,13 @@ static void sdhci_read_block_pio(struct sdhci_host *host)
}

if (host->remain == 0) {
sdhci_kunmap_sg(host);
if (sdhci_next_sg(host) == 0) {
BUG_ON(blksize != 0);
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)
Expand All @@ -299,7 +290,7 @@ static void sdhci_write_block_pio(struct sdhci_host *host)
data = 0;

bytes = 0;
buffer = sdhci_kmap_sg(host) + host->offset;
buffer = sdhci_sg_to_buffer(host) + host->offset;

while (blksize) {
size = min(host->size, host->remain);
Expand All @@ -323,16 +314,13 @@ static void sdhci_write_block_pio(struct sdhci_host *host)
}

if (host->remain == 0) {
sdhci_kunmap_sg(host);
if (sdhci_next_sg(host) == 0) {
BUG_ON(blksize != 0);
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)
Expand Down
1 change: 0 additions & 1 deletion trunk/drivers/mmc/sdhci.h
Original file line number Diff line number Diff line change
Expand Up @@ -183,7 +183,6 @@ struct sdhci_host {
struct mmc_data *data; /* Current data request */

struct scatterlist *cur_sg; /* We're working on this */
char *mapped_sg; /* This is where it's mapped */
int num_sg; /* Entries left */
int offset; /* Offset into current sg */
int remain; /* Bytes left in current */
Expand Down

0 comments on commit d4f4054

Please sign in to comment.