Lines Matching refs:intmask
3191 static void sdhci_cmd_irq(struct sdhci_host *host, u32 intmask, u32 *intmask_p) in sdhci_cmd_irq() argument
3194 if (intmask & SDHCI_INT_AUTO_CMD_ERR && host->data_cmd) { in sdhci_cmd_irq()
3217 mmc_hostname(host->mmc), (unsigned)intmask); in sdhci_cmd_irq()
3222 if (intmask & (SDHCI_INT_TIMEOUT | SDHCI_INT_CRC | in sdhci_cmd_irq()
3224 if (intmask & SDHCI_INT_TIMEOUT) in sdhci_cmd_irq()
3231 (intmask & (SDHCI_INT_CRC | SDHCI_INT_TIMEOUT)) == in sdhci_cmd_irq()
3243 if (intmask & SDHCI_INT_AUTO_CMD_ERR) { in sdhci_cmd_irq()
3257 if (intmask & SDHCI_INT_RESPONSE) in sdhci_cmd_irq()
3293 static void sdhci_data_irq(struct sdhci_host *host, u32 intmask) in sdhci_data_irq() argument
3298 if (intmask & SDHCI_INT_DATA_AVAIL) { in sdhci_data_irq()
3317 if (intmask & SDHCI_INT_DATA_TIMEOUT) { in sdhci_data_irq()
3323 if (intmask & SDHCI_INT_DATA_END) { in sdhci_data_irq()
3347 mmc_hostname(host->mmc), (unsigned)intmask); in sdhci_data_irq()
3353 if (intmask & SDHCI_INT_DATA_TIMEOUT) in sdhci_data_irq()
3355 else if (intmask & SDHCI_INT_DATA_END_BIT) in sdhci_data_irq()
3357 else if ((intmask & SDHCI_INT_DATA_CRC) && in sdhci_data_irq()
3361 else if (intmask & SDHCI_INT_ADMA_ERROR) { in sdhci_data_irq()
3363 intmask); in sdhci_data_irq()
3367 host->ops->adma_workaround(host, intmask); in sdhci_data_irq()
3373 if (intmask & (SDHCI_INT_DATA_AVAIL | SDHCI_INT_SPACE_AVAIL)) in sdhci_data_irq()
3385 if (intmask & SDHCI_INT_DMA_END) { in sdhci_data_irq()
3402 if (intmask & SDHCI_INT_DATA_END) { in sdhci_data_irq()
3432 u32 intmask, mask, unexpected = 0; in sdhci_irq() local
3443 intmask = sdhci_readl(host, SDHCI_INT_STATUS); in sdhci_irq()
3444 if (!intmask || intmask == 0xffffffff) { in sdhci_irq()
3450 DBG("IRQ status 0x%08x\n", intmask); in sdhci_irq()
3453 intmask = host->ops->irq(host, intmask); in sdhci_irq()
3454 if (!intmask) in sdhci_irq()
3459 mask = intmask & (SDHCI_INT_CMD_MASK | SDHCI_INT_DATA_MASK | in sdhci_irq()
3463 if (intmask & (SDHCI_INT_CARD_INSERT | SDHCI_INT_CARD_REMOVE)) { in sdhci_irq()
3485 sdhci_writel(host, intmask & (SDHCI_INT_CARD_INSERT | in sdhci_irq()
3488 host->thread_isr |= intmask & (SDHCI_INT_CARD_INSERT | in sdhci_irq()
3493 if (intmask & SDHCI_INT_CMD_MASK) in sdhci_irq()
3494 sdhci_cmd_irq(host, intmask & SDHCI_INT_CMD_MASK, &intmask); in sdhci_irq()
3496 if (intmask & SDHCI_INT_DATA_MASK) in sdhci_irq()
3497 sdhci_data_irq(host, intmask & SDHCI_INT_DATA_MASK); in sdhci_irq()
3499 if (intmask & SDHCI_INT_BUS_POWER) in sdhci_irq()
3503 if (intmask & SDHCI_INT_RETUNE) in sdhci_irq()
3506 if ((intmask & SDHCI_INT_CARD_INT) && in sdhci_irq()
3512 intmask &= ~(SDHCI_INT_CARD_INSERT | SDHCI_INT_CARD_REMOVE | in sdhci_irq()
3517 if (intmask) { in sdhci_irq()
3518 unexpected |= intmask; in sdhci_irq()
3519 sdhci_writel(host, intmask, SDHCI_INT_STATUS); in sdhci_irq()
3525 intmask = sdhci_readl(host, SDHCI_INT_STATUS); in sdhci_irq()
3526 } while (intmask && --max_loops); in sdhci_irq()
3875 bool sdhci_cqe_irq(struct sdhci_host *host, u32 intmask, int *cmd_error, in sdhci_cqe_irq() argument
3883 if (intmask & (SDHCI_INT_INDEX | SDHCI_INT_END_BIT | SDHCI_INT_CRC)) in sdhci_cqe_irq()
3885 else if (intmask & SDHCI_INT_TIMEOUT) in sdhci_cqe_irq()
3890 if (intmask & (SDHCI_INT_DATA_END_BIT | SDHCI_INT_DATA_CRC)) in sdhci_cqe_irq()
3892 else if (intmask & SDHCI_INT_DATA_TIMEOUT) in sdhci_cqe_irq()
3894 else if (intmask & SDHCI_INT_ADMA_ERROR) in sdhci_cqe_irq()
3900 mask = intmask & host->cqe_ier; in sdhci_cqe_irq()
3903 if (intmask & SDHCI_INT_BUS_POWER) in sdhci_cqe_irq()
3907 intmask &= ~(host->cqe_ier | SDHCI_INT_ERROR); in sdhci_cqe_irq()
3908 if (intmask) { in sdhci_cqe_irq()
3909 sdhci_writel(host, intmask, SDHCI_INT_STATUS); in sdhci_cqe_irq()
3911 mmc_hostname(host->mmc), intmask); in sdhci_cqe_irq()