• Home
  • Raw
  • Download

Lines Matching refs:skt

62 void soc_pcmcia_debug(struct soc_pcmcia_socket *skt, const char *func,  in soc_pcmcia_debug()  argument
67 printk(KERN_DEBUG "skt%u: %s: ", skt->nr, func); in soc_pcmcia_debug()
93 void soc_common_pcmcia_get_timing(struct soc_pcmcia_socket *skt, struct soc_pcmcia_timing *timing) in soc_common_pcmcia_get_timing() argument
95 timing->io = calc_speed(skt->spd_io, MAX_IO_WIN, SOC_PCMCIA_IO_ACCESS); in soc_common_pcmcia_get_timing()
96 timing->mem = calc_speed(skt->spd_mem, MAX_WIN, SOC_PCMCIA_3V_MEM_ACCESS); in soc_common_pcmcia_get_timing()
97 timing->attr = calc_speed(skt->spd_attr, MAX_WIN, SOC_PCMCIA_3V_MEM_ACCESS); in soc_common_pcmcia_get_timing()
101 static unsigned int soc_common_pcmcia_skt_state(struct soc_pcmcia_socket *skt) in soc_common_pcmcia_skt_state() argument
108 skt->ops->socket_state(skt, &state); in soc_common_pcmcia_skt_state()
120 stat |= skt->cs_state.Vcc ? SS_POWERON : 0; in soc_common_pcmcia_skt_state()
122 if (skt->cs_state.flags & SS_IOCARD) in soc_common_pcmcia_skt_state()
140 soc_common_pcmcia_config_skt(struct soc_pcmcia_socket *skt, socket_state_t *state) in soc_common_pcmcia_config_skt() argument
144 ret = skt->ops->configure_socket(skt, state); in soc_common_pcmcia_config_skt()
150 if (skt->irq_state != 1 && state->io_irq) { in soc_common_pcmcia_config_skt()
151 skt->irq_state = 1; in soc_common_pcmcia_config_skt()
152 set_irq_type(skt->irq, IRQ_TYPE_EDGE_FALLING); in soc_common_pcmcia_config_skt()
153 } else if (skt->irq_state == 1 && state->io_irq == 0) { in soc_common_pcmcia_config_skt()
154 skt->irq_state = 0; in soc_common_pcmcia_config_skt()
155 set_irq_type(skt->irq, IRQ_TYPE_NONE); in soc_common_pcmcia_config_skt()
158 skt->cs_state = *state; in soc_common_pcmcia_config_skt()
163 "socket %d\n", skt->nr); in soc_common_pcmcia_config_skt()
179 struct soc_pcmcia_socket *skt = to_soc_pcmcia_socket(sock); in soc_common_pcmcia_sock_init() local
181 debug(skt, 2, "initializing socket\n"); in soc_common_pcmcia_sock_init()
183 skt->ops->socket_init(skt); in soc_common_pcmcia_sock_init()
199 struct soc_pcmcia_socket *skt = to_soc_pcmcia_socket(sock); in soc_common_pcmcia_suspend() local
201 debug(skt, 2, "suspending socket\n"); in soc_common_pcmcia_suspend()
203 skt->ops->socket_suspend(skt); in soc_common_pcmcia_suspend()
210 static void soc_common_check_status(struct soc_pcmcia_socket *skt) in soc_common_check_status() argument
214 debug(skt, 4, "entering PCMCIA monitoring thread\n"); in soc_common_check_status()
220 status = soc_common_pcmcia_skt_state(skt); in soc_common_check_status()
223 events = (status ^ skt->status) & skt->cs_state.csc_mask; in soc_common_check_status()
224 skt->status = status; in soc_common_check_status()
227 debug(skt, 4, "events: %s%s%s%s%s%s\n", in soc_common_check_status()
236 pcmcia_parse_events(&skt->socket, events); in soc_common_check_status()
243 struct soc_pcmcia_socket *skt = (struct soc_pcmcia_socket *)dummy; in soc_common_pcmcia_poll_event() local
244 debug(skt, 4, "polling for events\n"); in soc_common_pcmcia_poll_event()
246 mod_timer(&skt->poll_timer, jiffies + SOC_PCMCIA_POLL_PERIOD); in soc_common_pcmcia_poll_event()
248 soc_common_check_status(skt); in soc_common_pcmcia_poll_event()
262 struct soc_pcmcia_socket *skt = dev; in soc_common_pcmcia_interrupt() local
264 debug(skt, 3, "servicing IRQ %d\n", irq); in soc_common_pcmcia_interrupt()
266 soc_common_check_status(skt); in soc_common_pcmcia_interrupt()
290 struct soc_pcmcia_socket *skt = to_soc_pcmcia_socket(sock); in soc_common_pcmcia_get_status() local
292 skt->status = soc_common_pcmcia_skt_state(skt); in soc_common_pcmcia_get_status()
293 *status = skt->status; in soc_common_pcmcia_get_status()
309 struct soc_pcmcia_socket *skt = to_soc_pcmcia_socket(sock); in soc_common_pcmcia_set_socket() local
311 debug(skt, 2, "mask: %s%s%s%s%s%sflags: %s%s%s%s%s%sVcc %d Vpp %d irq %d\n", in soc_common_pcmcia_set_socket()
326 return soc_common_pcmcia_config_skt(skt, state); in soc_common_pcmcia_set_socket()
341 struct soc_pcmcia_socket *skt = to_soc_pcmcia_socket(sock); in soc_common_pcmcia_set_io_map() local
344 debug(skt, 2, "map %u speed %u start 0x%08x stop 0x%08x\n", in soc_common_pcmcia_set_io_map()
346 debug(skt, 2, "flags: %s%s%s%s%s%s%s%s\n", in soc_common_pcmcia_set_io_map()
369 skt->spd_io[map->map] = speed; in soc_common_pcmcia_set_io_map()
370 skt->ops->set_timing(skt); in soc_common_pcmcia_set_io_map()
376 map->stop += skt->socket.io_offset; in soc_common_pcmcia_set_io_map()
377 map->start = skt->socket.io_offset; in soc_common_pcmcia_set_io_map()
394 struct soc_pcmcia_socket *skt = to_soc_pcmcia_socket(sock); in soc_common_pcmcia_set_mem_map() local
398 debug(skt, 2, "map %u speed %u card_start %08x\n", in soc_common_pcmcia_set_mem_map()
400 debug(skt, 2, "flags: %s%s%s%s%s%s%s%s\n", in soc_common_pcmcia_set_mem_map()
421 res = &skt->res_attr; in soc_common_pcmcia_set_mem_map()
422 skt->spd_attr[map->map] = speed; in soc_common_pcmcia_set_mem_map()
423 skt->spd_mem[map->map] = 0; in soc_common_pcmcia_set_mem_map()
425 res = &skt->res_mem; in soc_common_pcmcia_set_mem_map()
426 skt->spd_attr[map->map] = 0; in soc_common_pcmcia_set_mem_map()
427 skt->spd_mem[map->map] = speed; in soc_common_pcmcia_set_mem_map()
430 skt->ops->set_timing(skt); in soc_common_pcmcia_set_mem_map()
484 struct soc_pcmcia_socket *skt = in show_status() local
488 p+=sprintf(p, "slot : %d\n", skt->nr); in show_status()
490 dump_bits(&p, "status", skt->status, in show_status()
492 dump_bits(&p, "csc_mask", skt->cs_state.csc_mask, in show_status()
494 dump_bits(&p, "cs_flags", skt->cs_state.flags, in show_status()
497 p+=sprintf(p, "Vcc : %d\n", skt->cs_state.Vcc); in show_status()
498 p+=sprintf(p, "Vpp : %d\n", skt->cs_state.Vpp); in show_status()
499 p+=sprintf(p, "IRQ : %d (%d)\n", skt->cs_state.io_irq, skt->irq); in show_status()
500 if (skt->ops->show_timing) in show_status()
501 p+=skt->ops->show_timing(skt, p); in show_status()
518 int soc_pcmcia_request_irqs(struct soc_pcmcia_socket *skt, in soc_pcmcia_request_irqs() argument
524 if (irqs[i].sock != skt->nr) in soc_pcmcia_request_irqs()
527 IRQF_DISABLED, irqs[i].str, skt); in soc_pcmcia_request_irqs()
538 if (irqs[i].sock == skt->nr) in soc_pcmcia_request_irqs()
539 free_irq(irqs[i].irq, skt); in soc_pcmcia_request_irqs()
545 void soc_pcmcia_free_irqs(struct soc_pcmcia_socket *skt, in soc_pcmcia_free_irqs() argument
551 if (irqs[i].sock == skt->nr) in soc_pcmcia_free_irqs()
552 free_irq(irqs[i].irq, skt); in soc_pcmcia_free_irqs()
556 void soc_pcmcia_disable_irqs(struct soc_pcmcia_socket *skt, in soc_pcmcia_disable_irqs() argument
562 if (irqs[i].sock == skt->nr) in soc_pcmcia_disable_irqs()
567 void soc_pcmcia_enable_irqs(struct soc_pcmcia_socket *skt, in soc_pcmcia_enable_irqs() argument
573 if (irqs[i].sock == skt->nr) { in soc_pcmcia_enable_irqs()
591 struct soc_pcmcia_socket skt[0]; member
601 struct soc_pcmcia_socket *skt; in soc_pcmcia_notifier() local
606 list_for_each_entry(skt, &soc_pcmcia_sockets, node) in soc_pcmcia_notifier()
607 if ( skt->ops->frequency_change ) in soc_pcmcia_notifier()
608 ret += skt->ops->frequency_change(skt, val, freqs); in soc_pcmcia_notifier()
643 struct soc_pcmcia_socket *skt; in soc_common_drv_pcmcia_probe() local
660 skt = &sinfo->skt[i]; in soc_common_drv_pcmcia_probe()
662 skt->socket.ops = &soc_common_pcmcia_operations; in soc_common_drv_pcmcia_probe()
663 skt->socket.owner = ops->owner; in soc_common_drv_pcmcia_probe()
664 skt->socket.dev.parent = dev; in soc_common_drv_pcmcia_probe()
666 init_timer(&skt->poll_timer); in soc_common_drv_pcmcia_probe()
667 skt->poll_timer.function = soc_common_pcmcia_poll_event; in soc_common_drv_pcmcia_probe()
668 skt->poll_timer.data = (unsigned long)skt; in soc_common_drv_pcmcia_probe()
669 skt->poll_timer.expires = jiffies + SOC_PCMCIA_POLL_PERIOD; in soc_common_drv_pcmcia_probe()
671 skt->nr = first + i; in soc_common_drv_pcmcia_probe()
672 skt->irq = NO_IRQ; in soc_common_drv_pcmcia_probe()
673 skt->dev = dev; in soc_common_drv_pcmcia_probe()
674 skt->ops = ops; in soc_common_drv_pcmcia_probe()
676 skt->res_skt.start = _PCMCIA(skt->nr); in soc_common_drv_pcmcia_probe()
677 skt->res_skt.end = _PCMCIA(skt->nr) + PCMCIASp - 1; in soc_common_drv_pcmcia_probe()
678 skt->res_skt.name = skt_names[skt->nr]; in soc_common_drv_pcmcia_probe()
679 skt->res_skt.flags = IORESOURCE_MEM; in soc_common_drv_pcmcia_probe()
681 ret = request_resource(&iomem_resource, &skt->res_skt); in soc_common_drv_pcmcia_probe()
685 skt->res_io.start = _PCMCIAIO(skt->nr); in soc_common_drv_pcmcia_probe()
686 skt->res_io.end = _PCMCIAIO(skt->nr) + PCMCIAIOSp - 1; in soc_common_drv_pcmcia_probe()
687 skt->res_io.name = "io"; in soc_common_drv_pcmcia_probe()
688 skt->res_io.flags = IORESOURCE_MEM | IORESOURCE_BUSY; in soc_common_drv_pcmcia_probe()
690 ret = request_resource(&skt->res_skt, &skt->res_io); in soc_common_drv_pcmcia_probe()
694 skt->res_mem.start = _PCMCIAMem(skt->nr); in soc_common_drv_pcmcia_probe()
695 skt->res_mem.end = _PCMCIAMem(skt->nr) + PCMCIAMemSp - 1; in soc_common_drv_pcmcia_probe()
696 skt->res_mem.name = "memory"; in soc_common_drv_pcmcia_probe()
697 skt->res_mem.flags = IORESOURCE_MEM; in soc_common_drv_pcmcia_probe()
699 ret = request_resource(&skt->res_skt, &skt->res_mem); in soc_common_drv_pcmcia_probe()
703 skt->res_attr.start = _PCMCIAAttr(skt->nr); in soc_common_drv_pcmcia_probe()
704 skt->res_attr.end = _PCMCIAAttr(skt->nr) + PCMCIAAttrSp - 1; in soc_common_drv_pcmcia_probe()
705 skt->res_attr.name = "attribute"; in soc_common_drv_pcmcia_probe()
706 skt->res_attr.flags = IORESOURCE_MEM; in soc_common_drv_pcmcia_probe()
708 ret = request_resource(&skt->res_skt, &skt->res_attr); in soc_common_drv_pcmcia_probe()
712 skt->virt_io = ioremap(skt->res_io.start, 0x10000); in soc_common_drv_pcmcia_probe()
713 if (skt->virt_io == NULL) { in soc_common_drv_pcmcia_probe()
721 list_add(&skt->node, &soc_pcmcia_sockets); in soc_common_drv_pcmcia_probe()
728 ops->set_timing(skt); in soc_common_drv_pcmcia_probe()
730 ret = ops->hw_init(skt); in soc_common_drv_pcmcia_probe()
734 skt->socket.features = SS_CAP_STATIC_MAP|SS_CAP_PCCARD; in soc_common_drv_pcmcia_probe()
735 skt->socket.resource_ops = &pccard_static_ops; in soc_common_drv_pcmcia_probe()
736 skt->socket.irq_mask = 0; in soc_common_drv_pcmcia_probe()
737 skt->socket.map_size = PAGE_SIZE; in soc_common_drv_pcmcia_probe()
738 skt->socket.pci_irq = skt->irq; in soc_common_drv_pcmcia_probe()
739 skt->socket.io_offset = (unsigned long)skt->virt_io; in soc_common_drv_pcmcia_probe()
741 skt->status = soc_common_pcmcia_skt_state(skt); in soc_common_drv_pcmcia_probe()
743 ret = pcmcia_register_socket(&skt->socket); in soc_common_drv_pcmcia_probe()
747 WARN_ON(skt->socket.sock != i); in soc_common_drv_pcmcia_probe()
749 add_timer(&skt->poll_timer); in soc_common_drv_pcmcia_probe()
751 ret = device_create_file(&skt->socket.dev, &dev_attr_status); in soc_common_drv_pcmcia_probe()
761 skt = &sinfo->skt[i]; in soc_common_drv_pcmcia_probe()
763 device_remove_file(&skt->socket.dev, &dev_attr_status); in soc_common_drv_pcmcia_probe()
765 del_timer_sync(&skt->poll_timer); in soc_common_drv_pcmcia_probe()
766 pcmcia_unregister_socket(&skt->socket); in soc_common_drv_pcmcia_probe()
771 ops->hw_shutdown(skt); in soc_common_drv_pcmcia_probe()
773 list_del(&skt->node); in soc_common_drv_pcmcia_probe()
774 iounmap(skt->virt_io); in soc_common_drv_pcmcia_probe()
776 release_resource(&skt->res_attr); in soc_common_drv_pcmcia_probe()
778 release_resource(&skt->res_mem); in soc_common_drv_pcmcia_probe()
780 release_resource(&skt->res_io); in soc_common_drv_pcmcia_probe()
782 release_resource(&skt->res_skt); in soc_common_drv_pcmcia_probe()
803 struct soc_pcmcia_socket *skt = &sinfo->skt[i]; in soc_common_drv_pcmcia_remove() local
805 del_timer_sync(&skt->poll_timer); in soc_common_drv_pcmcia_remove()
807 pcmcia_unregister_socket(&skt->socket); in soc_common_drv_pcmcia_remove()
811 skt->ops->hw_shutdown(skt); in soc_common_drv_pcmcia_remove()
813 soc_common_pcmcia_config_skt(skt, &dead_socket); in soc_common_drv_pcmcia_remove()
815 list_del(&skt->node); in soc_common_drv_pcmcia_remove()
816 iounmap(skt->virt_io); in soc_common_drv_pcmcia_remove()
817 skt->virt_io = NULL; in soc_common_drv_pcmcia_remove()
818 release_resource(&skt->res_attr); in soc_common_drv_pcmcia_remove()
819 release_resource(&skt->res_mem); in soc_common_drv_pcmcia_remove()
820 release_resource(&skt->res_io); in soc_common_drv_pcmcia_remove()
821 release_resource(&skt->res_skt); in soc_common_drv_pcmcia_remove()