Lines Matching refs:func

36 	struct sdio_func *func;  in process_sdio_pending_irqs()  local
43 func = card->sdio_single_irq; in process_sdio_pending_irqs()
44 if (func && host->sdio_irq_pending) { in process_sdio_pending_irqs()
45 func->irq_handler(func); in process_sdio_pending_irqs()
70 func = card->sdio_func[i - 1]; in process_sdio_pending_irqs()
71 if (!func) { in process_sdio_pending_irqs()
75 } else if (func->irq_handler) { in process_sdio_pending_irqs()
76 func->irq_handler(func); in process_sdio_pending_irqs()
80 sdio_func_id(func)); in process_sdio_pending_irqs()
244 struct sdio_func *func; in sdio_single_irq_set() local
251 func = card->sdio_func[i]; in sdio_single_irq_set()
252 if (func && func->irq_handler) { in sdio_single_irq_set()
253 card->sdio_single_irq = func; in sdio_single_irq_set()
269 int sdio_claim_irq(struct sdio_func *func, sdio_irq_handler_t *handler) in sdio_claim_irq() argument
274 BUG_ON(!func); in sdio_claim_irq()
275 BUG_ON(!func->card); in sdio_claim_irq()
277 pr_debug("SDIO: Enabling IRQ for %s...\n", sdio_func_id(func)); in sdio_claim_irq()
279 if (func->irq_handler) { in sdio_claim_irq()
280 pr_debug("SDIO: IRQ for %s already in use.\n", sdio_func_id(func)); in sdio_claim_irq()
284 ret = mmc_io_rw_direct(func->card, 0, 0, SDIO_CCCR_IENx, 0, &reg); in sdio_claim_irq()
288 reg |= 1 << func->num; in sdio_claim_irq()
292 ret = mmc_io_rw_direct(func->card, 1, 0, SDIO_CCCR_IENx, reg, NULL); in sdio_claim_irq()
296 func->irq_handler = handler; in sdio_claim_irq()
297 ret = sdio_card_irq_get(func->card); in sdio_claim_irq()
299 func->irq_handler = NULL; in sdio_claim_irq()
300 sdio_single_irq_set(func->card); in sdio_claim_irq()
312 int sdio_release_irq(struct sdio_func *func) in sdio_release_irq() argument
317 BUG_ON(!func); in sdio_release_irq()
318 BUG_ON(!func->card); in sdio_release_irq()
320 pr_debug("SDIO: Disabling IRQ for %s...\n", sdio_func_id(func)); in sdio_release_irq()
322 if (func->irq_handler) { in sdio_release_irq()
323 func->irq_handler = NULL; in sdio_release_irq()
324 sdio_card_irq_put(func->card); in sdio_release_irq()
325 sdio_single_irq_set(func->card); in sdio_release_irq()
328 ret = mmc_io_rw_direct(func->card, 0, 0, SDIO_CCCR_IENx, 0, &reg); in sdio_release_irq()
332 reg &= ~(1 << func->num); in sdio_release_irq()
338 ret = mmc_io_rw_direct(func->card, 1, 0, SDIO_CCCR_IENx, reg, NULL); in sdio_release_irq()