Lines Matching refs:ring

570 rt2560_alloc_tx_ring(struct rt2560_softc *sc, struct rt2560_tx_ring *ring,  in rt2560_alloc_tx_ring()  argument
576 ring->count = count; in rt2560_alloc_tx_ring()
577 ring->queued = 0; in rt2560_alloc_tx_ring()
578 ring->cur = ring->next = 0; in rt2560_alloc_tx_ring()
579 ring->cur_encrypt = ring->next_encrypt = 0; in rt2560_alloc_tx_ring()
581 ring->data = kmem_zalloc(count * (sizeof (struct rt2560_tx_data)), in rt2560_alloc_tx_ring()
583 ring->dr_txbuf = kmem_zalloc(count * (sizeof (struct dma_region)), in rt2560_alloc_tx_ring()
586 err = ral_dma_region_alloc(sc, &ring->dr_desc, in rt2560_alloc_tx_ring()
595 err = ral_dma_region_alloc(sc, &ring->dr_txbuf[i], size, in rt2560_alloc_tx_ring()
599 ral_dma_region_free(sc, &ring->dr_txbuf[i]); in rt2560_alloc_tx_ring()
606 ring->physaddr = LE_32(ring->dr_desc.dr_pbase); in rt2560_alloc_tx_ring()
607 ring->desc = (struct rt2560_tx_desc *)ring->dr_desc.dr_base; in rt2560_alloc_tx_ring()
610 ring->desc[i].physaddr = LE_32(ring->dr_txbuf[i].dr_pbase); in rt2560_alloc_tx_ring()
611 ring->data[i].buf = ring->dr_txbuf[i].dr_base; in rt2560_alloc_tx_ring()
616 ral_dma_region_free(sc, &ring->dr_desc); in rt2560_alloc_tx_ring()
623 rt2560_reset_tx_ring(struct rt2560_softc *sc, struct rt2560_tx_ring *ring) in rt2560_reset_tx_ring() argument
629 for (i = 0; i < ring->count; i++) { in rt2560_reset_tx_ring()
630 desc = &ring->desc[i]; in rt2560_reset_tx_ring()
631 data = &ring->data[i]; in rt2560_reset_tx_ring()
641 (void) ddi_dma_sync(ring->dr_desc.dr_hnd, 0, in rt2560_reset_tx_ring()
642 ring->count * sizeof (struct rt2560_tx_desc), DDI_DMA_SYNC_FORDEV); in rt2560_reset_tx_ring()
644 ring->queued = 0; in rt2560_reset_tx_ring()
645 ring->cur = ring->next = 0; in rt2560_reset_tx_ring()
646 ring->cur_encrypt = ring->next_encrypt = 0; in rt2560_reset_tx_ring()
650 rt2560_free_tx_ring(struct rt2560_softc *sc, struct rt2560_tx_ring *ring) in rt2560_free_tx_ring() argument
655 ral_dma_region_free(sc, &ring->dr_desc); in rt2560_free_tx_ring()
657 for (i = 0; i < ring->count; i++) { in rt2560_free_tx_ring()
658 data = &ring->data[i]; in rt2560_free_tx_ring()
664 ral_dma_region_free(sc, &ring->dr_txbuf[i]); in rt2560_free_tx_ring()
667 kmem_free(ring->data, ring->count * (sizeof (struct rt2560_tx_data))); in rt2560_free_tx_ring()
668 kmem_free(ring->dr_txbuf, ring->count * (sizeof (struct dma_region))); in rt2560_free_tx_ring()
695 rt2560_alloc_rx_ring(struct rt2560_softc *sc, struct rt2560_rx_ring *ring, in rt2560_alloc_rx_ring() argument
703 ring->count = count; in rt2560_alloc_rx_ring()
704 ring->cur = ring->next = 0; in rt2560_alloc_rx_ring()
705 ring->cur_decrypt = 0; in rt2560_alloc_rx_ring()
707 ring->data = kmem_zalloc(count * (sizeof (struct rt2560_rx_data)), in rt2560_alloc_rx_ring()
709 ring->dr_rxbuf = kmem_zalloc(count * (sizeof (struct dma_region)), in rt2560_alloc_rx_ring()
712 err = ral_dma_region_alloc(sc, &ring->dr_desc, in rt2560_alloc_rx_ring()
721 err = ral_dma_region_alloc(sc, &ring->dr_rxbuf[i], size, in rt2560_alloc_rx_ring()
725 ral_dma_region_free(sc, &ring->dr_rxbuf[i]); in rt2560_alloc_rx_ring()
732 ring->physaddr = ring->dr_desc.dr_pbase; in rt2560_alloc_rx_ring()
733 ring->desc = (struct rt2560_rx_desc *)ring->dr_desc.dr_base; in rt2560_alloc_rx_ring()
736 desc = &ring->desc[i]; in rt2560_alloc_rx_ring()
737 data = &ring->data[i]; in rt2560_alloc_rx_ring()
739 desc->physaddr = LE_32(ring->dr_rxbuf[i].dr_pbase); in rt2560_alloc_rx_ring()
742 data->buf = ring->dr_rxbuf[i].dr_base; in rt2560_alloc_rx_ring()
747 ral_dma_region_free(sc, &ring->dr_desc); in rt2560_alloc_rx_ring()
754 rt2560_reset_rx_ring(struct rt2560_softc *sc, struct rt2560_rx_ring *ring) in rt2560_reset_rx_ring() argument
758 for (i = 0; i < ring->count; i++) { in rt2560_reset_rx_ring()
759 ring->desc[i].flags = LE_32(RT2560_RX_BUSY); in rt2560_reset_rx_ring()
760 ring->data[i].drop = 0; in rt2560_reset_rx_ring()
763 (void) ddi_dma_sync(ring->dr_desc.dr_hnd, 0, in rt2560_reset_rx_ring()
764 ring->count * sizeof (struct rt2560_rx_desc), in rt2560_reset_rx_ring()
767 ring->cur = ring->next = 0; in rt2560_reset_rx_ring()
768 ring->cur_decrypt = 0; in rt2560_reset_rx_ring()
772 rt2560_free_rx_ring(struct rt2560_softc *sc, struct rt2560_rx_ring *ring) in rt2560_free_rx_ring() argument
776 ral_dma_region_free(sc, &ring->dr_desc); in rt2560_free_rx_ring()
778 for (i = 0; i < ring->count; i++) in rt2560_free_rx_ring()
779 ral_dma_region_free(sc, &ring->dr_rxbuf[i]); in rt2560_free_rx_ring()
781 kmem_free(ring->data, ring->count * (sizeof (struct rt2560_rx_data))); in rt2560_free_rx_ring()
782 kmem_free(ring->dr_rxbuf, ring->count * (sizeof (struct dma_region))); in rt2560_free_rx_ring()