Lines Matching defs:func
45 struct sdio_func *func = card->sdio_func[i - 1];
46 if (!func) {
51 } else if (func->irq_handler) {
52 func->irq_handler(func);
56 sdio_func_id(func));
191 * @func: SDIO function
199 int sdio_claim_irq(struct sdio_func *func, sdio_irq_handler_t *handler)
204 BUG_ON(!func);
205 BUG_ON(!func->card);
207 pr_debug("SDIO: Enabling IRQ for %s...\n", sdio_func_id(func));
209 if (func->irq_handler) {
210 pr_debug("SDIO: IRQ for %s already in use.\n", sdio_func_id(func));
214 ret = mmc_io_rw_direct(func->card, 0, 0, SDIO_CCCR_IENx, 0, ®);
218 reg |= 1 << func->num;
222 ret = mmc_io_rw_direct(func->card, 1, 0, SDIO_CCCR_IENx, reg, NULL);
226 func->irq_handler = handler;
227 ret = sdio_card_irq_get(func->card);
229 func->irq_handler = NULL;
237 * @func: SDIO function
241 int sdio_release_irq(struct sdio_func *func)
246 BUG_ON(!func);
247 BUG_ON(!func->card);
249 pr_debug("SDIO: Disabling IRQ for %s...\n", sdio_func_id(func));
251 if (func->irq_handler) {
252 func->irq_handler = NULL;
253 sdio_card_irq_put(func->card);
256 ret = mmc_io_rw_direct(func->card, 0, 0, SDIO_CCCR_IENx, 0, ®);
260 reg &= ~(1 << func->num);
266 ret = mmc_io_rw_direct(func->card, 1, 0, SDIO_CCCR_IENx, reg, NULL);