Lines Matching refs:func

39 	struct sdio_func *func;  in process_sdio_pending_irqs()  local
46 func = card->sdio_single_irq; in process_sdio_pending_irqs()
47 if (func && host->sdio_irq_pending) { in process_sdio_pending_irqs()
48 func->irq_handler(func); in process_sdio_pending_irqs()
73 func = card->sdio_func[i - 1]; in process_sdio_pending_irqs()
74 if (!func) { in process_sdio_pending_irqs()
78 } else if (func->irq_handler) { in process_sdio_pending_irqs()
79 func->irq_handler(func); in process_sdio_pending_irqs()
83 sdio_func_id(func)); in process_sdio_pending_irqs()
258 struct sdio_func *func; in sdio_single_irq_set() local
265 func = card->sdio_func[i]; in sdio_single_irq_set()
266 if (func && func->irq_handler) { in sdio_single_irq_set()
267 card->sdio_single_irq = func; in sdio_single_irq_set()
283 int sdio_claim_irq(struct sdio_func *func, sdio_irq_handler_t *handler) in sdio_claim_irq() argument
288 if (!func) in sdio_claim_irq()
291 pr_debug("SDIO: Enabling IRQ for %s...\n", sdio_func_id(func)); in sdio_claim_irq()
293 if (func->irq_handler) { in sdio_claim_irq()
294 pr_debug("SDIO: IRQ for %s already in use.\n", sdio_func_id(func)); in sdio_claim_irq()
298 ret = mmc_io_rw_direct(func->card, 0, 0, SDIO_CCCR_IENx, 0, &reg); in sdio_claim_irq()
302 reg |= 1 << func->num; in sdio_claim_irq()
306 ret = mmc_io_rw_direct(func->card, 1, 0, SDIO_CCCR_IENx, reg, NULL); in sdio_claim_irq()
310 func->irq_handler = handler; in sdio_claim_irq()
311 ret = sdio_card_irq_get(func->card); in sdio_claim_irq()
313 func->irq_handler = NULL; in sdio_claim_irq()
314 sdio_single_irq_set(func->card); in sdio_claim_irq()
326 int sdio_release_irq(struct sdio_func *func) in sdio_release_irq() argument
331 if (!func) in sdio_release_irq()
334 pr_debug("SDIO: Disabling IRQ for %s...\n", sdio_func_id(func)); in sdio_release_irq()
336 if (func->irq_handler) { in sdio_release_irq()
337 func->irq_handler = NULL; in sdio_release_irq()
338 sdio_card_irq_put(func->card); in sdio_release_irq()
339 sdio_single_irq_set(func->card); in sdio_release_irq()
342 ret = mmc_io_rw_direct(func->card, 0, 0, SDIO_CCCR_IENx, 0, &reg); in sdio_release_irq()
346 reg &= ~(1 << func->num); in sdio_release_irq()
352 ret = mmc_io_rw_direct(func->card, 1, 0, SDIO_CCCR_IENx, reg, NULL); in sdio_release_irq()