Lines Matching refs:bgep

38 static void bge_refill(bge_t *bgep, buff_ring_t *brp, sw_rbd_t *srbdp);
57 bge_refill(bge_t *bgep, buff_ring_t *brp, sw_rbd_t *srbdp) in bge_refill() argument
65 bge_mbx_put(bgep, brp->chip_mbx_reg, slot); in bge_refill()
68 static mblk_t *bge_receive_packet(bge_t *bgep, bge_rbd_t *hw_rbd_p,
73 bge_receive_packet(bge_t *bgep, bge_rbd_t *hw_rbd_p, recv_ring_t *rrp) in bge_receive_packet() argument
92 BGE_PKTDUMP((bgep, &hw_rbd, NULL, "bad ring flags!")); in bge_receive_packet()
96 brp = &bgep->buff[BGE_JUMBO_BUFF_RING]; in bge_receive_packet()
101 brp = &bgep->buff[BGE_MINI_BUFF_RING]; in bge_receive_packet()
106 brp = &bgep->buff[BGE_STD_BUFF_RING]; in bge_receive_packet()
112 BGE_PKTDUMP((bgep, &hw_rbd, NULL, "bad ring index!")); in bge_receive_packet()
119 BGE_PKTDUMP((bgep, &hw_rbd, srbdp, "bad ring token")); in bge_receive_packet()
125 BGE_PKTDUMP((bgep, &hw_rbd, srbdp, "unterminated packet")); in bge_receive_packet()
131 BGE_PKTDUMP((bgep, &hw_rbd, srbdp, "errored packet")); in bge_receive_packet()
141 if (bgep->asf_enabled && (hw_rbd.flags & RBD_FLAG_VLAN_TAG)) in bge_receive_packet()
142 maxsize = bgep->chipid.ethmax_size + ETHERFCSL; in bge_receive_packet()
150 maxsize = bgep->chipid.ethmax_size + VLAN_TAGSZ + ETHERFCSL; in bge_receive_packet()
153 BGE_PKTDUMP((bgep, &hw_rbd, srbdp, "oversize packet")); in bge_receive_packet()
158 if (bgep->asf_enabled && (hw_rbd.flags & RBD_FLAG_VLAN_TAG)) in bge_receive_packet()
165 BGE_PKTDUMP((bgep, &hw_rbd, srbdp, "undersize packet")); in bge_receive_packet()
177 if (bgep->asf_enabled && (hw_rbd.flags & RBD_FLAG_VLAN_TAG)) { in bge_receive_packet()
195 if (bge_check_dma_handle(bgep, srbdp->pbuf.dma_hdl) != DDI_FM_OK) { in bge_receive_packet()
196 bgep->bge_dma_error = B_TRUE; in bge_receive_packet()
197 bgep->bge_chip_state = BGE_CHIP_ERROR; in bge_receive_packet()
201 if (bgep->asf_enabled && (hw_rbd.flags & RBD_FLAG_VLAN_TAG)) { in bge_receive_packet()
222 if (bgep->asf_enabled && (hw_rbd.flags & RBD_FLAG_VLAN_TAG)) { in bge_receive_packet()
235 BGE_PKTDUMP((bgep, &hw_rbd, srbdp, "stuttered packet?")); in bge_receive_packet()
253 bge_refill(bgep, brp, srbdp); in bge_receive_packet()
262 bgep->bge_chip_state = BGE_CHIP_ERROR; in bge_receive_packet()
263 bge_fm_ereport(bgep, DDI_FM_DEVICE_INVAL_STATE); in bge_receive_packet()
278 static mblk_t *bge_receive_ring(bge_t *bgep, recv_ring_t *rrp);
284 bge_receive_ring(bge_t *bgep, recv_ring_t *rrp) in bge_receive_ring() argument
301 bgep->bge_chip_state = BGE_CHIP_ERROR; in bge_receive_ring()
302 bge_fm_ereport(bgep, DDI_FM_DEVICE_INVAL_STATE); in bge_receive_ring()
305 if (bge_check_dma_handle(bgep, rrp->desc.dma_hdl) != DDI_FM_OK) { in bge_receive_ring()
307 bge_mbx_put(bgep, rrp->chip_mbx_reg, rrp->rx_next); in bge_receive_ring()
308 bgep->bge_dma_error = B_TRUE; in bge_receive_ring()
309 bgep->bge_chip_state = BGE_CHIP_ERROR; in bge_receive_ring()
320 if ((mp = bge_receive_packet(bgep, &hw_rbd_p[slot], rrp)) in bge_receive_ring()
329 bge_mbx_put(bgep, rrp->chip_mbx_reg, rrp->rx_next); in bge_receive_ring()
330 if (bge_check_acc_handle(bgep, bgep->io_handle) != DDI_FM_OK) in bge_receive_ring()
331 bgep->bge_chip_state = BGE_CHIP_ERROR; in bge_receive_ring()
354 bge_t *bgep = rrp->bgep; in bge_poll_ring() local
370 bgep->bge_chip_state = BGE_CHIP_ERROR; in bge_poll_ring()
371 bge_fm_ereport(bgep, DDI_FM_DEVICE_INVAL_STATE); in bge_poll_ring()
375 if (bge_check_dma_handle(bgep, rrp->desc.dma_hdl) != DDI_FM_OK) { in bge_poll_ring()
377 bge_mbx_put(bgep, rrp->chip_mbx_reg, rrp->rx_next); in bge_poll_ring()
378 bgep->bge_dma_error = B_TRUE; in bge_poll_ring()
379 bgep->bge_chip_state = BGE_CHIP_ERROR; in bge_poll_ring()
391 if ((mp = bge_receive_packet(bgep, &hw_rbd_p[slot], rrp)) in bge_poll_ring()
400 bge_mbx_put(bgep, rrp->chip_mbx_reg, rrp->rx_next); in bge_poll_ring()
401 if (bge_check_acc_handle(bgep, bgep->io_handle) != DDI_FM_OK) in bge_poll_ring()
402 bgep->bge_chip_state = BGE_CHIP_ERROR; in bge_poll_ring()
410 void bge_receive(bge_t *bgep, bge_status_t *bsp);
414 bge_receive(bge_t *bgep, bge_status_t *bsp) in bge_receive() argument
420 for (index = 0; index < bgep->chipid.rx_rings; index++) { in bge_receive()
424 rrp = &bgep->recv[index]; in bge_receive()
437 mp = bge_receive_ring(bgep, rrp); in bge_receive()
441 mac_rx_ring(bgep->mh, rrp->ring_handle, mp, in bge_receive()