Lines Matching refs:socket

61 static unsigned char indirect_read(struct pd6729_socket *socket,  in indirect_read()  argument
69 reg += socket->number * 0x40; in indirect_read()
70 port = socket->io_base; in indirect_read()
78 static unsigned short indirect_read16(struct pd6729_socket *socket, in indirect_read16() argument
86 reg = reg + socket->number * 0x40; in indirect_read16()
87 port = socket->io_base; in indirect_read16()
98 static void indirect_write(struct pd6729_socket *socket, unsigned short reg, in indirect_write() argument
105 reg = reg + socket->number * 0x40; in indirect_write()
106 port = socket->io_base; in indirect_write()
112 static void indirect_setbit(struct pd6729_socket *socket, unsigned short reg, in indirect_setbit() argument
120 reg = reg + socket->number * 0x40; in indirect_setbit()
121 port = socket->io_base; in indirect_setbit()
130 static void indirect_resetbit(struct pd6729_socket *socket, unsigned short reg, in indirect_resetbit() argument
138 reg = reg + socket->number * 0x40; in indirect_resetbit()
139 port = socket->io_base; in indirect_resetbit()
148 static void indirect_write16(struct pd6729_socket *socket, unsigned short reg, in indirect_write16() argument
156 reg = reg + socket->number * 0x40; in indirect_write16()
157 port = socket->io_base; in indirect_write16()
175 struct pd6729_socket *socket = (struct pd6729_socket *)dev; in pd6729_interrupt() local
195 csc = indirect_read(&socket[i], I365_CSC); in pd6729_interrupt()
204 dev_vdbg(&socket[i].socket.dev, in pd6729_interrupt()
208 if (indirect_read(&socket[i], I365_INTCTL) in pd6729_interrupt()
224 pcmcia_parse_events(&socket[i].socket, events); in pd6729_interrupt()
239 struct pd6729_socket *socket = timer_container_of(socket, t, in pd6729_interrupt_wrapper() local
242 pd6729_interrupt(0, (void *)socket); in pd6729_interrupt_wrapper()
243 mod_timer(&socket->poll_timer, jiffies + HZ); in pd6729_interrupt_wrapper()
248 struct pd6729_socket *socket in pd6729_get_status() local
249 = container_of(sock, struct pd6729_socket, socket); in pd6729_get_status()
255 status = indirect_read(socket, I365_STATUS); in pd6729_get_status()
265 if (indirect_read(socket, I365_INTCTL) & I365_PC_IOCARD) { in pd6729_get_status()
286 t = (socket->number) ? socket : socket + 1; in pd6729_get_status()
289 *value |= (data & PD67_EXD_VS1(socket->number)) ? 0 : SS_3VCARD; in pd6729_get_status()
297 struct pd6729_socket *socket in pd6729_set_socket() local
298 = container_of(sock, struct pd6729_socket, socket); in pd6729_set_socket()
302 indirect_write(socket, I365_GBLCTL, 0x00); in pd6729_set_socket()
303 indirect_write(socket, I365_GENCTL, 0x00); in pd6729_set_socket()
306 socket->card_irq = state->io_irq; in pd6729_set_socket()
316 indirect_write(socket, I365_INTCTL, reg); in pd6729_set_socket()
337 socket->number); in pd6729_set_socket()
339 indirect_setbit(socket, PD67_MISC_CTL_1, PD67_MC1_VCC_3V); in pd6729_set_socket()
344 socket->number); in pd6729_set_socket()
346 indirect_resetbit(socket, PD67_MISC_CTL_1, PD67_MC1_VCC_3V); in pd6729_set_socket()
358 socket->number); in pd6729_set_socket()
363 socket->number); in pd6729_set_socket()
377 if (reg != indirect_read(socket, I365_POWER)) in pd6729_set_socket()
378 indirect_write(socket, I365_POWER, reg); in pd6729_set_socket()
386 indirect_write(socket, PD67_EXT_INDEX, PD67_EXT_CTL_1); in pd6729_set_socket()
387 indirect_write(socket, PD67_EXT_DATA, data); in pd6729_set_socket()
408 indirect_write(socket, I365_CSCINT, reg); in pd6729_set_socket()
410 reg = indirect_read(socket, I365_INTCTL); in pd6729_set_socket()
414 reg |= socket->card_irq; in pd6729_set_socket()
415 indirect_write(socket, I365_INTCTL, reg); in pd6729_set_socket()
418 (void)indirect_read(socket, I365_CSC); in pd6729_set_socket()
426 struct pd6729_socket *socket in pd6729_set_io_map() local
427 = container_of(sock, struct pd6729_socket, socket); in pd6729_set_io_map()
439 if (indirect_read(socket, I365_ADDRWIN) & I365_ENA_IO(map)) in pd6729_set_io_map()
440 indirect_resetbit(socket, I365_ADDRWIN, I365_ENA_IO(map)); in pd6729_set_io_map()
446 indirect_write16(socket, I365_IO(map)+I365_W_START, io->start); in pd6729_set_io_map()
447 indirect_write16(socket, I365_IO(map)+I365_W_STOP, io->stop); in pd6729_set_io_map()
449 ioctl = indirect_read(socket, I365_IOCTL) & ~I365_IOCTL_MASK(map); in pd6729_set_io_map()
458 indirect_write(socket, I365_IOCTL, ioctl); in pd6729_set_io_map()
462 indirect_setbit(socket, I365_ADDRWIN, I365_ENA_IO(map)); in pd6729_set_io_map()
470 struct pd6729_socket *socket in pd6729_set_mem_map() local
471 = container_of(sock, struct pd6729_socket, socket); in pd6729_set_mem_map()
487 if (indirect_read(socket, I365_ADDRWIN) & I365_ENA_MEM(map)) in pd6729_set_mem_map()
488 indirect_resetbit(socket, I365_ADDRWIN, I365_ENA_MEM(map)); in pd6729_set_mem_map()
497 indirect_write16(socket, base + I365_W_START, i); in pd6729_set_mem_map()
516 indirect_write16(socket, base + I365_W_STOP, i); in pd6729_set_mem_map()
519 indirect_write(socket, PD67_EXT_INDEX, PD67_MEM_PAGE(map)); in pd6729_set_mem_map()
520 indirect_write(socket, PD67_EXT_DATA, mem->res->start >> 24); in pd6729_set_mem_map()
535 indirect_write16(socket, base + I365_W_OFF, i); in pd6729_set_mem_map()
539 indirect_setbit(socket, I365_ADDRWIN, I365_ENA_MEM(map)); in pd6729_set_mem_map()
630 struct pd6729_socket *socket; in pd6729_pci_probe() local
632 socket = kcalloc(MAX_SOCKETS, sizeof(struct pd6729_socket), in pd6729_pci_probe()
634 if (!socket) { in pd6729_pci_probe()
683 socket[i].io_base = pci_resource_start(dev, 0); in pd6729_pci_probe()
684 socket[i].socket.features |= SS_CAP_PAGE_REGS | SS_CAP_PCCARD; in pd6729_pci_probe()
685 socket[i].socket.map_size = 0x1000; in pd6729_pci_probe()
686 socket[i].socket.irq_mask = mask; in pd6729_pci_probe()
687 socket[i].socket.pci_irq = dev->irq; in pd6729_pci_probe()
688 socket[i].socket.cb_dev = dev; in pd6729_pci_probe()
689 socket[i].socket.owner = THIS_MODULE; in pd6729_pci_probe()
691 socket[i].number = i; in pd6729_pci_probe()
693 socket[i].socket.ops = &pd6729_operations; in pd6729_pci_probe()
694 socket[i].socket.resource_ops = &pccard_nonstatic_ops; in pd6729_pci_probe()
695 socket[i].socket.dev.parent = &dev->dev; in pd6729_pci_probe()
696 socket[i].socket.driver_data = &socket[i]; in pd6729_pci_probe()
699 pci_set_drvdata(dev, socket); in pd6729_pci_probe()
703 "pd6729", socket); in pd6729_pci_probe()
711 timer_setup(&socket->poll_timer, pd6729_interrupt_wrapper, 0); in pd6729_pci_probe()
712 mod_timer(&socket->poll_timer, jiffies + HZ); in pd6729_pci_probe()
716 ret = pcmcia_register_socket(&socket[i].socket); in pd6729_pci_probe()
720 pcmcia_unregister_socket(&socket[j].socket); in pd6729_pci_probe()
729 free_irq(dev->irq, socket); in pd6729_pci_probe()
731 timer_shutdown_sync(&socket->poll_timer); in pd6729_pci_probe()
738 kfree(socket); in pd6729_pci_probe()
745 struct pd6729_socket *socket = pci_get_drvdata(dev); in pd6729_pci_remove() local
749 indirect_write(&socket[i], I365_CSCINT, 0); in pd6729_pci_remove()
750 indirect_write(&socket[i], I365_INTCTL, 0); in pd6729_pci_remove()
752 pcmcia_unregister_socket(&socket[i].socket); in pd6729_pci_remove()
756 free_irq(dev->irq, socket); in pd6729_pci_remove()
758 timer_shutdown_sync(&socket->poll_timer); in pd6729_pci_remove()
762 kfree(socket); in pd6729_pci_remove()