diff options
Diffstat (limited to 'include/linux/mmc/host.h')
| -rw-r--r-- | include/linux/mmc/host.h | 32 |
1 files changed, 27 insertions, 5 deletions
diff --git a/include/linux/mmc/host.h b/include/linux/mmc/host.h index 7ab962fa1d73..10a2080086ca 100644 --- a/include/linux/mmc/host.h +++ b/include/linux/mmc/host.h | |||
| @@ -51,8 +51,30 @@ struct mmc_ios { | |||
| 51 | 51 | ||
| 52 | struct mmc_host_ops { | 52 | struct mmc_host_ops { |
| 53 | void (*request)(struct mmc_host *host, struct mmc_request *req); | 53 | void (*request)(struct mmc_host *host, struct mmc_request *req); |
| 54 | /* | ||
| 55 | * Avoid calling these three functions too often or in a "fast path", | ||
| 56 | * since underlaying controller might implement them in an expensive | ||
| 57 | * and/or slow way. | ||
| 58 | * | ||
| 59 | * Also note that these functions might sleep, so don't call them | ||
| 60 | * in the atomic contexts! | ||
| 61 | * | ||
| 62 | * Return values for the get_ro callback should be: | ||
| 63 | * 0 for a read/write card | ||
| 64 | * 1 for a read-only card | ||
| 65 | * -ENOSYS when not supported (equal to NULL callback) | ||
| 66 | * or a negative errno value when something bad happened | ||
| 67 | * | ||
| 68 | * Return values for the get_ro callback should be: | ||
| 69 | * 0 for a absent card | ||
| 70 | * 1 for a present card | ||
| 71 | * -ENOSYS when not supported (equal to NULL callback) | ||
| 72 | * or a negative errno value when something bad happened | ||
| 73 | */ | ||
| 54 | void (*set_ios)(struct mmc_host *host, struct mmc_ios *ios); | 74 | void (*set_ios)(struct mmc_host *host, struct mmc_ios *ios); |
| 55 | int (*get_ro)(struct mmc_host *host); | 75 | int (*get_ro)(struct mmc_host *host); |
| 76 | int (*get_cd)(struct mmc_host *host); | ||
| 77 | |||
| 56 | void (*enable_sdio_irq)(struct mmc_host *host, int enable); | 78 | void (*enable_sdio_irq)(struct mmc_host *host, int enable); |
| 57 | }; | 79 | }; |
| 58 | 80 | ||
| @@ -89,11 +111,11 @@ struct mmc_host { | |||
| 89 | unsigned long caps; /* Host capabilities */ | 111 | unsigned long caps; /* Host capabilities */ |
| 90 | 112 | ||
| 91 | #define MMC_CAP_4_BIT_DATA (1 << 0) /* Can the host do 4 bit transfers */ | 113 | #define MMC_CAP_4_BIT_DATA (1 << 0) /* Can the host do 4 bit transfers */ |
| 92 | #define MMC_CAP_MULTIWRITE (1 << 1) /* Can accurately report bytes sent to card on error */ | 114 | #define MMC_CAP_MMC_HIGHSPEED (1 << 1) /* Can do MMC high-speed timing */ |
| 93 | #define MMC_CAP_MMC_HIGHSPEED (1 << 2) /* Can do MMC high-speed timing */ | 115 | #define MMC_CAP_SD_HIGHSPEED (1 << 2) /* Can do SD high-speed timing */ |
| 94 | #define MMC_CAP_SD_HIGHSPEED (1 << 3) /* Can do SD high-speed timing */ | 116 | #define MMC_CAP_SDIO_IRQ (1 << 3) /* Can signal pending SDIO IRQs */ |
| 95 | #define MMC_CAP_SDIO_IRQ (1 << 4) /* Can signal pending SDIO IRQs */ | 117 | #define MMC_CAP_SPI (1 << 4) /* Talks only SPI protocols */ |
| 96 | #define MMC_CAP_SPI (1 << 5) /* Talks only SPI protocols */ | 118 | #define MMC_CAP_NEEDS_POLL (1 << 5) /* Needs polling for card-detection */ |
| 97 | 119 | ||
| 98 | /* host specific block data */ | 120 | /* host specific block data */ |
| 99 | unsigned int max_seg_size; /* see blk_queue_max_segment_size */ | 121 | unsigned int max_seg_size; /* see blk_queue_max_segment_size */ |
