Lines Matching defs:grp
505 struct gfar_priv_grp *grp = &priv->gfargrp[priv->num_grps];
509 grp->irqinfo[i] = kzalloc(sizeof(struct gfar_irqinfo),
511 if (!grp->irqinfo[i])
515 grp->regs = of_iomap(np, 0);
516 if (!grp->regs)
519 gfar_irq(grp, TX)->irq = irq_of_parse_and_map(np, 0);
523 gfar_irq(grp, RX)->irq = irq_of_parse_and_map(np, 1);
524 gfar_irq(grp, ER)->irq = irq_of_parse_and_map(np, 2);
525 if (!gfar_irq(grp, TX)->irq ||
526 !gfar_irq(grp, RX)->irq ||
527 !gfar_irq(grp, ER)->irq)
531 grp->priv = priv;
532 spin_lock_init(&grp->grplock);
535 grp->rx_bit_map = (DEFAULT_MAPPING >> priv->num_grps);
536 grp->tx_bit_map = (DEFAULT_MAPPING >> priv->num_grps);
538 grp->rx_bit_map = 0xFF;
539 grp->tx_bit_map = 0xFF;
545 grp->rx_bit_map = bitrev8(grp->rx_bit_map);
546 grp->tx_bit_map = bitrev8(grp->tx_bit_map);
551 for_each_set_bit(i, &grp->rx_bit_map, priv->num_rx_queues) {
552 if (!grp->rx_queue)
553 grp->rx_queue = priv->rx_queue[i];
554 grp->num_rx_queues++;
555 grp->rstat |= (RSTAT_CLEAR_RHALT >> i);
557 priv->rx_queue[i]->grp = grp;
560 for_each_set_bit(i, &grp->tx_bit_map, priv->num_tx_queues) {
561 if (!grp->tx_queue)
562 grp->tx_queue = priv->tx_queue[i];
563 grp->num_tx_queues++;
564 grp->tstat |= (TSTAT_CLEAR_THALT >> i);
566 priv->tx_queue[i]->grp = grp;
1788 regs = tx_queue->grp->regs;
2297 struct gfar_priv_grp *grp = (struct gfar_priv_grp *)grp_id;
2301 ievent = gfar_read(&grp->regs->ievent);
2304 gfar_write(&grp->regs->ievent, IEVENT_FGPI);
2308 if (likely(napi_schedule_prep(&grp->napi_rx))) {
2309 spin_lock_irqsave(&grp->grplock, flags);
2310 imask = gfar_read(&grp->regs->imask);
2311 imask &= IMASK_RX_DISABLED | grp->priv->rmon_overflow.imask;
2312 gfar_write(&grp->regs->imask, imask);
2313 spin_unlock_irqrestore(&grp->grplock, flags);
2314 __napi_schedule(&grp->napi_rx);
2319 gfar_write(&grp->regs->ievent, IEVENT_RX_MASK);
2328 struct gfar_priv_grp *grp = (struct gfar_priv_grp *)grp_id;
2332 if (likely(napi_schedule_prep(&grp->napi_tx))) {
2333 spin_lock_irqsave(&grp->grplock, flags);
2334 imask = gfar_read(&grp->regs->imask);
2335 imask &= IMASK_TX_DISABLED | grp->priv->rmon_overflow.imask;
2336 gfar_write(&grp->regs->imask, imask);
2337 spin_unlock_irqrestore(&grp->grplock, flags);
2338 __napi_schedule(&grp->napi_tx);
2343 gfar_write(&grp->regs->ievent, IEVENT_TX_MASK);
2580 napi_gro_receive(&rx_queue->grp->napi_rx, skb);
2781 struct gfar_priv_grp *grp = &priv->gfargrp[i];
2783 disable_irq(gfar_irq(grp, TX)->irq);
2784 disable_irq(gfar_irq(grp, RX)->irq);
2785 disable_irq(gfar_irq(grp, ER)->irq);
2786 gfar_interrupt(gfar_irq(grp, TX)->irq, grp);
2787 enable_irq(gfar_irq(grp, ER)->irq);
2788 enable_irq(gfar_irq(grp, RX)->irq);
2789 enable_irq(gfar_irq(grp, TX)->irq);
2793 struct gfar_priv_grp *grp = &priv->gfargrp[i];
2795 disable_irq(gfar_irq(grp, TX)->irq);
2796 gfar_interrupt(gfar_irq(grp, TX)->irq, grp);
2797 enable_irq(gfar_irq(grp, TX)->irq);
2803 static void free_grp_irqs(struct gfar_priv_grp *grp)
2805 free_irq(gfar_irq(grp, TX)->irq, grp);
2806 free_irq(gfar_irq(grp, RX)->irq, grp);
2807 free_irq(gfar_irq(grp, ER)->irq, grp);
2810 static int register_grp_irqs(struct gfar_priv_grp *grp)
2812 struct gfar_private *priv = grp->priv;
2823 err = request_irq(gfar_irq(grp, ER)->irq, gfar_error, 0,
2824 gfar_irq(grp, ER)->name, grp);
2827 gfar_irq(grp, ER)->irq);
2831 enable_irq_wake(gfar_irq(grp, ER)->irq);
2833 err = request_irq(gfar_irq(grp, TX)->irq, gfar_transmit, 0,
2834 gfar_irq(grp, TX)->name, grp);
2837 gfar_irq(grp, TX)->irq);
2840 err = request_irq(gfar_irq(grp, RX)->irq, gfar_receive, 0,
2841 gfar_irq(grp, RX)->name, grp);
2844 gfar_irq(grp, RX)->irq);
2847 enable_irq_wake(gfar_irq(grp, RX)->irq);
2850 err = request_irq(gfar_irq(grp, TX)->irq, gfar_interrupt, 0,
2851 gfar_irq(grp, TX)->name, grp);
2854 gfar_irq(grp, TX)->irq);
2857 enable_irq_wake(gfar_irq(grp, TX)->irq);
2863 free_irq(gfar_irq(grp, TX)->irq, grp);
2865 free_irq(gfar_irq(grp, ER)->irq, grp);
3233 /* Register for napi ...We are registering NAPI for each grp */
3324 struct gfar_priv_grp *grp = &priv->gfargrp[i];
3326 sprintf(gfar_irq(grp, TX)->name, "%s%s%c%s",
3328 sprintf(gfar_irq(grp, RX)->name, "%s%s%c%s",
3330 sprintf(gfar_irq(grp, ER)->name, "%s%s%c%s",
3333 strcpy(gfar_irq(grp, TX)->name, dev->name);