|
@@ -130,6 +130,7 @@ struct mmc_host_ops {
|
|
int (*get_cd)(struct mmc_host *host);
|
|
int (*get_cd)(struct mmc_host *host);
|
|
|
|
|
|
void (*enable_sdio_irq)(struct mmc_host *host, int enable);
|
|
void (*enable_sdio_irq)(struct mmc_host *host, int enable);
|
|
|
|
+ void (*ack_sdio_irq)(struct mmc_host *host);
|
|
|
|
|
|
/* optional callback for HC quirks */
|
|
/* optional callback for HC quirks */
|
|
void (*init_card)(struct mmc_host *host, struct mmc_card *card);
|
|
void (*init_card)(struct mmc_host *host, struct mmc_card *card);
|
|
@@ -358,6 +359,7 @@ struct mmc_host {
|
|
|
|
|
|
unsigned int sdio_irqs;
|
|
unsigned int sdio_irqs;
|
|
struct task_struct *sdio_irq_thread;
|
|
struct task_struct *sdio_irq_thread;
|
|
|
|
+ struct delayed_work sdio_irq_work;
|
|
bool sdio_irq_pending;
|
|
bool sdio_irq_pending;
|
|
atomic_t sdio_irq_thread_abort;
|
|
atomic_t sdio_irq_thread_abort;
|
|
|
|
|
|
@@ -428,6 +430,7 @@ static inline void mmc_signal_sdio_irq(struct mmc_host *host)
|
|
}
|
|
}
|
|
|
|
|
|
void sdio_run_irqs(struct mmc_host *host);
|
|
void sdio_run_irqs(struct mmc_host *host);
|
|
|
|
+void sdio_signal_irq(struct mmc_host *host);
|
|
|
|
|
|
#ifdef CONFIG_REGULATOR
|
|
#ifdef CONFIG_REGULATOR
|
|
int mmc_regulator_get_ocrmask(struct regulator *supply);
|
|
int mmc_regulator_get_ocrmask(struct regulator *supply);
|