• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/drivers/pcmcia/

Lines Matching refs:skt

78 struct pcmcia_socket *pcmcia_get_socket(struct pcmcia_socket *skt)
80 struct device *dev = get_device(&skt->dev);
88 void pcmcia_put_socket(struct pcmcia_socket *skt)
90 put_device(&skt->dev);
254 static int socket_reset(struct pcmcia_socket *skt)
258 dev_dbg(&skt->dev, "reset\n");
260 skt->socket.flags |= SS_OUTPUT_ENA | SS_RESET;
261 skt->ops->set_socket(skt, &skt->socket);
264 skt->socket.flags &= ~SS_RESET;
265 skt->ops->set_socket(skt, &skt->socket);
269 skt->ops->get_status(skt, &status);
280 dev_printk(KERN_ERR, &skt->dev, "time out after reset.\n");
337 static int socket_setup(struct pcmcia_socket *skt, int initial_delay)
341 dev_dbg(&skt->dev, "setup\n");
343 skt->ops->get_status(skt, &status);
350 skt->ops->get_status(skt, &status);
361 dev_printk(KERN_ERR, &skt->dev,
367 if (!(skt->features & SS_CAP_CARDBUS)) {
368 dev_printk(KERN_ERR, &skt->dev,
372 skt->state |= SOCKET_CARDBUS;
374 skt->state &= ~SOCKET_CARDBUS;
380 skt->socket.Vcc = skt->socket.Vpp = 33;
382 skt->socket.Vcc = skt->socket.Vpp = 50;
384 dev_printk(KERN_ERR, &skt->dev, "unsupported voltage key.\n");
388 if (skt->power_hook)
389 skt->power_hook(skt, HOOK_POWER_PRE);
391 skt->socket.flags = 0;
392 skt->ops->set_socket(skt, &skt->socket);
399 skt->ops->get_status(skt, &status);
401 dev_printk(KERN_ERR, &skt->dev, "unable to apply power.\n");
405 status = socket_reset(skt);
407 if (skt->power_hook)
408 skt->power_hook(skt, HOOK_POWER_POST);
417 static int socket_insert(struct pcmcia_socket *skt)
421 dev_dbg(&skt->dev, "insert\n");
423 mutex_lock(&skt->ops_mutex);
424 if (skt->state & SOCKET_INUSE) {
425 mutex_unlock(&skt->ops_mutex);
428 skt->state |= SOCKET_INUSE;
430 ret = socket_setup(skt, setup_delay);
432 skt->state |= SOCKET_PRESENT;
434 dev_printk(KERN_NOTICE, &skt->dev,
436 (skt->state & SOCKET_CARDBUS) ? "CardBus" : "PCMCIA",
437 skt->sock);
440 if (skt->state & SOCKET_CARDBUS) {
441 cb_alloc(skt);
442 skt->state |= SOCKET_CARDBUS_CONFIG;
445 dev_dbg(&skt->dev, "insert done\n");
446 mutex_unlock(&skt->ops_mutex);
448 if (!(skt->state & SOCKET_CARDBUS) && (skt->callback))
449 skt->callback->add(skt);
451 mutex_unlock(&skt->ops_mutex);
452 socket_shutdown(skt);
458 static int socket_suspend(struct pcmcia_socket *skt)
460 if (skt->state & SOCKET_SUSPEND)
463 mutex_lock(&skt->ops_mutex);
464 skt->suspended_state = skt->state;
466 skt->socket = dead_socket;
467 skt->ops->set_socket(skt, &skt->socket);
468 if (skt->ops->suspend)
469 skt->ops->suspend(skt);
470 skt->state |= SOCKET_SUSPEND;
471 mutex_unlock(&skt->ops_mutex);
475 static int socket_early_resume(struct pcmcia_socket *skt)
477 mutex_lock(&skt->ops_mutex);
478 skt->socket = dead_socket;
479 skt->ops->init(skt);
480 skt->ops->set_socket(skt, &skt->socket);
481 if (skt->state & SOCKET_PRESENT)
482 skt->resume_status = socket_setup(skt, resume_delay);
483 mutex_unlock(&skt->ops_mutex);
487 static int socket_late_resume(struct pcmcia_socket *skt)
491 mutex_lock(&skt->ops_mutex);
492 skt->state &= ~SOCKET_SUSPEND;
493 mutex_unlock(&skt->ops_mutex);
495 if (!(skt->state & SOCKET_PRESENT)) {
496 ret = socket_insert(skt);
502 if (skt->resume_status) {
503 socket_shutdown(skt);
507 if (skt->suspended_state != skt->state) {
508 dev_dbg(&skt->dev,
510 skt->suspended_state, skt->state);
512 socket_shutdown(skt);
513 return socket_insert(skt);
517 if (skt->state & SOCKET_CARDBUS) {
521 cb_free(skt);
522 cb_alloc(skt);
526 if (!(skt->state & SOCKET_CARDBUS) && (skt->callback))
527 skt->callback->early_resume(skt);
536 static int socket_resume(struct pcmcia_socket *skt)
538 if (!(skt->state & SOCKET_SUSPEND))
541 socket_early_resume(skt);
542 return socket_late_resume(skt);
545 static void socket_remove(struct pcmcia_socket *skt)
547 dev_printk(KERN_NOTICE, &skt->dev,
548 "pccard: card ejected from slot %d\n", skt->sock);
549 socket_shutdown(skt);
563 static void socket_detect_change(struct pcmcia_socket *skt)
565 if (!(skt->state & SOCKET_SUSPEND)) {
568 if (!(skt->state & SOCKET_PRESENT))
571 skt->ops->get_status(skt, &status);
572 if ((skt->state & SOCKET_PRESENT) &&
574 socket_remove(skt);
575 if (!(skt->state & SOCKET_PRESENT) &&
577 socket_insert(skt);
583 struct pcmcia_socket *skt = __skt;
586 skt->thread = current;
587 skt->socket = dead_socket;
588 skt->ops->init(skt);
589 skt->ops->set_socket(skt, &skt->socket);
592 ret = device_register(&skt->dev);
594 dev_printk(KERN_WARNING, &skt->dev,
596 skt->thread = NULL;
597 complete(&skt->thread_done);
600 ret = pccard_sysfs_add_socket(&skt->dev);
602 dev_warn(&skt->dev, "err %d adding socket attributes\n", ret);
604 complete(&skt->thread_done);
617 spin_lock_irqsave(&skt->thread_lock, flags);
618 events = skt->thread_events;
619 skt->thread_events = 0;
620 sysfs_events = skt->sysfs_events;
621 skt->sysfs_events = 0;
622 spin_unlock_irqrestore(&skt->thread_lock, flags);
624 mutex_lock(&skt->skt_mutex);
626 socket_detect_change(skt);
630 socket_remove(skt);
632 socket_insert(skt);
634 !(skt->state & SOCKET_CARDBUS)) {
635 if (skt->callback)
636 ret = skt->callback->suspend(skt);
640 socket_suspend(skt);
645 !(skt->state & SOCKET_CARDBUS)) {
646 ret = socket_resume(skt);
647 if (!ret && skt->callback)
648 skt->callback->resume(skt);
651 !(skt->state & SOCKET_CARDBUS)) {
652 if (!ret && skt->callback)
653 skt->callback->requery(skt);
656 mutex_unlock(&skt->skt_mutex);
671 if (skt->state & SOCKET_PRESENT) {
672 mutex_lock(&skt->skt_mutex);
673 socket_remove(skt);
674 mutex_unlock(&skt->skt_mutex);
678 pccard_sysfs_remove_socket(&skt->dev);
679 device_unregister(&skt->dev);
762 int pcmcia_reset_card(struct pcmcia_socket *skt)
766 dev_dbg(&skt->dev, "resetting socket\n");
768 mutex_lock(&skt->skt_mutex);
770 if (!(skt->state & SOCKET_PRESENT)) {
771 dev_dbg(&skt->dev, "can't reset, not present\n");
775 if (skt->state & SOCKET_SUSPEND) {
776 dev_dbg(&skt->dev, "can't reset, suspended\n");
780 if (skt->state & SOCKET_CARDBUS) {
781 dev_dbg(&skt->dev, "can't reset, is cardbus\n");
786 if (skt->callback)
787 skt->callback->suspend(skt);
788 mutex_lock(&skt->ops_mutex);
789 ret = socket_reset(skt);
790 mutex_unlock(&skt->ops_mutex);
791 if ((ret == 0) && (skt->callback))
792 skt->callback->resume(skt);
796 mutex_unlock(&skt->skt_mutex);
826 int (*callback) (struct pcmcia_socket *skt))