aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i830/i830_drv.h
diff options
context:
space:
mode:
authorJiri Kosina <jkosina@suse.cz>2010-08-10 07:22:08 -0400
committerJiri Kosina <jkosina@suse.cz>2010-08-10 07:22:08 -0400
commitfb8231a8b139035476f2a8aaac837d0099b66dad (patch)
tree2875806beb96ea0cdab292146767a5085721dc6a /drivers/gpu/drm/i830/i830_drv.h
parent426d31071ac476ea62c62656b242930c17b58c00 (diff)
parentf6cec0ae58c17522a7bc4e2f39dae19f199ab534 (diff)
Merge branch 'master' into for-next
Conflicts: arch/arm/mach-omap1/board-nokia770.c
Diffstat (limited to 'drivers/gpu/drm/i830/i830_drv.h')
-rw-r--r--drivers/gpu/drm/i830/i830_drv.h49
1 files changed, 26 insertions, 23 deletions
diff --git a/drivers/gpu/drm/i830/i830_drv.h b/drivers/gpu/drm/i830/i830_drv.h
index da82afe4ded5..0df1c720560b 100644
--- a/drivers/gpu/drm/i830/i830_drv.h
+++ b/drivers/gpu/drm/i830/i830_drv.h
@@ -122,6 +122,7 @@ typedef struct drm_i830_private {
122 122
123} drm_i830_private_t; 123} drm_i830_private_t;
124 124
125long i830_ioctl(struct file *file, unsigned int cmd, unsigned long arg);
125extern struct drm_ioctl_desc i830_ioctls[]; 126extern struct drm_ioctl_desc i830_ioctls[];
126extern int i830_max_ioctl; 127extern int i830_max_ioctl;
127 128
@@ -132,33 +133,33 @@ extern int i830_irq_wait(struct drm_device *dev, void *data,
132 struct drm_file *file_priv); 133 struct drm_file *file_priv);
133 134
134extern irqreturn_t i830_driver_irq_handler(DRM_IRQ_ARGS); 135extern irqreturn_t i830_driver_irq_handler(DRM_IRQ_ARGS);
135extern void i830_driver_irq_preinstall(struct drm_device * dev); 136extern void i830_driver_irq_preinstall(struct drm_device *dev);
136extern void i830_driver_irq_postinstall(struct drm_device * dev); 137extern void i830_driver_irq_postinstall(struct drm_device *dev);
137extern void i830_driver_irq_uninstall(struct drm_device * dev); 138extern void i830_driver_irq_uninstall(struct drm_device *dev);
138extern int i830_driver_load(struct drm_device *, unsigned long flags); 139extern int i830_driver_load(struct drm_device *, unsigned long flags);
139extern void i830_driver_preclose(struct drm_device * dev, 140extern void i830_driver_preclose(struct drm_device *dev,
140 struct drm_file *file_priv); 141 struct drm_file *file_priv);
141extern void i830_driver_lastclose(struct drm_device * dev); 142extern void i830_driver_lastclose(struct drm_device *dev);
142extern void i830_driver_reclaim_buffers_locked(struct drm_device * dev, 143extern void i830_driver_reclaim_buffers_locked(struct drm_device *dev,
143 struct drm_file *file_priv); 144 struct drm_file *file_priv);
144extern int i830_driver_dma_quiescent(struct drm_device * dev); 145extern int i830_driver_dma_quiescent(struct drm_device *dev);
145extern int i830_driver_device_is_agp(struct drm_device * dev); 146extern int i830_driver_device_is_agp(struct drm_device *dev);
146 147
147#define I830_READ(reg) DRM_READ32(dev_priv->mmio_map, reg) 148#define I830_READ(reg) DRM_READ32(dev_priv->mmio_map, reg)
148#define I830_WRITE(reg,val) DRM_WRITE32(dev_priv->mmio_map, reg, val) 149#define I830_WRITE(reg, val) DRM_WRITE32(dev_priv->mmio_map, reg, val)
149#define I830_READ16(reg) DRM_READ16(dev_priv->mmio_map, reg) 150#define I830_READ16(reg) DRM_READ16(dev_priv->mmio_map, reg)
150#define I830_WRITE16(reg,val) DRM_WRITE16(dev_priv->mmio_map, reg, val) 151#define I830_WRITE16(reg, val) DRM_WRITE16(dev_priv->mmio_map, reg, val)
151 152
152#define I830_VERBOSE 0 153#define I830_VERBOSE 0
153 154
154#define RING_LOCALS unsigned int outring, ringmask, outcount; \ 155#define RING_LOCALS unsigned int outring, ringmask, outcount; \
155 volatile char *virt; 156 volatile char *virt;
156 157
157#define BEGIN_LP_RING(n) do { \ 158#define BEGIN_LP_RING(n) do { \
158 if (I830_VERBOSE) \ 159 if (I830_VERBOSE) \
159 printk("BEGIN_LP_RING(%d)\n", (n)); \ 160 printk("BEGIN_LP_RING(%d)\n", (n)); \
160 if (dev_priv->ring.space < n*4) \ 161 if (dev_priv->ring.space < n*4) \
161 i830_wait_ring(dev, n*4, __func__); \ 162 i830_wait_ring(dev, n*4, __func__); \
162 outcount = 0; \ 163 outcount = 0; \
163 outring = dev_priv->ring.tail; \ 164 outring = dev_priv->ring.tail; \
164 ringmask = dev_priv->ring.tail_mask; \ 165 ringmask = dev_priv->ring.tail_mask; \
@@ -166,21 +167,23 @@ extern int i830_driver_device_is_agp(struct drm_device * dev);
166} while (0) 167} while (0)
167 168
168#define OUT_RING(n) do { \ 169#define OUT_RING(n) do { \
169 if (I830_VERBOSE) printk(" OUT_RING %x\n", (int)(n)); \ 170 if (I830_VERBOSE) \
171 printk(" OUT_RING %x\n", (int)(n)); \
170 *(volatile unsigned int *)(virt + outring) = n; \ 172 *(volatile unsigned int *)(virt + outring) = n; \
171 outcount++; \ 173 outcount++; \
172 outring += 4; \ 174 outring += 4; \
173 outring &= ringmask; \ 175 outring &= ringmask; \
174} while (0) 176} while (0)
175 177
176#define ADVANCE_LP_RING() do { \ 178#define ADVANCE_LP_RING() do { \
177 if (I830_VERBOSE) printk("ADVANCE_LP_RING %x\n", outring); \ 179 if (I830_VERBOSE) \
178 dev_priv->ring.tail = outring; \ 180 printk("ADVANCE_LP_RING %x\n", outring); \
179 dev_priv->ring.space -= outcount * 4; \ 181 dev_priv->ring.tail = outring; \
180 I830_WRITE(LP_RING + RING_TAIL, outring); \ 182 dev_priv->ring.space -= outcount * 4; \
181} while(0) 183 I830_WRITE(LP_RING + RING_TAIL, outring); \
184} while (0)
182 185
183extern int i830_wait_ring(struct drm_device * dev, int n, const char *caller); 186extern int i830_wait_ring(struct drm_device *dev, int n, const char *caller);
184 187
185#define GFX_OP_USER_INTERRUPT ((0<<29)|(2<<23)) 188#define GFX_OP_USER_INTERRUPT ((0<<29)|(2<<23))
186#define GFX_OP_BREAKPOINT_INTERRUPT ((0<<29)|(1<<23)) 189#define GFX_OP_BREAKPOINT_INTERRUPT ((0<<29)|(1<<23))