diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2011-01-11 11:01:24 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-01-11 11:01:24 -0800 |
commit | edb2877f4a62647e36e20839a786f94d688a06ed (patch) | |
tree | b7d7c5f3d5bf2ad1e41f72c43483be6023be2d92 /include/linux/mmc/host.h | |
parent | 5b2eef966cb2ae307aa4ef1767f7307774bc96ca (diff) | |
parent | f9db92cb8084c756890ddf953e9329588c59e8e8 (diff) |
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc: (39 commits)
mmc: davinci: add support for SDIO irq handling
mmc: fix division by zero in MMC core
mmc: tmio_mmc: fix CMD irq handling
mmc: tmio_mmc: handle missing HW interrupts
mfd: sh_mobile_sdhi: activate SDIO IRQ for tmio_mmc
mmc: tmio_mmc: implement SDIO IRQ support
mfd: sdhi: require the tmio-mmc driver to bounce unaligned buffers
mmc: tmio_mmc: silence compiler warnings
mmc: tmio_mmc: implement a bounce buffer for unaligned DMA
mmc: tmio_mmc: merge the private header into the driver
mmc: tmio_mmc: fix PIO fallback on DMA descriptor allocation failure
mmc: tmio_mmc: allow multi-element scatter-gather lists
mmc: Register debugfs dir before calling card probe function.
mmc: MMC_BLOCK_MINORS should depend on MMC_BLOCK.
mmc: Explain why we make adjacent mmc_bus_{put,get} calls during rescan.
mmc: Fix sd/sdio/mmc initialization frequency retries
mmc: fix mmc_set_bus_width_ddr() call without bus-width-test cap
mmc: dw_mmc: Add Synopsys DesignWare mmc host driver.
mmc: add sdhci-tegra driver for Tegra SoCs
mmc: sdhci: add quirk for max len ADMA descriptors
...
Diffstat (limited to 'include/linux/mmc/host.h')
-rw-r--r-- | include/linux/mmc/host.h | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/include/linux/mmc/host.h b/include/linux/mmc/host.h index 30f6fad99a5..bcb793ec737 100644 --- a/include/linux/mmc/host.h +++ b/include/linux/mmc/host.h @@ -131,6 +131,9 @@ struct mmc_host { unsigned int f_max; unsigned int f_init; u32 ocr_avail; + u32 ocr_avail_sdio; /* SDIO-specific OCR */ + u32 ocr_avail_sd; /* SD-specific OCR */ + u32 ocr_avail_mmc; /* MMC-specific OCR */ struct notifier_block pm_notify; #define MMC_VDD_165_195 0x00000080 /* VDD voltage 1.65 - 1.95 */ @@ -169,9 +172,20 @@ struct mmc_host { #define MMC_CAP_1_2V_DDR (1 << 12) /* can support */ /* DDR mode at 1.2V */ #define MMC_CAP_POWER_OFF_CARD (1 << 13) /* Can power off after boot */ +#define MMC_CAP_BUS_WIDTH_TEST (1 << 14) /* CMD14/CMD19 bus width ok */ mmc_pm_flag_t pm_caps; /* supported pm features */ +#ifdef CONFIG_MMC_CLKGATE + int clk_requests; /* internal reference counter */ + unsigned int clk_delay; /* number of MCI clk hold cycles */ + bool clk_gated; /* clock gated */ + struct work_struct clk_gate_work; /* delayed clock gate */ + unsigned int clk_old; /* old clock value cache */ + spinlock_t clk_lock; /* lock for clk fields */ + struct mutex clk_gate_mutex; /* mutex for clock gating */ +#endif + /* host specific block data */ unsigned int max_seg_size; /* see blk_queue_max_segment_size */ unsigned short max_segs; /* see blk_queue_max_segments */ @@ -307,5 +321,10 @@ static inline int mmc_card_is_removable(struct mmc_host *host) return !(host->caps & MMC_CAP_NONREMOVABLE) && mmc_assume_removable; } +static inline int mmc_card_is_powered_resumed(struct mmc_host *host) +{ + return host->pm_flags & MMC_PM_KEEP_POWER; +} + #endif |