Lines Matching refs:intmask

383 static void alcor_err_irq(struct alcor_sdmmc_host *host, u32 intmask)  in alcor_err_irq()  argument
385 dev_dbg(host->dev, "ERR IRQ %x\n", intmask); in alcor_err_irq()
388 if (intmask & AU6601_INT_CMD_TIMEOUT_ERR) in alcor_err_irq()
395 if (intmask & AU6601_INT_DATA_TIMEOUT_ERR) in alcor_err_irq()
407 static int alcor_cmd_irq_done(struct alcor_sdmmc_host *host, u32 intmask) in alcor_cmd_irq_done() argument
411 intmask &= AU6601_INT_CMD_END; in alcor_cmd_irq_done()
413 if (!intmask) in alcor_cmd_irq_done()
451 static void alcor_cmd_irq_thread(struct alcor_sdmmc_host *host, u32 intmask) in alcor_cmd_irq_thread() argument
453 intmask &= AU6601_INT_CMD_END; in alcor_cmd_irq_thread()
455 if (!intmask) in alcor_cmd_irq_thread()
458 if (!host->cmd && intmask & AU6601_INT_CMD_END) { in alcor_cmd_irq_thread()
460 intmask); in alcor_cmd_irq_thread()
471 static int alcor_data_irq_done(struct alcor_sdmmc_host *host, u32 intmask) in alcor_data_irq_done() argument
475 intmask &= AU6601_INT_DATA_MASK; in alcor_data_irq_done()
478 if (!intmask) in alcor_data_irq_done()
484 if (!host->data && intmask == AU6601_INT_DATA_END) in alcor_data_irq_done()
491 tmp = intmask & (AU6601_INT_READ_BUF_RDY | AU6601_INT_WRITE_BUF_RDY in alcor_data_irq_done()
513 if (intmask & AU6601_INT_DATA_END) { in alcor_data_irq_done()
525 static void alcor_data_irq_thread(struct alcor_sdmmc_host *host, u32 intmask) in alcor_data_irq_thread() argument
527 intmask &= AU6601_INT_DATA_MASK; in alcor_data_irq_thread()
529 if (!intmask) in alcor_data_irq_thread()
534 intmask); in alcor_data_irq_thread()
539 if (alcor_data_irq_done(host, intmask)) in alcor_data_irq_thread()
542 if ((intmask & AU6601_INT_DATA_END) || !host->blocks || in alcor_data_irq_thread()
547 static void alcor_cd_irq(struct alcor_sdmmc_host *host, u32 intmask) in alcor_cd_irq() argument
550 intmask & AU6601_INT_CARD_REMOVE ? "removed" : "inserted"); in alcor_cd_irq()
573 u32 intmask, tmp; in alcor_irq_thread() local
577 intmask = host->irq_status_sd; in alcor_irq_thread()
580 if (unlikely(!intmask || AU6601_INT_ALL_MASK == intmask)) { in alcor_irq_thread()
581 dev_dbg(host->dev, "unexpected IRQ: 0x%04x\n", intmask); in alcor_irq_thread()
586 tmp = intmask & (AU6601_INT_CMD_MASK | AU6601_INT_DATA_MASK); in alcor_irq_thread()
594 intmask &= ~(AU6601_INT_CMD_MASK | AU6601_INT_DATA_MASK); in alcor_irq_thread()
597 if (intmask & (AU6601_INT_CARD_INSERT | AU6601_INT_CARD_REMOVE)) { in alcor_irq_thread()
598 alcor_cd_irq(host, intmask); in alcor_irq_thread()
599 intmask &= ~(AU6601_INT_CARD_INSERT | AU6601_INT_CARD_REMOVE); in alcor_irq_thread()
602 if (intmask & AU6601_INT_OVER_CURRENT_ERR) { in alcor_irq_thread()
605 intmask &= ~AU6601_INT_OVER_CURRENT_ERR; in alcor_irq_thread()
608 if (intmask) in alcor_irq_thread()
609 dev_dbg(host->dev, "got not handled IRQ: 0x%04x\n", intmask); in alcor_irq_thread()