Deleted Added
full compact
25c25
< * $FreeBSD: head/sys/powerpc/ps3/if_glc.c 217044 2011-01-06 04:12:29Z nwhitehorn $
---
> * $FreeBSD: head/sys/powerpc/ps3/if_glc.c 223324 2011-06-20 02:17:34Z nwhitehorn $
137a138
> sc->sc_next_rxdma_slot = 0;
377a379,386
> /*
> * XXX: Sometimes the RX queue gets stuck. Poke it periodically until
> * we figure out why. This will fail harmlessly if the RX queue is
> * already running.
> */
> lv1_net_start_rx_dma(sc->sc_bus, sc->sc_dev,
> sc->sc_rxsoft[sc->sc_next_rxdma_slot].rxs_desc, 0);
>
710c719
< BUS_DMASYNC_PREWRITE);
---
> BUS_DMASYNC_POSTREAD);
715a725,731
> sc->sc_next_rxdma_slot++;
> if (sc->sc_next_rxdma_slot >= GLC_MAX_RX_PACKETS)
> sc->sc_next_rxdma_slot = 0;
>
> if (sc->sc_rxdmadesc[i].cmd_stat & GELIC_CMDSTAT_CHAIN_END)
> restart_rxdma = 1;
>
741,743d756
< sc->sc_next_rxdma_slot++;
< if (sc->sc_next_rxdma_slot >= GLC_MAX_RX_PACKETS)
< sc->sc_next_rxdma_slot = 0;
753,754d765
< if (sc->sc_rxdmadesc[i].cmd_stat & GELIC_CMDSTAT_CHAIN_END)
< restart_rxdma = 1;
756,762d766
< if (restart_rxdma) {
< error = lv1_net_start_rx_dma(sc->sc_bus, sc->sc_dev,
< sc->sc_rxsoft[i].rxs_desc, 0);
< if (error != 0)
< device_printf(sc->sc_self,
< "lv1_net_start_rx_dma error: %d\n", error);
< }
763a768,778
>
> bus_dmamap_sync(sc->sc_dmadesc_tag, sc->sc_rxdmadesc_map,
> BUS_DMASYNC_PREWRITE);
>
> if (restart_rxdma) {
> error = lv1_net_start_rx_dma(sc->sc_bus, sc->sc_dev,
> sc->sc_rxsoft[sc->sc_next_rxdma_slot].rxs_desc, 0);
> if (error != 0)
> device_printf(sc->sc_self,
> "lv1_net_start_rx_dma error: %d\n", error);
> }
772a788,790
> bus_dmamap_sync(sc->sc_dmadesc_tag, sc->sc_txdmadesc_map,
> BUS_DMASYNC_POSTREAD);
>
808c826,827
< if (kickstart && txs != NULL) {
---
> if (kickstart || txs != NULL) {
> /* Speculatively (or necessarily) start the TX queue again */