diff options
author | John W. Linville <linville@tuxdriver.com> | 2014-05-27 13:51:31 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2014-05-27 13:51:31 -0400 |
commit | 9db7cb6901740453a442e598563b576987dd471b (patch) | |
tree | e38911285b5cd9980280a92ea0e0260f6c1ef2ad /drivers/mmc | |
parent | 3bea8eddfebe1c61ea824dd2880d4368791edc1f (diff) | |
parent | 03c4444650969431b3a5effde4995de767e3013a (diff) |
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next into for-davem
Diffstat (limited to 'drivers/mmc')
-rw-r--r-- | drivers/mmc/host/mmc_spi.c | 18 |
1 files changed, 6 insertions, 12 deletions
diff --git a/drivers/mmc/host/mmc_spi.c b/drivers/mmc/host/mmc_spi.c index 0a87e5691341..cc8d4a6099cd 100644 --- a/drivers/mmc/host/mmc_spi.c +++ b/drivers/mmc/host/mmc_spi.c | |||
@@ -448,7 +448,6 @@ mmc_spi_command_send(struct mmc_spi_host *host, | |||
448 | { | 448 | { |
449 | struct scratch *data = host->data; | 449 | struct scratch *data = host->data; |
450 | u8 *cp = data->status; | 450 | u8 *cp = data->status; |
451 | u32 arg = cmd->arg; | ||
452 | int status; | 451 | int status; |
453 | struct spi_transfer *t; | 452 | struct spi_transfer *t; |
454 | 453 | ||
@@ -465,14 +464,12 @@ mmc_spi_command_send(struct mmc_spi_host *host, | |||
465 | * We init the whole buffer to all-ones, which is what we need | 464 | * We init the whole buffer to all-ones, which is what we need |
466 | * to write while we're reading (later) response data. | 465 | * to write while we're reading (later) response data. |
467 | */ | 466 | */ |
468 | memset(cp++, 0xff, sizeof(data->status)); | 467 | memset(cp, 0xff, sizeof(data->status)); |
469 | 468 | ||
470 | *cp++ = 0x40 | cmd->opcode; | 469 | cp[1] = 0x40 | cmd->opcode; |
471 | *cp++ = (u8)(arg >> 24); | 470 | put_unaligned_be32(cmd->arg, cp+2); |
472 | *cp++ = (u8)(arg >> 16); | 471 | cp[6] = crc7_be(0, cp+1, 5) | 0x01; |
473 | *cp++ = (u8)(arg >> 8); | 472 | cp += 7; |
474 | *cp++ = (u8)arg; | ||
475 | *cp++ = (crc7(0, &data->status[1], 5) << 1) | 0x01; | ||
476 | 473 | ||
477 | /* Then, read up to 13 bytes (while writing all-ones): | 474 | /* Then, read up to 13 bytes (while writing all-ones): |
478 | * - N(CR) (== 1..8) bytes of all-ones | 475 | * - N(CR) (== 1..8) bytes of all-ones |
@@ -711,10 +708,7 @@ mmc_spi_writeblock(struct mmc_spi_host *host, struct spi_transfer *t, | |||
711 | * so we have to cope with this situation and check the response | 708 | * so we have to cope with this situation and check the response |
712 | * bit-by-bit. Arggh!!! | 709 | * bit-by-bit. Arggh!!! |
713 | */ | 710 | */ |
714 | pattern = scratch->status[0] << 24; | 711 | pattern = get_unaligned_be32(scratch->status); |
715 | pattern |= scratch->status[1] << 16; | ||
716 | pattern |= scratch->status[2] << 8; | ||
717 | pattern |= scratch->status[3]; | ||
718 | 712 | ||
719 | /* First 3 bit of pattern are undefined */ | 713 | /* First 3 bit of pattern are undefined */ |
720 | pattern |= 0xE0000000; | 714 | pattern |= 0xE0000000; |