• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500v2-V1.0.0.60_1.0.38/src/linux/linux-2.6/drivers/pcmcia/

Lines Matching defs:skt

60 void soc_pcmcia_debug(struct soc_pcmcia_socket *skt, const char *func,
65 printk(KERN_DEBUG "skt%u: %s: ", skt->nr, func);
91 void soc_common_pcmcia_get_timing(struct soc_pcmcia_socket *skt, struct soc_pcmcia_timing *timing)
93 timing->io = calc_speed(skt->spd_io, MAX_IO_WIN, SOC_PCMCIA_IO_ACCESS);
94 timing->mem = calc_speed(skt->spd_mem, MAX_WIN, SOC_PCMCIA_3V_MEM_ACCESS);
95 timing->attr = calc_speed(skt->spd_attr, MAX_WIN, SOC_PCMCIA_3V_MEM_ACCESS);
99 static unsigned int soc_common_pcmcia_skt_state(struct soc_pcmcia_socket *skt)
106 skt->ops->socket_state(skt, &state);
118 stat |= skt->cs_state.Vcc ? SS_POWERON : 0;
120 if (skt->cs_state.flags & SS_IOCARD)
138 soc_common_pcmcia_config_skt(struct soc_pcmcia_socket *skt, socket_state_t *state)
142 ret = skt->ops->configure_socket(skt, state);
148 if (skt->irq_state != 1 && state->io_irq) {
149 skt->irq_state = 1;
150 set_irq_type(skt->irq, IRQT_FALLING);
151 } else if (skt->irq_state == 1 && state->io_irq == 0) {
152 skt->irq_state = 0;
153 set_irq_type(skt->irq, IRQT_NOEDGE);
156 skt->cs_state = *state;
161 "socket %d\n", skt->nr);
177 struct soc_pcmcia_socket *skt = to_soc_pcmcia_socket(sock);
179 debug(skt, 2, "initializing socket\n");
181 skt->ops->socket_init(skt);
197 struct soc_pcmcia_socket *skt = to_soc_pcmcia_socket(sock);
199 debug(skt, 2, "suspending socket\n");
201 skt->ops->socket_suspend(skt);
208 static void soc_common_check_status(struct soc_pcmcia_socket *skt)
212 debug(skt, 4, "entering PCMCIA monitoring thread\n");
218 status = soc_common_pcmcia_skt_state(skt);
221 events = (status ^ skt->status) & skt->cs_state.csc_mask;
222 skt->status = status;
225 debug(skt, 4, "events: %s%s%s%s%s%s\n",
234 pcmcia_parse_events(&skt->socket, events);
241 struct soc_pcmcia_socket *skt = (struct soc_pcmcia_socket *)dummy;
242 debug(skt, 4, "polling for events\n");
244 mod_timer(&skt->poll_timer, jiffies + SOC_PCMCIA_POLL_PERIOD);
246 soc_common_check_status(skt);
260 struct soc_pcmcia_socket *skt = dev;
262 debug(skt, 3, "servicing IRQ %d\n", irq);
264 soc_common_check_status(skt);
288 struct soc_pcmcia_socket *skt = to_soc_pcmcia_socket(sock);
290 skt->status = soc_common_pcmcia_skt_state(skt);
291 *status = skt->status;
307 struct soc_pcmcia_socket *skt = to_soc_pcmcia_socket(sock);
309 debug(skt, 2, "mask: %s%s%s%s%s%sflags: %s%s%s%s%s%sVcc %d Vpp %d irq %d\n",
324 return soc_common_pcmcia_config_skt(skt, state);
339 struct soc_pcmcia_socket *skt = to_soc_pcmcia_socket(sock);
342 debug(skt, 2, "map %u speed %u start 0x%08x stop 0x%08x\n",
344 debug(skt, 2, "flags: %s%s%s%s%s%s%s%s\n",
367 skt->spd_io[map->map] = speed;
368 skt->ops->set_timing(skt);
374 map->stop += skt->socket.io_offset;
375 map->start = skt->socket.io_offset;
392 struct soc_pcmcia_socket *skt = to_soc_pcmcia_socket(sock);
396 debug(skt, 2, "map %u speed %u card_start %08x\n",
398 debug(skt, 2, "flags: %s%s%s%s%s%s%s%s\n",
419 res = &skt->res_attr;
420 skt->spd_attr[map->map] = speed;
421 skt->spd_mem[map->map] = 0;
423 res = &skt->res_mem;
424 skt->spd_attr[map->map] = 0;
425 skt->spd_mem[map->map] = speed;
428 skt->ops->set_timing(skt);
482 struct soc_pcmcia_socket *skt =
486 p+=sprintf(p, "slot : %d\n", skt->nr);
488 dump_bits(&p, "status", skt->status,
490 dump_bits(&p, "csc_mask", skt->cs_state.csc_mask,
492 dump_bits(&p, "cs_flags", skt->cs_state.flags,
495 p+=sprintf(p, "Vcc : %d\n", skt->cs_state.Vcc);
496 p+=sprintf(p, "Vpp : %d\n", skt->cs_state.Vpp);
497 p+=sprintf(p, "IRQ : %d (%d)\n", skt->cs_state.io_irq, skt->irq);
498 if (skt->ops->show_timing)
499 p+=skt->ops->show_timing(skt, p);
516 int soc_pcmcia_request_irqs(struct soc_pcmcia_socket *skt,
522 if (irqs[i].sock != skt->nr)
525 IRQF_DISABLED, irqs[i].str, skt);
536 if (irqs[i].sock == skt->nr)
537 free_irq(irqs[i].irq, skt);
543 void soc_pcmcia_free_irqs(struct soc_pcmcia_socket *skt,
549 if (irqs[i].sock == skt->nr)
550 free_irq(irqs[i].irq, skt);
554 void soc_pcmcia_disable_irqs(struct soc_pcmcia_socket *skt,
560 if (irqs[i].sock == skt->nr)
565 void soc_pcmcia_enable_irqs(struct soc_pcmcia_socket *skt,
571 if (irqs[i].sock == skt->nr) {
589 struct soc_pcmcia_socket skt[0];
599 struct soc_pcmcia_socket *skt;
604 list_for_each_entry(skt, &soc_pcmcia_sockets, node)
605 if ( skt->ops->frequency_change )
606 ret += skt->ops->frequency_change(skt, val, freqs);
641 struct soc_pcmcia_socket *skt;
658 skt = &sinfo->skt[i];
660 skt->socket.ops = &soc_common_pcmcia_operations;
661 skt->socket.owner = ops->owner;
662 skt->socket.dev.parent = dev;
664 init_timer(&skt->poll_timer);
665 skt->poll_timer.function = soc_common_pcmcia_poll_event;
666 skt->poll_timer.data = (unsigned long)skt;
667 skt->poll_timer.expires = jiffies + SOC_PCMCIA_POLL_PERIOD;
669 skt->nr = first + i;
670 skt->irq = NO_IRQ;
671 skt->dev = dev;
672 skt->ops = ops;
674 skt->res_skt.start = _PCMCIA(skt->nr);
675 skt->res_skt.end = _PCMCIA(skt->nr) + PCMCIASp - 1;
676 skt->res_skt.name = skt_names[skt->nr];
677 skt->res_skt.flags = IORESOURCE_MEM;
679 ret = request_resource(&iomem_resource, &skt->res_skt);
683 skt->res_io.start = _PCMCIAIO(skt->nr);
684 skt->res_io.end = _PCMCIAIO(skt->nr) + PCMCIAIOSp - 1;
685 skt->res_io.name = "io";
686 skt->res_io.flags = IORESOURCE_MEM | IORESOURCE_BUSY;
688 ret = request_resource(&skt->res_skt, &skt->res_io);
692 skt->res_mem.start = _PCMCIAMem(skt->nr);
693 skt->res_mem.end = _PCMCIAMem(skt->nr) + PCMCIAMemSp - 1;
694 skt->res_mem.name = "memory";
695 skt->res_mem.flags = IORESOURCE_MEM;
697 ret = request_resource(&skt->res_skt, &skt->res_mem);
701 skt->res_attr.start = _PCMCIAAttr(skt->nr);
702 skt->res_attr.end = _PCMCIAAttr(skt->nr) + PCMCIAAttrSp - 1;
703 skt->res_attr.name = "attribute";
704 skt->res_attr.flags = IORESOURCE_MEM;
706 ret = request_resource(&skt->res_skt, &skt->res_attr);
710 skt->virt_io = ioremap(skt->res_io.start, 0x10000);
711 if (skt->virt_io == NULL) {
719 list_add(&skt->node, &soc_pcmcia_sockets);
726 ops->set_timing(skt);
728 ret = ops->hw_init(skt);
732 skt->socket.features = SS_CAP_STATIC_MAP|SS_CAP_PCCARD;
733 skt->socket.resource_ops = &pccard_static_ops;
734 skt->socket.irq_mask = 0;
735 skt->socket.map_size = PAGE_SIZE;
736 skt->socket.pci_irq = skt->irq;
737 skt->socket.io_offset = (unsigned long)skt->virt_io;
739 skt->status = soc_common_pcmcia_skt_state(skt);
741 ret = pcmcia_register_socket(&skt->socket);
745 WARN_ON(skt->socket.sock != i);
747 add_timer(&skt->poll_timer);
749 device_create_file(&skt->socket.dev, &dev_attr_status);
757 skt = &sinfo->skt[i];
759 del_timer_sync(&skt->poll_timer);
760 pcmcia_unregister_socket(&skt->socket);
765 ops->hw_shutdown(skt);
767 list_del(&skt->node);
768 iounmap(skt->virt_io);
770 release_resource(&skt->res_attr);
772 release_resource(&skt->res_mem);
774 release_resource(&skt->res_io);
776 release_resource(&skt->res_skt);
797 struct soc_pcmcia_socket *skt = &sinfo->skt[i];
799 del_timer_sync(&skt->poll_timer);
801 pcmcia_unregister_socket(&skt->socket);
805 skt->ops->hw_shutdown(skt);
807 soc_common_pcmcia_config_skt(skt, &dead_socket);
809 list_del(&skt->node);
810 iounmap(skt->virt_io);
811 skt->virt_io = NULL;
812 release_resource(&skt->res_attr);
813 release_resource(&skt->res_mem);
814 release_resource(&skt->res_io);
815 release_resource(&skt->res_skt);