Lines Matching refs:grp
630 struct gfar_priv_grp *grp = &priv->gfargrp[priv->num_grps]; in gfar_parse_group() local
634 grp->irqinfo[i] = kzalloc(sizeof(struct gfar_irqinfo), in gfar_parse_group()
636 if (!grp->irqinfo[i]) in gfar_parse_group()
640 grp->regs = of_iomap(np, 0); in gfar_parse_group()
641 if (!grp->regs) in gfar_parse_group()
644 gfar_irq(grp, TX)->irq = irq_of_parse_and_map(np, 0); in gfar_parse_group()
648 gfar_irq(grp, RX)->irq = irq_of_parse_and_map(np, 1); in gfar_parse_group()
649 gfar_irq(grp, ER)->irq = irq_of_parse_and_map(np, 2); in gfar_parse_group()
650 if (!gfar_irq(grp, TX)->irq || in gfar_parse_group()
651 !gfar_irq(grp, RX)->irq || in gfar_parse_group()
652 !gfar_irq(grp, ER)->irq) in gfar_parse_group()
656 grp->priv = priv; in gfar_parse_group()
657 spin_lock_init(&grp->grplock); in gfar_parse_group()
662 grp->rx_bit_map = (DEFAULT_MAPPING >> priv->num_grps); in gfar_parse_group()
663 grp->tx_bit_map = (DEFAULT_MAPPING >> priv->num_grps); in gfar_parse_group()
667 grp->rx_bit_map = rxq_mask ? in gfar_parse_group()
673 grp->tx_bit_map = txq_mask ? in gfar_parse_group()
679 grp->rx_bit_map = (DEFAULT_MAPPING >> priv->num_grps); in gfar_parse_group()
680 grp->tx_bit_map = (DEFAULT_MAPPING >> priv->num_grps); in gfar_parse_group()
683 grp->rx_bit_map = 0xFF; in gfar_parse_group()
684 grp->tx_bit_map = 0xFF; in gfar_parse_group()
690 grp->rx_bit_map = bitrev8(grp->rx_bit_map); in gfar_parse_group()
691 grp->tx_bit_map = bitrev8(grp->tx_bit_map); in gfar_parse_group()
696 for_each_set_bit(i, &grp->rx_bit_map, priv->num_rx_queues) { in gfar_parse_group()
697 if (!grp->rx_queue) in gfar_parse_group()
698 grp->rx_queue = priv->rx_queue[i]; in gfar_parse_group()
699 grp->num_rx_queues++; in gfar_parse_group()
700 grp->rstat |= (RSTAT_CLEAR_RHALT >> i); in gfar_parse_group()
702 priv->rx_queue[i]->grp = grp; in gfar_parse_group()
705 for_each_set_bit(i, &grp->tx_bit_map, priv->num_tx_queues) { in gfar_parse_group()
706 if (!grp->tx_queue) in gfar_parse_group()
707 grp->tx_queue = priv->tx_queue[i]; in gfar_parse_group()
708 grp->num_tx_queues++; in gfar_parse_group()
709 grp->tstat |= (TSTAT_CLEAR_THALT >> i); in gfar_parse_group()
711 priv->tx_queue[i]->grp = grp; in gfar_parse_group()
1434 struct gfar_priv_grp *grp = &priv->gfargrp[i]; in gfar_probe() local
1436 sprintf(gfar_irq(grp, TX)->name, "%s%s%c%s", in gfar_probe()
1438 sprintf(gfar_irq(grp, RX)->name, "%s%s%c%s", in gfar_probe()
1440 sprintf(gfar_irq(grp, ER)->name, "%s%s%c%s", in gfar_probe()
1443 strcpy(gfar_irq(grp, TX)->name, dev->name); in gfar_probe()
2083 static void free_grp_irqs(struct gfar_priv_grp *grp) in free_grp_irqs() argument
2085 free_irq(gfar_irq(grp, TX)->irq, grp); in free_grp_irqs()
2086 free_irq(gfar_irq(grp, RX)->irq, grp); in free_grp_irqs()
2087 free_irq(gfar_irq(grp, ER)->irq, grp); in free_grp_irqs()
2090 static int register_grp_irqs(struct gfar_priv_grp *grp) in register_grp_irqs() argument
2092 struct gfar_private *priv = grp->priv; in register_grp_irqs()
2103 err = request_irq(gfar_irq(grp, ER)->irq, gfar_error, 0, in register_grp_irqs()
2104 gfar_irq(grp, ER)->name, grp); in register_grp_irqs()
2107 gfar_irq(grp, ER)->irq); in register_grp_irqs()
2111 enable_irq_wake(gfar_irq(grp, ER)->irq); in register_grp_irqs()
2113 err = request_irq(gfar_irq(grp, TX)->irq, gfar_transmit, 0, in register_grp_irqs()
2114 gfar_irq(grp, TX)->name, grp); in register_grp_irqs()
2117 gfar_irq(grp, TX)->irq); in register_grp_irqs()
2120 err = request_irq(gfar_irq(grp, RX)->irq, gfar_receive, 0, in register_grp_irqs()
2121 gfar_irq(grp, RX)->name, grp); in register_grp_irqs()
2124 gfar_irq(grp, RX)->irq); in register_grp_irqs()
2127 enable_irq_wake(gfar_irq(grp, RX)->irq); in register_grp_irqs()
2130 err = request_irq(gfar_irq(grp, TX)->irq, gfar_interrupt, 0, in register_grp_irqs()
2131 gfar_irq(grp, TX)->name, grp); in register_grp_irqs()
2134 gfar_irq(grp, TX)->irq); in register_grp_irqs()
2137 enable_irq_wake(gfar_irq(grp, TX)->irq); in register_grp_irqs()
2143 free_irq(gfar_irq(grp, TX)->irq, grp); in register_grp_irqs()
2145 free_irq(gfar_irq(grp, ER)->irq, grp); in register_grp_irqs()
2337 regs = tx_queue->grp->regs; in gfar_start_xmit()
2872 struct gfar_priv_grp *grp = (struct gfar_priv_grp *)grp_id; in gfar_receive() local
2876 ievent = gfar_read(&grp->regs->ievent); in gfar_receive()
2879 gfar_write(&grp->regs->ievent, IEVENT_FGPI); in gfar_receive()
2883 if (likely(napi_schedule_prep(&grp->napi_rx))) { in gfar_receive()
2884 spin_lock_irqsave(&grp->grplock, flags); in gfar_receive()
2885 imask = gfar_read(&grp->regs->imask); in gfar_receive()
2887 gfar_write(&grp->regs->imask, imask); in gfar_receive()
2888 spin_unlock_irqrestore(&grp->grplock, flags); in gfar_receive()
2889 __napi_schedule(&grp->napi_rx); in gfar_receive()
2894 gfar_write(&grp->regs->ievent, IEVENT_RX_MASK); in gfar_receive()
2903 struct gfar_priv_grp *grp = (struct gfar_priv_grp *)grp_id; in gfar_transmit() local
2907 if (likely(napi_schedule_prep(&grp->napi_tx))) { in gfar_transmit()
2908 spin_lock_irqsave(&grp->grplock, flags); in gfar_transmit()
2909 imask = gfar_read(&grp->regs->imask); in gfar_transmit()
2911 gfar_write(&grp->regs->imask, imask); in gfar_transmit()
2912 spin_unlock_irqrestore(&grp->grplock, flags); in gfar_transmit()
2913 __napi_schedule(&grp->napi_tx); in gfar_transmit()
2918 gfar_write(&grp->regs->ievent, IEVENT_TX_MASK); in gfar_transmit()
3136 napi_gro_receive(&rx_queue->grp->napi_rx, skb); in gfar_clean_rx_ring()
3333 struct gfar_priv_grp *grp = &priv->gfargrp[i]; in gfar_netpoll() local
3335 disable_irq(gfar_irq(grp, TX)->irq); in gfar_netpoll()
3336 disable_irq(gfar_irq(grp, RX)->irq); in gfar_netpoll()
3337 disable_irq(gfar_irq(grp, ER)->irq); in gfar_netpoll()
3338 gfar_interrupt(gfar_irq(grp, TX)->irq, grp); in gfar_netpoll()
3339 enable_irq(gfar_irq(grp, ER)->irq); in gfar_netpoll()
3340 enable_irq(gfar_irq(grp, RX)->irq); in gfar_netpoll()
3341 enable_irq(gfar_irq(grp, TX)->irq); in gfar_netpoll()
3345 struct gfar_priv_grp *grp = &priv->gfargrp[i]; in gfar_netpoll() local
3347 disable_irq(gfar_irq(grp, TX)->irq); in gfar_netpoll()
3348 gfar_interrupt(gfar_irq(grp, TX)->irq, grp); in gfar_netpoll()
3349 enable_irq(gfar_irq(grp, TX)->irq); in gfar_netpoll()