Carve great big chunks out of avalon driver code, only resetting once, sending a fixed number of work items and always checking for buffer full before sending.