| .. | .. |
|---|
| 30 | 30 | |
|---|
| 31 | 31 | #include <nvif/user.h> |
|---|
| 32 | 32 | |
|---|
| 33 | | -void |
|---|
| 34 | | -OUT_RINGp(struct nouveau_channel *chan, const void *data, unsigned nr_dwords) |
|---|
| 35 | | -{ |
|---|
| 36 | | - bool is_iomem; |
|---|
| 37 | | - u32 *mem = ttm_kmap_obj_virtual(&chan->push.buffer->kmap, &is_iomem); |
|---|
| 38 | | - mem = &mem[chan->dma.cur]; |
|---|
| 39 | | - if (is_iomem) |
|---|
| 40 | | - memcpy_toio((void __force __iomem *)mem, data, nr_dwords * 4); |
|---|
| 41 | | - else |
|---|
| 42 | | - memcpy(mem, data, nr_dwords * 4); |
|---|
| 43 | | - chan->dma.cur += nr_dwords; |
|---|
| 44 | | -} |
|---|
| 45 | | - |
|---|
| 46 | 33 | /* Fetch and adjust GPU GET pointer |
|---|
| 47 | 34 | * |
|---|
| 48 | 35 | * Returns: |
|---|
| .. | .. |
|---|
| 101 | 88 | |
|---|
| 102 | 89 | nvif_wr32(&chan->user, 0x8c, chan->dma.ib_put); |
|---|
| 103 | 90 | if (user->func && user->func->doorbell) |
|---|
| 104 | | - user->func->doorbell(user, chan->chid); |
|---|
| 91 | + user->func->doorbell(user, chan->token); |
|---|
| 105 | 92 | chan->dma.ib_free--; |
|---|
| 106 | 93 | } |
|---|
| 107 | 94 | |
|---|
| .. | .. |
|---|
| 118 | 105 | } |
|---|
| 119 | 106 | |
|---|
| 120 | 107 | if ((++cnt & 0xff) == 0) { |
|---|
| 121 | | - DRM_UDELAY(1); |
|---|
| 108 | + udelay(1); |
|---|
| 122 | 109 | if (cnt > 100000) |
|---|
| 123 | 110 | return -EBUSY; |
|---|
| 124 | 111 | } |
|---|