diff options
-rw-r--r-- | drivers/gpu/drm/gma500/psb_irq.c | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/mga/mga_drv.h | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/nouveau/nouveau_dma.c | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/nouveau/nouveau_dma.h | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/r128/r128_drv.h | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/radeon/radeon_cp.c | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/radeon/radeon_ring.c | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/savage/savage_bci.c | 6 | ||||
-rw-r--r-- | drivers/gpu/drm/savage/savage_state.c | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/via/via_dma.c | 4 | ||||
-rw-r--r-- | drivers/gpu/drm/via/via_dmablit.c | 2 | ||||
-rw-r--r-- | include/drm/drm_os_linux.h | 7 |
12 files changed, 14 insertions, 21 deletions
diff --git a/drivers/gpu/drm/gma500/psb_irq.c b/drivers/gpu/drm/gma500/psb_irq.c index ef00bce9991a..a9bb34704738 100644 --- a/drivers/gpu/drm/gma500/psb_irq.c +++ b/drivers/gpu/drm/gma500/psb_irq.c | |||
@@ -253,7 +253,7 @@ irqreturn_t psb_irq_handler(int irq, void *arg) | |||
253 | 253 | ||
254 | PSB_WVDC32(vdc_stat, PSB_INT_IDENTITY_R); | 254 | PSB_WVDC32(vdc_stat, PSB_INT_IDENTITY_R); |
255 | (void) PSB_RVDC32(PSB_INT_IDENTITY_R); | 255 | (void) PSB_RVDC32(PSB_INT_IDENTITY_R); |
256 | DRM_READMEMORYBARRIER(); | 256 | rmb(); |
257 | 257 | ||
258 | if (!handled) | 258 | if (!handled) |
259 | return IRQ_NONE; | 259 | return IRQ_NONE; |
diff --git a/drivers/gpu/drm/mga/mga_drv.h b/drivers/gpu/drm/mga/mga_drv.h index 901e4f935fed..fe453213600a 100644 --- a/drivers/gpu/drm/mga/mga_drv.h +++ b/drivers/gpu/drm/mga/mga_drv.h | |||
@@ -193,7 +193,7 @@ extern void mga_driver_irq_uninstall(struct drm_device *dev); | |||
193 | extern long mga_compat_ioctl(struct file *filp, unsigned int cmd, | 193 | extern long mga_compat_ioctl(struct file *filp, unsigned int cmd, |
194 | unsigned long arg); | 194 | unsigned long arg); |
195 | 195 | ||
196 | #define mga_flush_write_combine() DRM_WRITEMEMORYBARRIER() | 196 | #define mga_flush_write_combine() wmb() |
197 | 197 | ||
198 | #define MGA_READ8(reg) DRM_READ8(dev_priv->mmio, (reg)) | 198 | #define MGA_READ8(reg) DRM_READ8(dev_priv->mmio, (reg)) |
199 | #define MGA_READ(reg) DRM_READ32(dev_priv->mmio, (reg)) | 199 | #define MGA_READ(reg) DRM_READ32(dev_priv->mmio, (reg)) |
diff --git a/drivers/gpu/drm/nouveau/nouveau_dma.c b/drivers/gpu/drm/nouveau/nouveau_dma.c index 40f91e1e5842..c177272152e2 100644 --- a/drivers/gpu/drm/nouveau/nouveau_dma.c +++ b/drivers/gpu/drm/nouveau/nouveau_dma.c | |||
@@ -100,7 +100,7 @@ nv50_dma_push(struct nouveau_channel *chan, struct nouveau_bo *bo, | |||
100 | 100 | ||
101 | chan->dma.ib_put = (chan->dma.ib_put + 1) & chan->dma.ib_max; | 101 | chan->dma.ib_put = (chan->dma.ib_put + 1) & chan->dma.ib_max; |
102 | 102 | ||
103 | DRM_MEMORYBARRIER(); | 103 | mb(); |
104 | /* Flush writes. */ | 104 | /* Flush writes. */ |
105 | nouveau_bo_rd32(pb, 0); | 105 | nouveau_bo_rd32(pb, 0); |
106 | 106 | ||
diff --git a/drivers/gpu/drm/nouveau/nouveau_dma.h b/drivers/gpu/drm/nouveau/nouveau_dma.h index 984004d66a6d..dc0e0c5cadb4 100644 --- a/drivers/gpu/drm/nouveau/nouveau_dma.h +++ b/drivers/gpu/drm/nouveau/nouveau_dma.h | |||
@@ -155,7 +155,7 @@ BEGIN_IMC0(struct nouveau_channel *chan, int subc, int mthd, u16 data) | |||
155 | } | 155 | } |
156 | 156 | ||
157 | #define WRITE_PUT(val) do { \ | 157 | #define WRITE_PUT(val) do { \ |
158 | DRM_MEMORYBARRIER(); \ | 158 | mb(); \ |
159 | nouveau_bo_rd32(chan->push.buffer, 0); \ | 159 | nouveau_bo_rd32(chan->push.buffer, 0); \ |
160 | nv_wo32(chan->object, chan->user_put, ((val) << 2) + chan->push.vma.offset); \ | 160 | nv_wo32(chan->object, chan->user_put, ((val) << 2) + chan->push.vma.offset); \ |
161 | } while (0) | 161 | } while (0) |
diff --git a/drivers/gpu/drm/r128/r128_drv.h b/drivers/gpu/drm/r128/r128_drv.h index 4318bfa845cb..5bf3f5ff805d 100644 --- a/drivers/gpu/drm/r128/r128_drv.h +++ b/drivers/gpu/drm/r128/r128_drv.h | |||
@@ -514,7 +514,7 @@ do { \ | |||
514 | if (R128_VERBOSE) \ | 514 | if (R128_VERBOSE) \ |
515 | DRM_INFO("COMMIT_RING() tail=0x%06x\n", \ | 515 | DRM_INFO("COMMIT_RING() tail=0x%06x\n", \ |
516 | dev_priv->ring.tail); \ | 516 | dev_priv->ring.tail); \ |
517 | DRM_MEMORYBARRIER(); \ | 517 | mb(); \ |
518 | R128_WRITE(R128_PM4_BUFFER_DL_WPTR, dev_priv->ring.tail); \ | 518 | R128_WRITE(R128_PM4_BUFFER_DL_WPTR, dev_priv->ring.tail); \ |
519 | R128_READ(R128_PM4_BUFFER_DL_WPTR); \ | 519 | R128_READ(R128_PM4_BUFFER_DL_WPTR); \ |
520 | } while (0) | 520 | } while (0) |
diff --git a/drivers/gpu/drm/radeon/radeon_cp.c b/drivers/gpu/drm/radeon/radeon_cp.c index d73013e6f58a..bb0d5c3a8311 100644 --- a/drivers/gpu/drm/radeon/radeon_cp.c +++ b/drivers/gpu/drm/radeon/radeon_cp.c | |||
@@ -2228,7 +2228,7 @@ void radeon_commit_ring(drm_radeon_private_t *dev_priv) | |||
2228 | 2228 | ||
2229 | dev_priv->ring.tail &= dev_priv->ring.tail_mask; | 2229 | dev_priv->ring.tail &= dev_priv->ring.tail_mask; |
2230 | 2230 | ||
2231 | DRM_MEMORYBARRIER(); | 2231 | mb(); |
2232 | GET_RING_HEAD( dev_priv ); | 2232 | GET_RING_HEAD( dev_priv ); |
2233 | 2233 | ||
2234 | if ((dev_priv->flags & RADEON_FAMILY_MASK) >= CHIP_R600) { | 2234 | if ((dev_priv->flags & RADEON_FAMILY_MASK) >= CHIP_R600) { |
diff --git a/drivers/gpu/drm/radeon/radeon_ring.c b/drivers/gpu/drm/radeon/radeon_ring.c index 9214403ae173..ca2d71afeb02 100644 --- a/drivers/gpu/drm/radeon/radeon_ring.c +++ b/drivers/gpu/drm/radeon/radeon_ring.c | |||
@@ -463,7 +463,7 @@ void radeon_ring_commit(struct radeon_device *rdev, struct radeon_ring *ring) | |||
463 | while (ring->wptr & ring->align_mask) { | 463 | while (ring->wptr & ring->align_mask) { |
464 | radeon_ring_write(ring, ring->nop); | 464 | radeon_ring_write(ring, ring->nop); |
465 | } | 465 | } |
466 | DRM_MEMORYBARRIER(); | 466 | mb(); |
467 | radeon_ring_set_wptr(rdev, ring); | 467 | radeon_ring_set_wptr(rdev, ring); |
468 | } | 468 | } |
469 | 469 | ||
diff --git a/drivers/gpu/drm/savage/savage_bci.c b/drivers/gpu/drm/savage/savage_bci.c index 6e673fa968e5..d2b2df9e26f3 100644 --- a/drivers/gpu/drm/savage/savage_bci.c +++ b/drivers/gpu/drm/savage/savage_bci.c | |||
@@ -49,7 +49,7 @@ savage_bci_wait_fifo_shadow(drm_savage_private_t * dev_priv, unsigned int n) | |||
49 | #endif | 49 | #endif |
50 | 50 | ||
51 | for (i = 0; i < SAVAGE_DEFAULT_USEC_TIMEOUT; i++) { | 51 | for (i = 0; i < SAVAGE_DEFAULT_USEC_TIMEOUT; i++) { |
52 | DRM_MEMORYBARRIER(); | 52 | mb(); |
53 | status = dev_priv->status_ptr[0]; | 53 | status = dev_priv->status_ptr[0]; |
54 | if ((status & mask) < threshold) | 54 | if ((status & mask) < threshold) |
55 | return 0; | 55 | return 0; |
@@ -123,7 +123,7 @@ savage_bci_wait_event_shadow(drm_savage_private_t * dev_priv, uint16_t e) | |||
123 | int i; | 123 | int i; |
124 | 124 | ||
125 | for (i = 0; i < SAVAGE_EVENT_USEC_TIMEOUT; i++) { | 125 | for (i = 0; i < SAVAGE_EVENT_USEC_TIMEOUT; i++) { |
126 | DRM_MEMORYBARRIER(); | 126 | mb(); |
127 | status = dev_priv->status_ptr[1]; | 127 | status = dev_priv->status_ptr[1]; |
128 | if ((((status & 0xffff) - e) & 0xffff) <= 0x7fff || | 128 | if ((((status & 0xffff) - e) & 0xffff) <= 0x7fff || |
129 | (status & 0xffff) == 0) | 129 | (status & 0xffff) == 0) |
@@ -449,7 +449,7 @@ static void savage_dma_flush(drm_savage_private_t * dev_priv) | |||
449 | } | 449 | } |
450 | } | 450 | } |
451 | 451 | ||
452 | DRM_MEMORYBARRIER(); | 452 | mb(); |
453 | 453 | ||
454 | /* do flush ... */ | 454 | /* do flush ... */ |
455 | phys_addr = dev_priv->cmd_dma->offset + | 455 | phys_addr = dev_priv->cmd_dma->offset + |
diff --git a/drivers/gpu/drm/savage/savage_state.c b/drivers/gpu/drm/savage/savage_state.c index 2d3e56d94be3..c01ad0aeaa58 100644 --- a/drivers/gpu/drm/savage/savage_state.c +++ b/drivers/gpu/drm/savage/savage_state.c | |||
@@ -1032,7 +1032,7 @@ int savage_bci_cmdbuf(struct drm_device *dev, void *data, struct drm_file *file_ | |||
1032 | 1032 | ||
1033 | /* Make sure writes to DMA buffers are finished before sending | 1033 | /* Make sure writes to DMA buffers are finished before sending |
1034 | * DMA commands to the graphics hardware. */ | 1034 | * DMA commands to the graphics hardware. */ |
1035 | DRM_MEMORYBARRIER(); | 1035 | mb(); |
1036 | 1036 | ||
1037 | /* Coming from user space. Don't know if the Xserver has | 1037 | /* Coming from user space. Don't know if the Xserver has |
1038 | * emitted wait commands. Assuming the worst. */ | 1038 | * emitted wait commands. Assuming the worst. */ |
diff --git a/drivers/gpu/drm/via/via_dma.c b/drivers/gpu/drm/via/via_dma.c index 3436fdad22c5..5d4179284964 100644 --- a/drivers/gpu/drm/via/via_dma.c +++ b/drivers/gpu/drm/via/via_dma.c | |||
@@ -60,7 +60,7 @@ | |||
60 | dev_priv->dma_low += 8; \ | 60 | dev_priv->dma_low += 8; \ |
61 | } | 61 | } |
62 | 62 | ||
63 | #define via_flush_write_combine() DRM_MEMORYBARRIER() | 63 | #define via_flush_write_combine() mb() |
64 | 64 | ||
65 | #define VIA_OUT_RING_QW(w1, w2) do { \ | 65 | #define VIA_OUT_RING_QW(w1, w2) do { \ |
66 | *vb++ = (w1); \ | 66 | *vb++ = (w1); \ |
@@ -543,7 +543,7 @@ static void via_cmdbuf_start(drm_via_private_t *dev_priv) | |||
543 | 543 | ||
544 | VIA_WRITE(VIA_REG_TRANSPACE, pause_addr_hi); | 544 | VIA_WRITE(VIA_REG_TRANSPACE, pause_addr_hi); |
545 | VIA_WRITE(VIA_REG_TRANSPACE, pause_addr_lo); | 545 | VIA_WRITE(VIA_REG_TRANSPACE, pause_addr_lo); |
546 | DRM_WRITEMEMORYBARRIER(); | 546 | wmb(); |
547 | VIA_WRITE(VIA_REG_TRANSPACE, command | HC_HAGPCMNT_MASK); | 547 | VIA_WRITE(VIA_REG_TRANSPACE, command | HC_HAGPCMNT_MASK); |
548 | VIA_READ(VIA_REG_TRANSPACE); | 548 | VIA_READ(VIA_REG_TRANSPACE); |
549 | 549 | ||
diff --git a/drivers/gpu/drm/via/via_dmablit.c b/drivers/gpu/drm/via/via_dmablit.c index 694b9954cbbc..ba33cf679180 100644 --- a/drivers/gpu/drm/via/via_dmablit.c +++ b/drivers/gpu/drm/via/via_dmablit.c | |||
@@ -217,7 +217,7 @@ via_fire_dmablit(struct drm_device *dev, drm_via_sg_info_t *vsg, int engine) | |||
217 | VIA_WRITE(VIA_PCI_DMA_MR0 + engine*0x04, VIA_DMA_MR_CM | VIA_DMA_MR_TDIE); | 217 | VIA_WRITE(VIA_PCI_DMA_MR0 + engine*0x04, VIA_DMA_MR_CM | VIA_DMA_MR_TDIE); |
218 | VIA_WRITE(VIA_PCI_DMA_BCR0 + engine*0x10, 0); | 218 | VIA_WRITE(VIA_PCI_DMA_BCR0 + engine*0x10, 0); |
219 | VIA_WRITE(VIA_PCI_DMA_DPR0 + engine*0x10, vsg->chain_start); | 219 | VIA_WRITE(VIA_PCI_DMA_DPR0 + engine*0x10, vsg->chain_start); |
220 | DRM_WRITEMEMORYBARRIER(); | 220 | wmb(); |
221 | VIA_WRITE(VIA_PCI_DMA_CSR0 + engine*0x04, VIA_DMA_CSR_DE | VIA_DMA_CSR_TS); | 221 | VIA_WRITE(VIA_PCI_DMA_CSR0 + engine*0x04, VIA_DMA_CSR_DE | VIA_DMA_CSR_TS); |
222 | VIA_READ(VIA_PCI_DMA_CSR0 + engine*0x04); | 222 | VIA_READ(VIA_PCI_DMA_CSR0 + engine*0x04); |
223 | } | 223 | } |
diff --git a/include/drm/drm_os_linux.h b/include/drm/drm_os_linux.h index 2953b1d83022..43008938b6b2 100644 --- a/include/drm/drm_os_linux.h +++ b/include/drm/drm_os_linux.h | |||
@@ -35,19 +35,12 @@ static inline void writeq(u64 val, void __iomem *reg) | |||
35 | #define DRM_WRITE16(map, offset, val) writew(val, ((void __iomem *)(map)->handle) + (offset)) | 35 | #define DRM_WRITE16(map, offset, val) writew(val, ((void __iomem *)(map)->handle) + (offset)) |
36 | /** Write a dword into a MMIO region */ | 36 | /** Write a dword into a MMIO region */ |
37 | #define DRM_WRITE32(map, offset, val) writel(val, ((void __iomem *)(map)->handle) + (offset)) | 37 | #define DRM_WRITE32(map, offset, val) writel(val, ((void __iomem *)(map)->handle) + (offset)) |
38 | /** Read memory barrier */ | ||
39 | 38 | ||
40 | /** Read a qword from a MMIO region - be careful using these unless you really understand them */ | 39 | /** Read a qword from a MMIO region - be careful using these unless you really understand them */ |
41 | #define DRM_READ64(map, offset) readq(((void __iomem *)(map)->handle) + (offset)) | 40 | #define DRM_READ64(map, offset) readq(((void __iomem *)(map)->handle) + (offset)) |
42 | /** Write a qword into a MMIO region */ | 41 | /** Write a qword into a MMIO region */ |
43 | #define DRM_WRITE64(map, offset, val) writeq(val, ((void __iomem *)(map)->handle) + (offset)) | 42 | #define DRM_WRITE64(map, offset, val) writeq(val, ((void __iomem *)(map)->handle) + (offset)) |
44 | 43 | ||
45 | #define DRM_READMEMORYBARRIER() rmb() | ||
46 | /** Write memory barrier */ | ||
47 | #define DRM_WRITEMEMORYBARRIER() wmb() | ||
48 | /** Read/write memory barrier */ | ||
49 | #define DRM_MEMORYBARRIER() mb() | ||
50 | |||
51 | #define DRM_WAIT_ON( ret, queue, timeout, condition ) \ | 44 | #define DRM_WAIT_ON( ret, queue, timeout, condition ) \ |
52 | do { \ | 45 | do { \ |
53 | DECLARE_WAITQUEUE(entry, current); \ | 46 | DECLARE_WAITQUEUE(entry, current); \ |