Lines Matching refs:dma_pages
301 dev_priv->dma_pages = kmalloc_array(dev_priv->nr_dma_pages, in savage_dma_init()
304 if (dev_priv->dma_pages == NULL) in savage_dma_init()
308 SET_AGE(&dev_priv->dma_pages[i].age, 0, 0); in savage_dma_init()
309 dev_priv->dma_pages[i].used = 0; in savage_dma_init()
310 dev_priv->dma_pages[i].flushed = 0; in savage_dma_init()
327 SET_AGE(&dev_priv->dma_pages[i].age, event, wrap); in savage_dma_reset()
328 dev_priv->dma_pages[i].used = 0; in savage_dma_reset()
329 dev_priv->dma_pages[i].flushed = 0; in savage_dma_reset()
353 if (dev_priv->dma_pages[page].age.wrap > wrap || in savage_dma_wait()
354 (dev_priv->dma_pages[page].age.wrap == wrap && in savage_dma_wait()
355 dev_priv->dma_pages[page].age.event > event)) { in savage_dma_wait()
357 dev_priv->dma_pages[page].age.event) in savage_dma_wait()
367 dev_priv->dma_pages[cur].used; in savage_dma_alloc()
374 cur, dev_priv->dma_pages[cur].used, n, rest, nr_pages); in savage_dma_alloc()
378 cur * SAVAGE_DMA_PAGE_SIZE + dev_priv->dma_pages[cur].used; in savage_dma_alloc()
381 dev_priv->dma_pages[cur].used += rest; in savage_dma_alloc()
389 dev_priv->dma_pages[i].age = dev_priv->last_dma_age; in savage_dma_alloc()
390 dev_priv->dma_pages[i].used = 0; in savage_dma_alloc()
391 dev_priv->dma_pages[i].flushed = 0; in savage_dma_alloc()
398 if (dev_priv->dma_pages[i].used) { in savage_dma_alloc()
400 i, dev_priv->dma_pages[i].used); in savage_dma_alloc()
404 dev_priv->dma_pages[i].used = SAVAGE_DMA_PAGE_SIZE; in savage_dma_alloc()
406 dev_priv->dma_pages[i].used = n; in savage_dma_alloc()
412 i, dev_priv->dma_pages[i].used, n); in savage_dma_alloc()
429 dev_priv->dma_pages[cur].used == dev_priv->dma_pages[cur].flushed) in savage_dma_flush()
434 pad = -dev_priv->dma_pages[cur].used & 1; in savage_dma_flush()
435 align = -(dev_priv->dma_pages[cur].used + pad) & 7; in savage_dma_flush()
439 first, cur, dev_priv->dma_pages[first].flushed, in savage_dma_flush()
440 dev_priv->dma_pages[cur].used, pad, align); in savage_dma_flush()
445 cur * SAVAGE_DMA_PAGE_SIZE + dev_priv->dma_pages[cur].used; in savage_dma_flush()
446 dev_priv->dma_pages[cur].used += pad; in savage_dma_flush()
458 dev_priv->dma_pages[first].flushed) * 4; in savage_dma_flush()
460 dev_priv->dma_pages[cur].used - dev_priv->dma_pages[first].flushed; in savage_dma_flush()
471 dev_priv->dma_pages[cur].used += align; in savage_dma_flush()
477 SET_AGE(&dev_priv->dma_pages[i].age, event, wrap); in savage_dma_flush()
478 dev_priv->dma_pages[i].used = 0; in savage_dma_flush()
479 dev_priv->dma_pages[i].flushed = 0; in savage_dma_flush()
482 if (dev_priv->dma_pages[cur].used == SAVAGE_DMA_PAGE_SIZE) { in savage_dma_flush()
483 SET_AGE(&dev_priv->dma_pages[cur].age, event, wrap); in savage_dma_flush()
484 dev_priv->dma_pages[cur].used = 0; in savage_dma_flush()
485 dev_priv->dma_pages[cur].flushed = 0; in savage_dma_flush()
493 dev_priv->dma_pages[cur].flushed = dev_priv->dma_pages[i].used; in savage_dma_flush()
498 dev_priv->dma_pages[cur].used, in savage_dma_flush()
499 dev_priv->dma_pages[cur].flushed); in savage_dma_flush()
508 dev_priv->dma_pages[dev_priv->current_dma_page].used == 0) in savage_fake_dma_flush()
513 dev_priv->dma_pages[dev_priv->current_dma_page].used); in savage_fake_dma_flush()
516 i <= dev_priv->current_dma_page && dev_priv->dma_pages[i].used; in savage_fake_dma_flush()
523 dev_priv->dma_pages[i].used != SAVAGE_DMA_PAGE_SIZE) { in savage_fake_dma_flush()
525 i, dev_priv->dma_pages[i].used); in savage_fake_dma_flush()
528 BEGIN_BCI(dev_priv->dma_pages[i].used); in savage_fake_dma_flush()
529 for (j = 0; j < dev_priv->dma_pages[i].used; ++j) { in savage_fake_dma_flush()
532 dev_priv->dma_pages[i].used = 0; in savage_fake_dma_flush()
908 kfree(dev_priv->dma_pages); in savage_do_cleanup_bci()