diff options
| author | Jeremy Erickson <jerickso@cs.unc.edu> | 2014-04-18 17:06:00 -0400 |
|---|---|---|
| committer | Jeremy Erickson <jerickso@cs.unc.edu> | 2014-04-18 17:06:00 -0400 |
| commit | a215aa7b9ab3759c047201199fba64d3042d7f13 (patch) | |
| tree | bca37493d9b2233450e6d3ffced1261d0e4f71fe /drivers/mmc | |
| parent | d31199a77ef606f1d06894385f1852181ba6136b (diff) | |
Update 2.6.36 to 2.6.36.4wip-dissipation2-jerickso
Diffstat (limited to 'drivers/mmc')
| -rw-r--r-- | drivers/mmc/core/core.c | 3 | ||||
| -rw-r--r-- | drivers/mmc/host/at91_mci.c | 13 | ||||
| -rw-r--r-- | drivers/mmc/host/atmel-mci.c | 18 | ||||
| -rw-r--r-- | drivers/mmc/host/bfin_sdh.c | 2 |
4 files changed, 24 insertions, 12 deletions
diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c index 09eee6df0653..994454295184 100644 --- a/drivers/mmc/core/core.c +++ b/drivers/mmc/core/core.c | |||
| @@ -1514,7 +1514,7 @@ void mmc_stop_host(struct mmc_host *host) | |||
| 1514 | 1514 | ||
| 1515 | if (host->caps & MMC_CAP_DISABLE) | 1515 | if (host->caps & MMC_CAP_DISABLE) |
| 1516 | cancel_delayed_work(&host->disable); | 1516 | cancel_delayed_work(&host->disable); |
| 1517 | cancel_delayed_work(&host->detect); | 1517 | cancel_delayed_work_sync(&host->detect); |
| 1518 | mmc_flush_scheduled_work(); | 1518 | mmc_flush_scheduled_work(); |
| 1519 | 1519 | ||
| 1520 | /* clear pm flags now and let card drivers set them as needed */ | 1520 | /* clear pm flags now and let card drivers set them as needed */ |
| @@ -1720,6 +1720,7 @@ int mmc_pm_notify(struct notifier_block *notify_block, | |||
| 1720 | 1720 | ||
| 1721 | case PM_POST_SUSPEND: | 1721 | case PM_POST_SUSPEND: |
| 1722 | case PM_POST_HIBERNATION: | 1722 | case PM_POST_HIBERNATION: |
| 1723 | case PM_POST_RESTORE: | ||
| 1723 | 1724 | ||
| 1724 | spin_lock_irqsave(&host->lock, flags); | 1725 | spin_lock_irqsave(&host->lock, flags); |
| 1725 | host->rescan_disable = 0; | 1726 | host->rescan_disable = 0; |
diff --git a/drivers/mmc/host/at91_mci.c b/drivers/mmc/host/at91_mci.c index 87226cd202a5..57bb421ba1b2 100644 --- a/drivers/mmc/host/at91_mci.c +++ b/drivers/mmc/host/at91_mci.c | |||
| @@ -69,6 +69,7 @@ | |||
| 69 | #include <linux/highmem.h> | 69 | #include <linux/highmem.h> |
| 70 | 70 | ||
| 71 | #include <linux/mmc/host.h> | 71 | #include <linux/mmc/host.h> |
| 72 | #include <linux/mmc/sdio.h> | ||
| 72 | 73 | ||
| 73 | #include <asm/io.h> | 74 | #include <asm/io.h> |
| 74 | #include <asm/irq.h> | 75 | #include <asm/irq.h> |
| @@ -493,10 +494,14 @@ static void at91_mci_send_command(struct at91mci_host *host, struct mmc_command | |||
| 493 | else if (data->flags & MMC_DATA_WRITE) | 494 | else if (data->flags & MMC_DATA_WRITE) |
| 494 | cmdr |= AT91_MCI_TRCMD_START; | 495 | cmdr |= AT91_MCI_TRCMD_START; |
| 495 | 496 | ||
| 496 | if (data->flags & MMC_DATA_STREAM) | 497 | if (cmd->opcode == SD_IO_RW_EXTENDED) { |
| 497 | cmdr |= AT91_MCI_TRTYP_STREAM; | 498 | cmdr |= AT91_MCI_TRTYP_SDIO_BLOCK; |
| 498 | if (data->blocks > 1) | 499 | } else { |
| 499 | cmdr |= AT91_MCI_TRTYP_MULTIPLE; | 500 | if (data->flags & MMC_DATA_STREAM) |
| 501 | cmdr |= AT91_MCI_TRTYP_STREAM; | ||
| 502 | if (data->blocks > 1) | ||
| 503 | cmdr |= AT91_MCI_TRTYP_MULTIPLE; | ||
| 504 | } | ||
| 500 | } | 505 | } |
| 501 | else { | 506 | else { |
| 502 | block_length = 0; | 507 | block_length = 0; |
diff --git a/drivers/mmc/host/atmel-mci.c b/drivers/mmc/host/atmel-mci.c index 95ef864ad8f9..3a569bfe3886 100644 --- a/drivers/mmc/host/atmel-mci.c +++ b/drivers/mmc/host/atmel-mci.c | |||
| @@ -26,6 +26,7 @@ | |||
| 26 | #include <linux/stat.h> | 26 | #include <linux/stat.h> |
| 27 | 27 | ||
| 28 | #include <linux/mmc/host.h> | 28 | #include <linux/mmc/host.h> |
| 29 | #include <linux/mmc/sdio.h> | ||
| 29 | 30 | ||
| 30 | #include <mach/atmel-mci.h> | 31 | #include <mach/atmel-mci.h> |
| 31 | #include <linux/atmel-mci.h> | 32 | #include <linux/atmel-mci.h> |
| @@ -532,12 +533,17 @@ static u32 atmci_prepare_command(struct mmc_host *mmc, | |||
| 532 | data = cmd->data; | 533 | data = cmd->data; |
| 533 | if (data) { | 534 | if (data) { |
| 534 | cmdr |= MCI_CMDR_START_XFER; | 535 | cmdr |= MCI_CMDR_START_XFER; |
| 535 | if (data->flags & MMC_DATA_STREAM) | 536 | |
| 536 | cmdr |= MCI_CMDR_STREAM; | 537 | if (cmd->opcode == SD_IO_RW_EXTENDED) { |
| 537 | else if (data->blocks > 1) | 538 | cmdr |= MCI_CMDR_SDIO_BLOCK; |
| 538 | cmdr |= MCI_CMDR_MULTI_BLOCK; | 539 | } else { |
| 539 | else | 540 | if (data->flags & MMC_DATA_STREAM) |
| 540 | cmdr |= MCI_CMDR_BLOCK; | 541 | cmdr |= MCI_CMDR_STREAM; |
| 542 | else if (data->blocks > 1) | ||
| 543 | cmdr |= MCI_CMDR_MULTI_BLOCK; | ||
| 544 | else | ||
| 545 | cmdr |= MCI_CMDR_BLOCK; | ||
| 546 | } | ||
| 541 | 547 | ||
| 542 | if (data->flags & MMC_DATA_READ) | 548 | if (data->flags & MMC_DATA_READ) |
| 543 | cmdr |= MCI_CMDR_TRDIR_READ; | 549 | cmdr |= MCI_CMDR_TRDIR_READ; |
diff --git a/drivers/mmc/host/bfin_sdh.c b/drivers/mmc/host/bfin_sdh.c index 4b0e677d7295..5164edfeabdd 100644 --- a/drivers/mmc/host/bfin_sdh.c +++ b/drivers/mmc/host/bfin_sdh.c | |||
| @@ -462,7 +462,7 @@ static int __devinit sdh_probe(struct platform_device *pdev) | |||
| 462 | goto out; | 462 | goto out; |
| 463 | } | 463 | } |
| 464 | 464 | ||
| 465 | mmc = mmc_alloc_host(sizeof(*mmc), &pdev->dev); | 465 | mmc = mmc_alloc_host(sizeof(struct sdh_host), &pdev->dev); |
| 466 | if (!mmc) { | 466 | if (!mmc) { |
| 467 | ret = -ENOMEM; | 467 | ret = -ENOMEM; |
| 468 | goto out; | 468 | goto out; |
