Lines Matching refs:dev

50 int i915_wait_ring(drm_device_t * dev, int n, const char *caller)
52 drm_i915_private_t *dev_priv = dev->dev_private;
55 u32 acthd_reg = IS_I965G(dev) ? ACTHD_I965 : ACTHD;
83 int i915_init_hardware_status(drm_device_t *dev)
85 drm_i915_private_t *dev_priv = dev->dev_private;
89 dmah = drm_pci_alloc(dev, PAGE_SIZE, PAGE_SIZE, 0xffffffff,1);
109 void i915_free_hardware_status(drm_device_t *dev)
111 drm_i915_private_t *dev_priv = dev->dev_private;
112 if (!I915_NEED_GFX_HWS(dev)) {
115 drm_pci_free(dev, dev_priv->status_page_dmah);
124 drm_core_ioremapfree(&dev_priv->hws_map, dev);
131 void i915_kernel_lost_context(drm_device_t * dev)
133 drm_i915_private_t *dev_priv = dev->dev_private;
144 static int i915_dma_cleanup(drm_device_t * dev)
147 (drm_i915_private_t *) dev->dev_private;
153 if (dev->irq_enabled)
154 (void) drm_irq_uninstall(dev);
157 drm_core_ioremapfree(&dev_priv->ring.map, dev);
164 if (I915_NEED_GFX_HWS(dev))
166 i915_free_hardware_status(dev);
174 static int i915_initialize(drm_device_t * dev,
178 (drm_i915_private_t *)dev->dev_private;
183 dev->dev_private = (void *)dev_priv;
184 (void) i915_dma_cleanup(dev);
194 (void) i915_dma_cleanup(dev);
209 drm_core_ioremap(&dev_priv->ring.map, dev);
212 (void) i915_dma_cleanup(dev);
232 static int i915_dma_resume(drm_device_t * dev)
234 drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private;
254 if (!I915_NEED_GFX_HWS(dev))
274 retcode = i915_initialize(dev, &init);
277 retcode = i915_dma_cleanup(dev);
280 retcode = i915_dma_resume(dev);
370 static int i915_emit_cmds(drm_device_t * dev, int __user * buffer, int dwords)
372 drm_i915_private_t *dev_priv = dev->dev_private;
414 int i915_emit_box(drm_device_t * dev,
418 drm_i915_private_t *dev_priv = dev->dev_private;
433 if (IS_I965G(dev)) {
458 void i915_emit_breadcrumb(drm_device_t *dev)
460 drm_i915_private_t *dev_priv = dev->dev_private;
479 static int i915_dispatch_cmdbuffer(drm_device_t * dev,
490 i915_kernel_lost_context(dev);
496 ret = i915_emit_box(dev, cmd->cliprects, i,
502 ret = i915_emit_cmds(dev, (int __user *)(void *)cmd->buf, cmd->sz / 4);
507 i915_emit_breadcrumb( dev );
511 static int i915_dispatch_batchbuffer(drm_device_t * dev,
514 drm_i915_private_t *dev_priv = dev->dev_private;
525 i915_kernel_lost_context(dev);
531 int ret = i915_emit_box(dev, boxes, i,
537 if (IS_I830(dev) || IS_845G(dev)) {
546 if (IS_I965G(dev)) {
557 i915_emit_breadcrumb( dev );
562 static int i915_dispatch_flip(struct drm_device * dev, int planes)
564 drm_i915_private_t *dev_priv = dev->dev_private;
573 i915_kernel_lost_context(dev);
611 static int i915_quiescent(drm_device_t * dev)
613 drm_i915_private_t *dev_priv = dev->dev_private;
615 i915_kernel_lost_context(dev);
616 ret = i915_wait_ring(dev, dev_priv->ring.Size - 8, __FUNCTION__);
620 i915_kernel_lost_context (dev);
635 LOCK_TEST_WITH_RETURN(dev, fpriv);
637 spin_lock(&dev->struct_mutex);
638 ret = i915_quiescent(dev);
639 spin_unlock(&dev->struct_mutex);
648 drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private;
679 LOCK_TEST_WITH_RETURN(dev, fpriv);
689 spin_lock(&dev->struct_mutex);
690 ret = i915_dispatch_batchbuffer(dev, &batch);
691 spin_unlock(&dev->struct_mutex);
701 drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private;
728 LOCK_TEST_WITH_RETURN(dev, fpriv);
740 spin_lock(&dev->struct_mutex);
741 ret = i915_dispatch_cmdbuffer(dev, &cmdbuf);
742 spin_unlock(&dev->struct_mutex);
763 LOCK_TEST_WITH_RETURN(dev, fpriv);
765 spin_lock(&dev->struct_mutex);
766 ret = i915_dispatch_flip(dev, param.pipes);
767 spin_unlock(&dev->struct_mutex);
775 drm_i915_private_t *dev_priv = dev->dev_private;
799 value = dev->irq_enabled ? 1 : 0;
808 value = dev->pci_device;
811 value = dev->driver->use_gem;
829 drm_i915_private_t *dev_priv = dev->dev_private;
861 drm_i915_private_t *dev_priv = dev->dev_private;
864 if (!I915_NEED_GFX_HWS(dev))
879 (u_offset_t)dev->agp->agp_info.agpi_aperbase + hws.addr;
887 drm_core_ioremap(&dev_priv->hws_map, dev);
889 dev->dev_private = (void *)dev_priv;
890 (void) i915_dma_cleanup(dev);
907 int i915_driver_load(drm_device_t *dev, unsigned long flags)
911 int ret = 0, mmio_bar = IS_I9XX(dev) ? 0 : 1;
914 dev->counters += 4;
915 dev->types[6] = _DRM_STAT_IRQ;
916 dev->types[7] = _DRM_STAT_PRIMARY;
917 dev->types[8] = _DRM_STAT_SECONDARY;
918 dev->types[9] = _DRM_STAT_DMA;
925 dev->dev_private = (void *)dev_priv;
926 dev_priv->dev = dev;
930 base = drm_get_resource_start(dev, mmio_bar);
931 size = drm_get_resource_len(dev, mmio_bar);
937 (void) drm_ioremap(dev, dev_priv->mmio_map);
942 dev->driver->use_gem = 0;
944 if (IS_I965G(dev)) {
945 dev->driver->use_gem = 1;
947 dev->driver->use_gem = 0;
951 dev->driver->get_vblank_counter = i915_get_vblank_counter;
952 dev->max_vblank_count = 0xffffff; /* only 24 bits of frame count */
954 if (IS_G4X(dev) || IS_IGDNG(dev) || IS_GM45(dev))
956 if (IS_G4X(dev) || IS_IGDNG(dev))
959 dev->max_vblank_count = 0xffffffff; /* full 32 bit counter */
960 dev->driver->get_vblank_counter = gm45_get_vblank_counter;
965 i915_gem_load(dev);
968 if (!I915_NEED_GFX_HWS(dev)) {
969 ret = i915_init_hardware_status(dev);
977 ret = drm_vblank_init(dev, I915_NUM_PIPE);
979 (void) i915_driver_unload(dev);
986 int i915_driver_unload(struct drm_device *dev)
988 drm_i915_private_t *dev_priv = dev->dev_private;
990 i915_free_hardware_status(dev);
992 drm_rmmap(dev, dev_priv->mmio_map);
996 drm_free(dev->dev_private, sizeof(drm_i915_private_t),
998 dev->dev_private = NULL;
1004 int i915_driver_open(drm_device_t * dev, struct drm_file *file_priv)
1023 void i915_driver_lastclose(drm_device_t * dev)
1025 drm_i915_private_t *dev_priv = dev->dev_private;
1032 i915_gem_lastclose(dev);
1038 (void) i915_dma_cleanup(dev);
1041 void i915_driver_preclose(drm_device_t * dev, drm_file_t *fpriv)
1043 drm_i915_private_t *dev_priv = dev->dev_private;
1044 i915_mem_release(dev, fpriv, dev_priv->agp_heap);
1048 void i915_driver_postclose(drm_device_t * dev, struct drm_file *file_priv)
1136 * \param dev The device to be tested.
1142 int i915_driver_device_is_agp(drm_device_t * dev)