Lines Matching refs:io
60 struct wil_memio io; in wil_ioc_memio_dword() local
64 if (copy_from_user(&io, data, sizeof(io))) in wil_ioc_memio_dword()
68 io.addr, io.val, io.op); in wil_ioc_memio_dword()
70 a = wil_ioc_addr(wil, io.addr, sizeof(u32), io.op); in wil_ioc_memio_dword()
72 wil_err(wil, "invalid address 0x%08x, op = 0x%08x\n", io.addr, in wil_ioc_memio_dword()
73 io.op); in wil_ioc_memio_dword()
77 switch (io.op & wil_mmio_op_mask) { in wil_ioc_memio_dword()
79 io.val = ioread32(a); in wil_ioc_memio_dword()
83 iowrite32(io.val, a); in wil_ioc_memio_dword()
87 wil_err(wil, "Unsupported operation, op = 0x%08x\n", io.op); in wil_ioc_memio_dword()
94 io.addr, io.val, io.op); in wil_ioc_memio_dword()
95 if (copy_to_user(data, &io, sizeof(io))) in wil_ioc_memio_dword()
104 struct wil_memio_block io; in wil_ioc_memio_block() local
109 if (copy_from_user(&io, data, sizeof(io))) in wil_ioc_memio_block()
113 io.addr, io.size, io.op); in wil_ioc_memio_block()
116 if (io.size % 4) { in wil_ioc_memio_block()
117 wil_err(wil, "size is not multiple of 4: 0x%08x\n", io.size); in wil_ioc_memio_block()
121 a = wil_ioc_addr(wil, io.addr, io.size, io.op); in wil_ioc_memio_block()
123 wil_err(wil, "invalid address 0x%08x, op = 0x%08x\n", io.addr, in wil_ioc_memio_block()
124 io.op); in wil_ioc_memio_block()
128 block = kmalloc(io.size, GFP_USER); in wil_ioc_memio_block()
133 switch (io.op & wil_mmio_op_mask) { in wil_ioc_memio_block()
135 wil_memcpy_fromio_32(block, a, io.size); in wil_ioc_memio_block()
136 wil_hex_dump_ioctl("Read ", block, io.size); in wil_ioc_memio_block()
137 if (copy_to_user(io.block, block, io.size)) { in wil_ioc_memio_block()
143 if (copy_from_user(block, io.block, io.size)) { in wil_ioc_memio_block()
147 wil_memcpy_toio_32(a, block, io.size); in wil_ioc_memio_block()
149 wil_hex_dump_ioctl("Write ", block, io.size); in wil_ioc_memio_block()
152 wil_err(wil, "Unsupported operation, op = 0x%08x\n", io.op); in wil_ioc_memio_block()