Lines Matching refs:intmask
3241 static void sdhci_cmd_irq(struct sdhci_host *host, u32 intmask, u32 *intmask_p) in sdhci_cmd_irq() argument
3244 if (intmask & SDHCI_INT_AUTO_CMD_ERR && host->data_cmd) { in sdhci_cmd_irq()
3267 mmc_hostname(host->mmc), (unsigned)intmask); in sdhci_cmd_irq()
3272 if (intmask & (SDHCI_INT_TIMEOUT | SDHCI_INT_CRC | in sdhci_cmd_irq()
3274 if (intmask & SDHCI_INT_TIMEOUT) in sdhci_cmd_irq()
3281 (intmask & (SDHCI_INT_CRC | SDHCI_INT_TIMEOUT)) == in sdhci_cmd_irq()
3293 if (intmask & SDHCI_INT_AUTO_CMD_ERR) { in sdhci_cmd_irq()
3307 if (intmask & SDHCI_INT_RESPONSE) in sdhci_cmd_irq()
3343 static void sdhci_data_irq(struct sdhci_host *host, u32 intmask) in sdhci_data_irq() argument
3348 if (intmask & SDHCI_INT_DATA_AVAIL) { in sdhci_data_irq()
3367 if (intmask & SDHCI_INT_DATA_TIMEOUT) { in sdhci_data_irq()
3373 if (intmask & SDHCI_INT_DATA_END) { in sdhci_data_irq()
3397 mmc_hostname(host->mmc), (unsigned)intmask); in sdhci_data_irq()
3403 if (intmask & SDHCI_INT_DATA_TIMEOUT) in sdhci_data_irq()
3405 else if (intmask & SDHCI_INT_DATA_END_BIT) in sdhci_data_irq()
3407 else if ((intmask & SDHCI_INT_DATA_CRC) && in sdhci_data_irq()
3411 else if (intmask & SDHCI_INT_ADMA_ERROR) { in sdhci_data_irq()
3413 intmask); in sdhci_data_irq()
3417 host->ops->adma_workaround(host, intmask); in sdhci_data_irq()
3423 if (intmask & (SDHCI_INT_DATA_AVAIL | SDHCI_INT_SPACE_AVAIL)) in sdhci_data_irq()
3435 if (intmask & SDHCI_INT_DMA_END) { in sdhci_data_irq()
3452 if (intmask & SDHCI_INT_DATA_END) { in sdhci_data_irq()
3482 u32 intmask, mask, unexpected = 0; in sdhci_irq() local
3493 intmask = sdhci_readl(host, SDHCI_INT_STATUS); in sdhci_irq()
3494 if (!intmask || intmask == 0xffffffff) { in sdhci_irq()
3500 DBG("IRQ status 0x%08x\n", intmask); in sdhci_irq()
3503 intmask = host->ops->irq(host, intmask); in sdhci_irq()
3504 if (!intmask) in sdhci_irq()
3509 mask = intmask & (SDHCI_INT_CMD_MASK | SDHCI_INT_DATA_MASK | in sdhci_irq()
3513 if (intmask & (SDHCI_INT_CARD_INSERT | SDHCI_INT_CARD_REMOVE)) { in sdhci_irq()
3535 sdhci_writel(host, intmask & (SDHCI_INT_CARD_INSERT | in sdhci_irq()
3538 host->thread_isr |= intmask & (SDHCI_INT_CARD_INSERT | in sdhci_irq()
3543 if (intmask & SDHCI_INT_CMD_MASK) in sdhci_irq()
3544 sdhci_cmd_irq(host, intmask & SDHCI_INT_CMD_MASK, &intmask); in sdhci_irq()
3546 if (intmask & SDHCI_INT_DATA_MASK) in sdhci_irq()
3547 sdhci_data_irq(host, intmask & SDHCI_INT_DATA_MASK); in sdhci_irq()
3549 if (intmask & SDHCI_INT_BUS_POWER) in sdhci_irq()
3553 if (intmask & SDHCI_INT_RETUNE) in sdhci_irq()
3556 if ((intmask & SDHCI_INT_CARD_INT) && in sdhci_irq()
3562 intmask &= ~(SDHCI_INT_CARD_INSERT | SDHCI_INT_CARD_REMOVE | in sdhci_irq()
3567 if (intmask) { in sdhci_irq()
3568 unexpected |= intmask; in sdhci_irq()
3569 sdhci_writel(host, intmask, SDHCI_INT_STATUS); in sdhci_irq()
3575 intmask = sdhci_readl(host, SDHCI_INT_STATUS); in sdhci_irq()
3576 } while (intmask && --max_loops); in sdhci_irq()
3927 bool sdhci_cqe_irq(struct sdhci_host *host, u32 intmask, int *cmd_error, in sdhci_cqe_irq() argument
3935 if (intmask & (SDHCI_INT_INDEX | SDHCI_INT_END_BIT | SDHCI_INT_CRC)) in sdhci_cqe_irq()
3937 else if (intmask & SDHCI_INT_TIMEOUT) in sdhci_cqe_irq()
3942 if (intmask & (SDHCI_INT_DATA_END_BIT | SDHCI_INT_DATA_CRC)) in sdhci_cqe_irq()
3944 else if (intmask & SDHCI_INT_DATA_TIMEOUT) in sdhci_cqe_irq()
3946 else if (intmask & SDHCI_INT_ADMA_ERROR) in sdhci_cqe_irq()
3952 mask = intmask & host->cqe_ier; in sdhci_cqe_irq()
3955 if (intmask & SDHCI_INT_BUS_POWER) in sdhci_cqe_irq()
3959 intmask &= ~(host->cqe_ier | SDHCI_INT_ERROR); in sdhci_cqe_irq()
3960 if (intmask) { in sdhci_cqe_irq()
3961 sdhci_writel(host, intmask, SDHCI_INT_STATUS); in sdhci_cqe_irq()
3963 mmc_hostname(host->mmc), intmask); in sdhci_cqe_irq()