Lines Matching refs:ring

316 	struct pasemi_mac_csring *ring;  in pasemi_mac_setup_csring()  local
321 ring = pasemi_dma_alloc_chan(TXCHAN, sizeof(struct pasemi_mac_csring), in pasemi_mac_setup_csring()
324 if (!ring) { in pasemi_mac_setup_csring()
329 chno = ring->chan.chno; in pasemi_mac_setup_csring()
331 ring->size = CS_RING_SIZE; in pasemi_mac_setup_csring()
332 ring->next_to_fill = 0; in pasemi_mac_setup_csring()
335 if (pasemi_dma_alloc_ring(&ring->chan, CS_RING_SIZE)) in pasemi_mac_setup_csring()
339 PAS_DMA_TXCHAN_BASEL_BRBL(ring->chan.ring_dma)); in pasemi_mac_setup_csring()
340 val = PAS_DMA_TXCHAN_BASEU_BRBH(ring->chan.ring_dma >> 32); in pasemi_mac_setup_csring()
345 ring->events[0] = pasemi_dma_alloc_flag(); in pasemi_mac_setup_csring()
346 ring->events[1] = pasemi_dma_alloc_flag(); in pasemi_mac_setup_csring()
347 if (ring->events[0] < 0 || ring->events[1] < 0) in pasemi_mac_setup_csring()
350 pasemi_dma_clear_flag(ring->events[0]); in pasemi_mac_setup_csring()
351 pasemi_dma_clear_flag(ring->events[1]); in pasemi_mac_setup_csring()
353 ring->fun = pasemi_dma_alloc_fun(); in pasemi_mac_setup_csring()
354 if (ring->fun < 0) in pasemi_mac_setup_csring()
358 PAS_DMA_TXCHAN_CFG_TATTR(ring->fun) | in pasemi_mac_setup_csring()
367 pasemi_dma_start_chan(&ring->chan, PAS_DMA_TXCHAN_TCMDSTA_SZ | in pasemi_mac_setup_csring()
372 return ring; in pasemi_mac_setup_csring()
376 if (ring->events[0] >= 0) in pasemi_mac_setup_csring()
377 pasemi_dma_free_flag(ring->events[0]); in pasemi_mac_setup_csring()
378 if (ring->events[1] >= 0) in pasemi_mac_setup_csring()
379 pasemi_dma_free_flag(ring->events[1]); in pasemi_mac_setup_csring()
380 pasemi_dma_free_ring(&ring->chan); in pasemi_mac_setup_csring()
382 pasemi_dma_free_chan(&ring->chan); in pasemi_mac_setup_csring()
414 struct pasemi_mac_rxring *ring; in pasemi_mac_setup_rx_resources() local
419 ring = pasemi_dma_alloc_chan(RXCHAN, sizeof(struct pasemi_mac_rxring), in pasemi_mac_setup_rx_resources()
422 if (!ring) { in pasemi_mac_setup_rx_resources()
426 chno = ring->chan.chno; in pasemi_mac_setup_rx_resources()
428 spin_lock_init(&ring->lock); in pasemi_mac_setup_rx_resources()
430 ring->size = RX_RING_SIZE; in pasemi_mac_setup_rx_resources()
431 ring->ring_info = kzalloc(sizeof(struct pasemi_mac_buffer) * in pasemi_mac_setup_rx_resources()
434 if (!ring->ring_info) in pasemi_mac_setup_rx_resources()
438 if (pasemi_dma_alloc_ring(&ring->chan, RX_RING_SIZE)) in pasemi_mac_setup_rx_resources()
441 ring->buffers = dma_zalloc_coherent(&mac->dma_pdev->dev, in pasemi_mac_setup_rx_resources()
443 &ring->buf_dma, GFP_KERNEL); in pasemi_mac_setup_rx_resources()
444 if (!ring->buffers) in pasemi_mac_setup_rx_resources()
448 PAS_DMA_RXCHAN_BASEL_BRBL(ring->chan.ring_dma)); in pasemi_mac_setup_rx_resources()
451 PAS_DMA_RXCHAN_BASEU_BRBH(ring->chan.ring_dma >> 32) | in pasemi_mac_setup_rx_resources()
462 PAS_DMA_RXINT_BASEL_BRBL(ring->buf_dma)); in pasemi_mac_setup_rx_resources()
465 PAS_DMA_RXINT_BASEU_BRBH(ring->buf_dma >> 32) | in pasemi_mac_setup_rx_resources()
477 ring->next_to_fill = 0; in pasemi_mac_setup_rx_resources()
478 ring->next_to_clean = 0; in pasemi_mac_setup_rx_resources()
479 ring->mac = mac; in pasemi_mac_setup_rx_resources()
480 mac->rx = ring; in pasemi_mac_setup_rx_resources()
485 kfree(ring->ring_info); in pasemi_mac_setup_rx_resources()
487 pasemi_dma_free_chan(&ring->chan); in pasemi_mac_setup_rx_resources()
497 struct pasemi_mac_txring *ring; in pasemi_mac_setup_tx_resources() local
501 ring = pasemi_dma_alloc_chan(TXCHAN, sizeof(struct pasemi_mac_txring), in pasemi_mac_setup_tx_resources()
504 if (!ring) { in pasemi_mac_setup_tx_resources()
509 chno = ring->chan.chno; in pasemi_mac_setup_tx_resources()
511 spin_lock_init(&ring->lock); in pasemi_mac_setup_tx_resources()
513 ring->size = TX_RING_SIZE; in pasemi_mac_setup_tx_resources()
514 ring->ring_info = kzalloc(sizeof(struct pasemi_mac_buffer) * in pasemi_mac_setup_tx_resources()
516 if (!ring->ring_info) in pasemi_mac_setup_tx_resources()
520 if (pasemi_dma_alloc_ring(&ring->chan, TX_RING_SIZE)) in pasemi_mac_setup_tx_resources()
524 PAS_DMA_TXCHAN_BASEL_BRBL(ring->chan.ring_dma)); in pasemi_mac_setup_tx_resources()
525 val = PAS_DMA_TXCHAN_BASEU_BRBH(ring->chan.ring_dma >> 32); in pasemi_mac_setup_tx_resources()
540 ring->next_to_fill = 0; in pasemi_mac_setup_tx_resources()
541 ring->next_to_clean = 0; in pasemi_mac_setup_tx_resources()
542 ring->mac = mac; in pasemi_mac_setup_tx_resources()
544 return ring; in pasemi_mac_setup_tx_resources()
547 kfree(ring->ring_info); in pasemi_mac_setup_tx_resources()
549 pasemi_dma_free_chan(&ring->chan); in pasemi_mac_setup_tx_resources()