Lines Matching refs:func

64 	struct sdio_func *func;  in process_sdio_pending_irqs()  local
78 func = card->sdio_single_irq; in process_sdio_pending_irqs()
79 if (func && sdio_irq_pending) { in process_sdio_pending_irqs()
80 func->irq_handler(func); in process_sdio_pending_irqs()
91 func = card->sdio_func[i - 1]; in process_sdio_pending_irqs()
92 if (!func) { in process_sdio_pending_irqs()
96 } else if (func->irq_handler) { in process_sdio_pending_irqs()
97 func->irq_handler(func); in process_sdio_pending_irqs()
101 sdio_func_id(func)); in process_sdio_pending_irqs()
273 struct sdio_func *func; in sdio_single_irq_set() local
280 func = card->sdio_func[i]; in sdio_single_irq_set()
281 if (func && func->irq_handler) { in sdio_single_irq_set()
282 card->sdio_single_irq = func; in sdio_single_irq_set()
299 int sdio_claim_irq(struct sdio_func *func, sdio_irq_handler_t *handler) in sdio_claim_irq() argument
304 if (!func) in sdio_claim_irq()
307 pr_debug("SDIO: Enabling IRQ for %s...\n", sdio_func_id(func)); in sdio_claim_irq()
309 if (func->irq_handler) { in sdio_claim_irq()
310 pr_debug("SDIO: IRQ for %s already in use.\n", sdio_func_id(func)); in sdio_claim_irq()
314 ret = mmc_io_rw_direct(func->card, 0, 0, SDIO_CCCR_IENx, 0, &reg); in sdio_claim_irq()
318 reg |= 1 << func->num; in sdio_claim_irq()
322 ret = mmc_io_rw_direct(func->card, 1, 0, SDIO_CCCR_IENx, reg, NULL); in sdio_claim_irq()
326 func->irq_handler = handler; in sdio_claim_irq()
327 ret = sdio_card_irq_get(func->card); in sdio_claim_irq()
329 func->irq_handler = NULL; in sdio_claim_irq()
330 sdio_single_irq_set(func->card); in sdio_claim_irq()
342 int sdio_release_irq(struct sdio_func *func) in sdio_release_irq() argument
347 if (!func) in sdio_release_irq()
350 pr_debug("SDIO: Disabling IRQ for %s...\n", sdio_func_id(func)); in sdio_release_irq()
352 if (func->irq_handler) { in sdio_release_irq()
353 func->irq_handler = NULL; in sdio_release_irq()
354 sdio_card_irq_put(func->card); in sdio_release_irq()
355 sdio_single_irq_set(func->card); in sdio_release_irq()
358 ret = mmc_io_rw_direct(func->card, 0, 0, SDIO_CCCR_IENx, 0, &reg); in sdio_release_irq()
362 reg &= ~(1 << func->num); in sdio_release_irq()
368 ret = mmc_io_rw_direct(func->card, 1, 0, SDIO_CCCR_IENx, reg, NULL); in sdio_release_irq()