Lines Matching refs:func

77 	struct sdio_func *func;  member
95 sdio_claim_host(smsdev->func); in smssdio_sendrequest()
98 while (size >= smsdev->func->cur_blksize) { in smssdio_sendrequest()
99 ret = sdio_memcpy_toio(smsdev->func, SMSSDIO_DATA, in smssdio_sendrequest()
100 buffer, smsdev->func->cur_blksize); in smssdio_sendrequest()
104 buffer += smsdev->func->cur_blksize; in smssdio_sendrequest()
105 size -= smsdev->func->cur_blksize; in smssdio_sendrequest()
109 ret = sdio_memcpy_toio(smsdev->func, SMSSDIO_DATA, in smssdio_sendrequest()
114 sdio_release_host(smsdev->func); in smssdio_sendrequest()
123 static void smssdio_interrupt(struct sdio_func *func) in smssdio_interrupt() argument
132 smsdev = sdio_get_drvdata(func); in smssdio_interrupt()
138 (void)sdio_readb(func, SMSSDIO_INT, &ret); in smssdio_interrupt()
151 ret = sdio_memcpy_fromio(smsdev->func, in smssdio_interrupt()
167 if (hdr->msg_length > smsdev->func->cur_blksize) in smssdio_interrupt()
168 size = hdr->msg_length - smsdev->func->cur_blksize; in smssdio_interrupt()
186 BUG_ON(smsdev->func->cur_blksize != SMSSDIO_BLOCK_SIZE); in smssdio_interrupt()
191 ret = sdio_memcpy_fromio(smsdev->func, in smssdio_interrupt()
210 ret = sdio_memcpy_fromio(smsdev->func, in smssdio_interrupt()
212 smsdev->func->cur_blksize); in smssdio_interrupt()
220 buffer += smsdev->func->cur_blksize; in smssdio_interrupt()
221 if (size > smsdev->func->cur_blksize) in smssdio_interrupt()
222 size -= smsdev->func->cur_blksize; in smssdio_interrupt()
236 static int smssdio_probe(struct sdio_func *func, in smssdio_probe() argument
251 smsdev->func = func; in smssdio_probe()
255 params.device = &func->dev; in smssdio_probe()
261 "sdio\\%s", sdio_func_id(func)); in smssdio_probe()
283 sdio_claim_host(func); in smssdio_probe()
285 ret = sdio_enable_func(func); in smssdio_probe()
289 ret = sdio_set_block_size(func, SMSSDIO_BLOCK_SIZE); in smssdio_probe()
293 ret = sdio_claim_irq(func, smssdio_interrupt); in smssdio_probe()
297 sdio_set_drvdata(func, smsdev); in smssdio_probe()
299 sdio_release_host(func); in smssdio_probe()
308 sdio_claim_host(func); in smssdio_probe()
309 sdio_release_irq(func); in smssdio_probe()
311 sdio_disable_func(func); in smssdio_probe()
313 sdio_release_host(func); in smssdio_probe()
321 static void smssdio_remove(struct sdio_func *func) in smssdio_remove() argument
325 smsdev = sdio_get_drvdata(func); in smssdio_remove()
333 sdio_claim_host(func); in smssdio_remove()
334 sdio_release_irq(func); in smssdio_remove()
335 sdio_disable_func(func); in smssdio_remove()
336 sdio_release_host(func); in smssdio_remove()