summaryrefslogtreecommitdiff
path: root/shared-core
AgeCommit message (Expand)Author
2005-01-17Some code commenting concerning the FIFO & DMA engine.Jose Fonseca
2005-01-16This table is in radeon_drv.h along with the version number so remove itDave Airlie
2005-01-16The patch makes drmAddBufs/drmMapBufs can handle buffers in video memoryDave Airlie
2005-01-16Fixed a bug that prevented the driver from ever emitting triangle strips orFelix Kuehling
2005-01-15Setup MTRRs for frame buffer and aperture manually on Savage3D andFelix Kuehling
2005-01-10Only try to find the agp_buffer_map if dma_type is AGP. This is all that'sFelix Kuehling
2005-01-09Improved workaround for Savage3D DMA lockup to emit NOPs only before theFelix Kuehling
2005-01-08Fixed off-by-one error in savage_bci_wait_fifo_shadow.Felix Kuehling
2005-01-07via updates: moved the verifier state struct to dev_priv. Implemented AGPThomas Hellstrom
2005-01-07Updated via DRM with check for stray FIRE commands primitive list.Thomas Hellstrom
2005-01-06Add i915GM support Add resume functionality (must be used with later DDX)Alan Hourihane
2005-01-06via DRM: Updated the verifier to check the vertex lists more thorough. ThisThomas Hellstrom
2005-01-053D scissor regs are now managed by the DRM to iterate over clip rectsFelix Kuehling
2005-01-05Bumped driver date and minor version.Thomas Hellstrom
2005-01-05VIA update:Thomas Hellstrom
2005-01-05Fixed the DMA buffer age test. Should fix occasional "soft" lockups. BumpedFelix Kuehling
2005-01-01Completeley rewritten Savage DRM which can be considered secure (moduloFelix Kuehling
2005-01-01Added a new DRM map type _DRM_CONSISTENT for consistent PCI memory. It usesFelix Kuehling
2004-12-31VIA DRM: verifier: Added verbose palette error reporting, and support forThomas Hellstrom
2004-12-31VIA DRM: Stability enhancements and cleanups in via_dma.c Added explicitThomas Hellstrom
2004-12-21via DRM: Tightened the security for some functions of theThomas Hellstrom
2004-12-20Copy HC_ParaType_Auto change to shared-core. Bump version numbers andKeith Whitwell
2004-12-19via changes: Fixed typecasting bug in via_dma.c, and possible short-circuitThomas Hellstrom
2004-12-13VIA drm updates:Thomas Hellstrom
2004-12-08(Stephane Marchesin, me) add hyperz support to radeon drm. Only fast zRoland Scheidegger
2004-12-06Security and optimization fixes for the via drm:Thomas Hellstrom
2004-12-03Added 3D functionality to the via command verifier. Modified the viaThomas Hellstrom
2004-12-03Make 1-bit fields be unsigned (no sign bit :). sparse complains about them:Dave Airlie
2004-11-27Reworked PCI MMIO command buffer parser, and imported code from the MesaThomas Hellstrom
2004-11-11patch from bug 1803 - will try and push to kernel soonDave Airlie
2004-11-07add some more r300 pci idsDave Airlie
2004-11-06Convert more drivers for bsd-core, moving the ioctl definitions to sharedEric Anholt
2004-11-06Move radeon i2c include to top of fileJon Smirl
2004-11-06Export missing r128 ioctl symbolJon Smirl
2004-11-06Commit WIP of BSD conversion to core model. Compiles for r128, radeon, butEric Anholt
2004-11-03Fixed bug in via_dma.c. The code didn't check that the lock was held by theThomas Hellstrom
2004-11-01Reworked the jump-code in via_dma.c. The command regulator now seems toThomas Hellstrom
2004-11-01correct historic mis-attribution of copyrightKeith Whitwell
2004-10-30Some stabilizing work to the DMA ring-buffer code. Temporarily replaced theThomas Hellstrom
2004-10-16Fixed off by one errors in clipping.Ville Syrjala
2004-10-16Fixed bad formatting.Ville Syrjala
2004-10-12Via updates. Fixed unlikely but possible uint32_t overflow in ring-bufferThomas Hellstrom
2004-10-12Breakout heads into their own data structures.Jon Smirl
2004-10-10Rename fn_tbl to driver. Core driver now uses pci_driver name whichJon Smirl
2004-10-10Vladimir requested support so we can at least load r300 microcode forDave Airlie
2004-10-09cleanup VIA driver to look a bit like others before kernel mergeDave Airlie
2004-10-09Lindent the via stuff so I can include it in kernelDave Airlie
2004-10-08Changed unsigned to uint32_t in some ioctl parameters. Introduced firstThomas Hellstrom
2004-10-06Revert back to drm_order() instead of using kernel get_order(). TheJon Smirl
2004-10-02janitor-list_for_each-drivers-char-drm-radeon_memc.patch from mm kernelJon Smirl
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * */ #ifndef _I915_DRV_H_ #define _I915_DRV_H_ /* General customization: */ #define DRIVER_AUTHOR "Tungsten Graphics, Inc." #define DRIVER_NAME "i915" #define DRIVER_DESC "Intel Graphics" #define DRIVER_DATE "20070209" /* Interface history: * * 1.1: Original. * 1.2: Add Power Management * 1.3: Add vblank support * 1.4: Fix cmdbuffer path, add heap destroy * 1.5: Add vblank pipe configuration * 1.6: - New ioctl for scheduling buffer swaps on vertical blank * - Support vertical blank on secondary display pipe * 1.8: New ioctl for ARB_Occlusion_Query * 1.9: Usable page flipping and triple buffering */ #define DRIVER_MAJOR 1 #define DRIVER_MINOR 9 #define DRIVER_PATCHLEVEL 0 #if defined(__linux__) #define I915_HAVE_FENCE #define I915_HAVE_BUFFER #endif typedef struct _drm_i915_ring_buffer { int tail_mask; unsigned long Start; unsigned long End; unsigned long Size; u8 *virtual_start; int head; int tail; int space; drm_local_map_t map; } drm_i915_ring_buffer_t; struct mem_block { struct mem_block *next; struct mem_block *prev; int start; int size; DRMFILE filp; /* 0: free, -1: heap, other: real files */ }; typedef struct _drm_i915_vbl_swap { struct list_head head; drm_drawable_t drw_id; unsigned int pipe; unsigned int sequence; int flip; } drm_i915_vbl_swap_t; typedef struct drm_i915_private { drm_local_map_t *sarea; drm_local_map_t *mmio_map; drm_i915_sarea_t *sarea_priv; drm_i915_ring_buffer_t ring; drm_dma_handle_t *status_page_dmah; void *hw_status_page; dma_addr_t dma_status_page; uint32_t counter; unsigned int status_gfx_addr; drm_local_map_t hws_map; unsigned int cpp; int use_mi_batchbuffer_start; wait_queue_head_t irq_queue; atomic_t irq_received; atomic_t irq_emitted; int tex_lru_log_granularity; int allow_batchbuffer; struct mem_block *agp_heap; unsigned int sr01, adpa, ppcr, dvob, dvoc, lvds; int vblank_pipe; spinlock_t user_irq_lock; int user_irq_refcount; int fence_irq_on; uint32_t irq_enable_reg; int irq_enabled; #ifdef I915_HAVE_FENCE uint32_t flush_sequence; uint32_t flush_flags; uint32_t flush_pending; uint32_t saved_flush_status; #endif #ifdef I915_HAVE_BUFFER void *agp_iomap; #endif spinlock_t swaps_lock; drm_i915_vbl_swap_t vbl_swaps; unsigned int swaps_pending; } drm_i915_private_t; enum intel_chip_family { CHIP_I8XX = 0x01, CHIP_I9XX = 0x02, CHIP_I915 = 0x04, CHIP_I965 = 0x08, }; extern drm_ioctl_desc_t i915_ioctls[]; extern int i915_max_ioctl; /* i915_dma.c */ extern void i915_kernel_lost_context(drm_device_t * dev); extern int i915_driver_load(struct drm_device *, unsigned long flags); extern void i915_driver_lastclose(drm_device_t * dev); extern void i915_driver_preclose(drm_device_t * dev, DRMFILE filp); extern int i915_driver_device_is_agp(drm_device_t * dev); extern long i915_compat_ioctl(struct file *filp, unsigned int cmd, unsigned long arg); extern void i915_emit_breadcrumb(drm_device_t *dev); extern void i915_dispatch_flip(drm_device_t * dev, int pipes, int sync); extern int i915_emit_mi_flush(drm_device_t *dev, uint32_t flush); extern int i915_driver_firstopen(struct drm_device *dev); /* i915_irq.c */ extern int i915_irq_emit(DRM_IOCTL_ARGS); extern int i915_irq_wait(DRM_IOCTL_ARGS); extern int i915_driver_vblank_wait(drm_device_t *dev, unsigned int *sequence); extern int i915_driver_vblank_wait2(drm_device_t *dev, unsigned int *sequence); extern irqreturn_t i915_driver_irq_handler(DRM_IRQ_ARGS); extern void i915_driver_irq_preinstall(drm_device_t * dev); extern void i915_driver_irq_postinstall(drm_device_t * dev); extern void i915_driver_irq_uninstall(drm_device_t * dev); extern int i915_vblank_pipe_set(DRM_IOCTL_ARGS); extern int i915_vblank_pipe_get(DRM_IOCTL_ARGS); extern int i915_emit_irq(drm_device_t * dev); extern void i915_user_irq_on(drm_i915_private_t *dev_priv); extern void i915_user_irq_off(drm_i915_private_t *dev_priv); extern int i915_vblank_swap(DRM_IOCTL_ARGS); /* i915_mem.c */ extern int i915_mem_alloc(DRM_IOCTL_ARGS); extern int i915_mem_free(DRM_IOCTL_ARGS); extern int i915_mem_init_heap(DRM_IOCTL_ARGS); extern int i915_mem_destroy_heap(DRM_IOCTL_ARGS); extern void i915_mem_takedown(struct mem_block **heap); extern void i915_mem_release(drm_device_t * dev, DRMFILE filp, struct mem_block *heap); #ifdef I915_HAVE_FENCE /* i915_fence.c */ extern void i915_fence_handler(drm_device_t *dev); extern int i915_fence_emit_sequence(drm_device_t *dev, uint32_t class, uint32_t flags, uint32_t *sequence, uint32_t *native_type); extern void i915_poke_flush(drm_device_t *dev, uint32_t class); extern int i915_fence_has_irq(drm_device_t *dev, uint32_t class, uint32_t flags); #endif #ifdef I915_HAVE_BUFFER /* i915_buffer.c */ extern drm_ttm_backend_t *i915_create_ttm_backend_entry(drm_device_t *dev); extern int i915_fence_types(drm_buffer_object_t *bo, uint32_t *class, uint32_t *type); extern int i915_invalidate_caches(drm_device_t *dev, uint32_t buffer_flags); extern int i915_init_mem_type(drm_device_t *dev, uint32_t type, drm_mem_type_manager_t *man); extern uint32_t i915_evict_mask(drm_buffer_object_t *bo); extern int i915_move(drm_buffer_object_t *bo, int evict, int no_wait, drm_bo_mem_reg_t *new_mem); #endif #define I915_READ(reg) DRM_READ32(dev_priv->mmio_map, (reg)) #define I915_WRITE(reg,val) DRM_WRITE32(dev_priv->mmio_map, (reg), (val)) #define I915_READ16(reg) DRM_READ16(dev_priv->mmio_map, (reg)) #define I915_WRITE16(reg,val) DRM_WRITE16(dev_priv->mmio_map, (reg), (val)) #define I915_VERBOSE 0 #define RING_LOCALS unsigned int outring, ringmask, outcount; \ volatile char *virt; #define BEGIN_LP_RING(n) do { \ if (I915_VERBOSE) \