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

Lines Matching defs:scq

630 	struct scq_info *scq;
632 scq = kzalloc(sizeof(struct scq_info), GFP_KERNEL);
633 if (!scq)
635 scq->base = pci_alloc_consistent(card->pcidev, SCQ_SIZE,
636 &scq->paddr);
637 if (scq->base == NULL) {
638 kfree(scq);
641 memset(scq->base, 0, SCQ_SIZE);
643 scq->next = scq->base;
644 scq->last = scq->base + (SCQ_ENTRIES - 1);
645 atomic_set(&scq->used, 0);
647 spin_lock_init(&scq->lock);
648 spin_lock_init(&scq->skblock);
650 skb_queue_head_init(&scq->transmit);
651 skb_queue_head_init(&scq->pending);
654 scq->base, scq->next, scq->last, (unsigned long long)scq->paddr);
656 return scq;
660 free_scq(struct idt77252_dev *card, struct scq_info *scq)
666 scq->base, scq->paddr);
668 while ((skb = skb_dequeue(&scq->transmit))) {
679 while ((skb = skb_dequeue(&scq->pending))) {
690 kfree(scq);
697 struct scq_info *scq = vc->scq;
702 TXPRINTK("%s: SCQ: next 0x%p\n", card->name, scq->next);
704 atomic_inc(&scq->used);
705 entries = atomic_read(&scq->used);
707 atomic_dec(&scq->used);
711 skb_queue_tail(&scq->transmit, skb);
736 spin_lock_irqsave(&scq->lock, flags);
737 scq->next->word_1 = cpu_to_le32(tbd->word_1 |
739 scq->next->word_2 = cpu_to_le32(tbd->word_2);
740 scq->next->word_3 = cpu_to_le32(tbd->word_3);
741 scq->next->word_4 = cpu_to_le32(tbd->word_4);
743 if (scq->next == scq->last)
744 scq->next = scq->base;
746 scq->next++;
748 write_sram(card, scq->scd,
749 scq->paddr +
750 (u32)((unsigned long)scq->next - (unsigned long)scq->base));
751 spin_unlock_irqrestore(&scq->lock, flags);
753 scq->trans_start = jiffies;
760 TXPRINTK("%d entries in SCQ used (push).\n", atomic_read(&scq->used));
763 card->name, atomic_read(&scq->used),
764 read_sram(card, scq->scd + 1), scq->next);
769 if (time_after(jiffies, scq->trans_start + HZ)) {
775 scq->trans_start = jiffies;
785 struct scq_info *scq = vc->scq;
790 card->name, atomic_read(&scq->used), scq->next);
792 skb = skb_dequeue(&scq->transmit);
809 atomic_dec(&scq->used);
811 spin_lock(&scq->skblock);
812 while ((skb = skb_dequeue(&scq->pending))) {
814 skb_queue_head(&vc->scq->pending, skb);
818 spin_unlock(&scq->skblock);
906 spin_lock_irqsave(&vc->scq->skblock, flags);
907 skb_queue_tail(&vc->scq->pending, skb);
909 while ((skb = skb_dequeue(&vc->scq->pending))) {
911 skb_queue_head(&vc->scq->pending, skb);
915 spin_unlock_irqrestore(&vc->scq->skblock, flags);
941 fill_scd(struct idt77252_dev *card, struct scq_info *scq, int class)
943 write_sram(card, scq->scd, scq->paddr);
944 write_sram(card, scq->scd + 1, 0x00000000);
945 write_sram(card, scq->scd + 2, 0xffffffff);
946 write_sram(card, scq->scd + 3, 0x00000000);
950 clear_scd(struct idt77252_dev *card, struct scq_info *scq, int class)
1742 card->name, tct, vc->scq->scd);
1744 write_sram(card, tct + 0, TCT_CBR | vc->scq->scd);
1756 card->name, tct, vc->scq->scd);
1758 write_sram(card, tct + 0, TCT_UBR | vc->scq->scd);
2265 vc->scq = alloc_scq(card, vc->class);
2266 if (!vc->scq) {
2271 vc->scq->scd = get_free_scd(card, vc);
2272 if (vc->scq->scd == 0) {
2274 free_scq(card, vc->scq);
2278 fill_scd(card, vc->scq, vc->class);
2285 free_scq(card, vc->scq);
2294 free_scq(card, vc->scq);
2306 free_scq(card, vc->scq);
2544 while (atomic_read(&vc->scq->used) > 0) {
2551 card->name, atomic_read(&vc->scq->used));
2554 clear_scd(card, vc->scq, vc->class);
2563 free_scq(card, vc->scq);
2976 vc->scq = alloc_scq(card, vc->class);
2977 if (!vc->scq) {
2984 vc->scq->scd = card->scd_base;
2986 fill_scd(card, vc->scq, vc->class);