]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - include/linux/mmc/sdhci.h
mmc: sdhci: Use work structs instead of tasklets
[karo-tx-linux.git] / include / linux / mmc / sdhci.h
index e3c6a74d980adc43312c35184f1b581261177ed4..05cd76c9a9aacec36a049eb560e5eb82b240788c 100644 (file)
@@ -12,6 +12,7 @@
 #define LINUX_MMC_SDHCI_H
 
 #include <linux/scatterlist.h>
+#include <linux/workqueue.h>
 #include <linux/compiler.h>
 #include <linux/types.h>
 #include <linux/io.h>
@@ -160,10 +161,10 @@ struct sdhci_host {
        dma_addr_t adma_addr;   /* Mapped ADMA descr. table */
        dma_addr_t align_addr;  /* Mapped bounce buffer */
 
-       struct tasklet_struct card_tasklet;     /* Tasklet structures */
-       struct tasklet_struct finish_tasklet;
+       struct work_struct      card_detect_work;
+       struct work_struct      finish_work;
 
-       struct timer_list timer;        /* Timer for timeouts */
+       struct delayed_work     timeout_work;   /* Work for timeouts */
 
        u32 caps;               /* Alternative CAPABILITY_0 */
        u32 caps1;              /* Alternative CAPABILITY_1 */
@@ -171,6 +172,7 @@ struct sdhci_host {
        unsigned int            ocr_avail_sdio; /* OCR bit masks */
        unsigned int            ocr_avail_sd;
        unsigned int            ocr_avail_mmc;
+       u32 ocr_mask;           /* available voltages */
 
        wait_queue_head_t       buf_ready_int;  /* Waitqueue for Buffer Read Ready interrupt */
        unsigned int            tuning_done;    /* Condition flag set when CMD19 succeeds */
@@ -178,7 +180,7 @@ struct sdhci_host {
        unsigned int            tuning_count;   /* Timer count for re-tuning */
        unsigned int            tuning_mode;    /* Re-tuning mode supported by host */
 #define SDHCI_TUNING_MODE_1    0
-       struct timer_list       tuning_timer;   /* Timer for tuning */
+       struct delayed_work     tuning_timeout_work;    /* Work for tuning timeouts */
 
        unsigned long private[0] ____cacheline_aligned;
 };