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()
1436 struct gfar_priv_grp *grp = &priv->gfargrp[i]; in gfar_probe() local
1438 sprintf(gfar_irq(grp, TX)->name, "%s%s%c%s", in gfar_probe()
1440 sprintf(gfar_irq(grp, RX)->name, "%s%s%c%s", in gfar_probe()
1442 sprintf(gfar_irq(grp, ER)->name, "%s%s%c%s", in gfar_probe()
1445 strcpy(gfar_irq(grp, TX)->name, dev->name); in gfar_probe()
2098 static void free_grp_irqs(struct gfar_priv_grp *grp) in free_grp_irqs() argument
2100 free_irq(gfar_irq(grp, TX)->irq, grp); in free_grp_irqs()
2101 free_irq(gfar_irq(grp, RX)->irq, grp); in free_grp_irqs()
2102 free_irq(gfar_irq(grp, ER)->irq, grp); in free_grp_irqs()
2105 static int register_grp_irqs(struct gfar_priv_grp *grp) in register_grp_irqs() argument
2107 struct gfar_private *priv = grp->priv; in register_grp_irqs()
2118 err = request_irq(gfar_irq(grp, ER)->irq, gfar_error, 0, in register_grp_irqs()
2119 gfar_irq(grp, ER)->name, grp); in register_grp_irqs()
2122 gfar_irq(grp, ER)->irq); in register_grp_irqs()
2126 enable_irq_wake(gfar_irq(grp, ER)->irq); in register_grp_irqs()
2128 err = request_irq(gfar_irq(grp, TX)->irq, gfar_transmit, 0, in register_grp_irqs()
2129 gfar_irq(grp, TX)->name, grp); in register_grp_irqs()
2132 gfar_irq(grp, TX)->irq); in register_grp_irqs()
2135 err = request_irq(gfar_irq(grp, RX)->irq, gfar_receive, 0, in register_grp_irqs()
2136 gfar_irq(grp, RX)->name, grp); in register_grp_irqs()
2139 gfar_irq(grp, RX)->irq); in register_grp_irqs()
2142 enable_irq_wake(gfar_irq(grp, RX)->irq); in register_grp_irqs()
2145 err = request_irq(gfar_irq(grp, TX)->irq, gfar_interrupt, 0, in register_grp_irqs()
2146 gfar_irq(grp, TX)->name, grp); in register_grp_irqs()
2149 gfar_irq(grp, TX)->irq); in register_grp_irqs()
2152 enable_irq_wake(gfar_irq(grp, TX)->irq); in register_grp_irqs()
2158 free_irq(gfar_irq(grp, TX)->irq, grp); in register_grp_irqs()
2160 free_irq(gfar_irq(grp, ER)->irq, grp); in register_grp_irqs()
2353 regs = tx_queue->grp->regs; in gfar_start_xmit()
2883 struct gfar_priv_grp *grp = (struct gfar_priv_grp *)grp_id; in gfar_receive() local
2887 ievent = gfar_read(&grp->regs->ievent); in gfar_receive()
2890 gfar_write(&grp->regs->ievent, IEVENT_FGPI); in gfar_receive()
2894 if (likely(napi_schedule_prep(&grp->napi_rx))) { in gfar_receive()
2895 spin_lock_irqsave(&grp->grplock, flags); in gfar_receive()
2896 imask = gfar_read(&grp->regs->imask); in gfar_receive()
2898 gfar_write(&grp->regs->imask, imask); in gfar_receive()
2899 spin_unlock_irqrestore(&grp->grplock, flags); in gfar_receive()
2900 __napi_schedule(&grp->napi_rx); in gfar_receive()
2905 gfar_write(&grp->regs->ievent, IEVENT_RX_MASK); in gfar_receive()
2914 struct gfar_priv_grp *grp = (struct gfar_priv_grp *)grp_id; in gfar_transmit() local
2918 if (likely(napi_schedule_prep(&grp->napi_tx))) { in gfar_transmit()
2919 spin_lock_irqsave(&grp->grplock, flags); in gfar_transmit()
2920 imask = gfar_read(&grp->regs->imask); in gfar_transmit()
2922 gfar_write(&grp->regs->imask, imask); in gfar_transmit()
2923 spin_unlock_irqrestore(&grp->grplock, flags); in gfar_transmit()
2924 __napi_schedule(&grp->napi_tx); in gfar_transmit()
2929 gfar_write(&grp->regs->ievent, IEVENT_TX_MASK); in gfar_transmit()
3155 napi_gro_receive(&rx_queue->grp->napi_rx, skb); in gfar_clean_rx_ring()
3352 struct gfar_priv_grp *grp = &priv->gfargrp[i]; in gfar_netpoll() local
3354 disable_irq(gfar_irq(grp, TX)->irq); in gfar_netpoll()
3355 disable_irq(gfar_irq(grp, RX)->irq); in gfar_netpoll()
3356 disable_irq(gfar_irq(grp, ER)->irq); in gfar_netpoll()
3357 gfar_interrupt(gfar_irq(grp, TX)->irq, grp); in gfar_netpoll()
3358 enable_irq(gfar_irq(grp, ER)->irq); in gfar_netpoll()
3359 enable_irq(gfar_irq(grp, RX)->irq); in gfar_netpoll()
3360 enable_irq(gfar_irq(grp, TX)->irq); in gfar_netpoll()
3364 struct gfar_priv_grp *grp = &priv->gfargrp[i]; in gfar_netpoll() local
3366 disable_irq(gfar_irq(grp, TX)->irq); in gfar_netpoll()
3367 gfar_interrupt(gfar_irq(grp, TX)->irq, grp); in gfar_netpoll()
3368 enable_irq(gfar_irq(grp, TX)->irq); in gfar_netpoll()