Lines Matching refs:func

82 	struct sdio_func *func;  member
100 sdio_claim_host(smsdev->func); in smssdio_sendrequest()
103 while (size >= smsdev->func->cur_blksize) { in smssdio_sendrequest()
104 ret = sdio_memcpy_toio(smsdev->func, SMSSDIO_DATA, in smssdio_sendrequest()
105 buffer, smsdev->func->cur_blksize); in smssdio_sendrequest()
109 buffer += smsdev->func->cur_blksize; in smssdio_sendrequest()
110 size -= smsdev->func->cur_blksize; in smssdio_sendrequest()
114 ret = sdio_memcpy_toio(smsdev->func, SMSSDIO_DATA, in smssdio_sendrequest()
119 sdio_release_host(smsdev->func); in smssdio_sendrequest()
128 static void smssdio_interrupt(struct sdio_func *func) in smssdio_interrupt() argument
137 smsdev = sdio_get_drvdata(func); in smssdio_interrupt()
143 (void)sdio_readb(func, SMSSDIO_INT, &ret); in smssdio_interrupt()
156 ret = sdio_memcpy_fromio(smsdev->func, in smssdio_interrupt()
172 if (hdr->msg_length > smsdev->func->cur_blksize) in smssdio_interrupt()
173 size = hdr->msg_length - smsdev->func->cur_blksize; in smssdio_interrupt()
191 BUG_ON(smsdev->func->cur_blksize != SMSSDIO_BLOCK_SIZE); in smssdio_interrupt()
196 ret = sdio_memcpy_fromio(smsdev->func, in smssdio_interrupt()
215 ret = sdio_memcpy_fromio(smsdev->func, in smssdio_interrupt()
217 smsdev->func->cur_blksize); in smssdio_interrupt()
225 buffer += smsdev->func->cur_blksize; in smssdio_interrupt()
226 if (size > smsdev->func->cur_blksize) in smssdio_interrupt()
227 size -= smsdev->func->cur_blksize; in smssdio_interrupt()
241 static int smssdio_probe(struct sdio_func *func, in smssdio_probe() argument
256 smsdev->func = func; in smssdio_probe()
260 params.device = &func->dev; in smssdio_probe()
266 "sdio\\%s", sdio_func_id(func)); in smssdio_probe()
288 sdio_claim_host(func); in smssdio_probe()
290 ret = sdio_enable_func(func); in smssdio_probe()
294 ret = sdio_set_block_size(func, SMSSDIO_BLOCK_SIZE); in smssdio_probe()
298 ret = sdio_claim_irq(func, smssdio_interrupt); in smssdio_probe()
302 sdio_set_drvdata(func, smsdev); in smssdio_probe()
304 sdio_release_host(func); in smssdio_probe()
313 sdio_claim_host(func); in smssdio_probe()
314 sdio_release_irq(func); in smssdio_probe()
316 sdio_disable_func(func); in smssdio_probe()
318 sdio_release_host(func); in smssdio_probe()
326 static void smssdio_remove(struct sdio_func *func) in smssdio_remove() argument
330 smsdev = sdio_get_drvdata(func); in smssdio_remove()
338 sdio_claim_host(func); in smssdio_remove()
339 sdio_release_irq(func); in smssdio_remove()
340 sdio_disable_func(func); in smssdio_remove()
341 sdio_release_host(func); in smssdio_remove()