summaryrefslogtreecommitdiff
path: root/shared-core
AgeCommit message (Expand)Author
2005-11-16Fixed long standing 64-bit bug in via memory manager. Bumped via date andThomas Hellstrom
2005-11-15Loosen via dmablit alignment checks somewhat. Adapt stride check to maximumThomas Hellstrom
2005-11-11enable i915 32/64 bit ioctlsDave Airlie
2005-11-11RV200 < R200Dave Airlie
2005-11-11fix up radeon whitespaceDave Airlie
2005-11-11mixing breaks in r128 driver.. fixed in kernelDave Airlie
2005-11-11remove extra spacesDave Airlie
2005-11-11cleanup ioctl/max_ioctl to use header file for extern symbolsDave Airlie
2005-11-08Correct a LOR issue on FreeBSD by allocating temporary space and doing aEric Anholt
2005-11-08Initial port of savage to FreeBSD for the AGP and !ShadowStatus case. AddsEric Anholt
2005-11-08Correct a LOR on FreeBSD by allocating a temporary buffer and doing aEric Anholt
2005-11-08Fix FreeBSD DRM for latest MGA changes to agp support, which cleans thingsEric Anholt
2005-11-08Catch FreeBSD up to the pcie gart changes. Required minor modification toEric Anholt
2005-11-03Converts the remaining drm_agp_foo functions to be a drm_agp_foo andIan Romanick
2005-10-22via: Sync via_drm.h with 3D driver. Bump via patchlevel and date.Thomas Hellstrom
2005-10-20fix G550 cardsDave Airlie
2005-10-20via and r300 still need installed reg headers.Adam Jackson
2005-10-20via: PCI DMA bugfixes and DOS due to too many mapped pages checks.Thomas Hellstrom
2005-10-20dma access also needs some workDave Airlie
2005-10-20the old init path needs to set WAGP_ENABLE by defaultDave Airlie
2005-10-14Doig a full clean up from mga_do_dma_bootstrap whenIan Romanick
2005-10-14Fixed a cut-and-paste bug that could cause an oops in mga_do_cleanup_dmaIan Romanick
2005-10-13Add X300 RV370Dave Airlie
2005-10-06Skeleton nv drm driver, to enable DMA in EXA. (Lars Knoll, minor updates byAdam Jackson
2005-09-30Add support to turn writeback off via radeon module optionDave Airlie
2005-09-30fix pci overriding from userspaceDave Airlie
2005-09-25Add the via PCI DMA blit code.Thomas Hellstrom
2005-09-25hopefully fix server recycling on PCIEDave Airlie
2005-09-12add some pci express chipsDave Airlie
2005-09-12make PCI Express work on 64-bit machines, thanks to Alex Deucher (agd5f)Dave Airlie
2005-09-11Add GART in FB support for ati pcigart, and PCIE support for r300Dave Airlie
2005-09-09Add support for GL_ATI_fragment_shader, new packets R200_EMIT_PP_AFS_0/1,Roland Scheidegger
2005-09-09Add another R300 PCI id. Submitted by: Daniel EstévezVladimir Dergachev
2005-09-03convert ioctl flags to use flags instead of separate intsDave Airlie
2005-08-26- Don't try to allocate mappings of less than a PAGE_SIZE in MGA DMA code.Eric Anholt
2005-08-25Add missing .cvsignore files for autotoolery.Eric Anholt
2005-08-22remove i915_pm code as it causes too many issues with current softwareAlan Hourihane
2005-08-21We don't need to install all the internal headers files only drm.h andDave Airlie
2005-08-20Fix silly install issue by moving the header install rules for shared-coreAdam Jackson
2005-08-17commit toggle switch to make Linux drm_handle_t unsigned intDave Airlie
2005-08-16add Egberts 32/64 bit patch (its in kernel already...)Dave Airlie
2005-08-15Port the VIA DRM to FreeBSD. Original patch by Jake, with some cleanup byEric Anholt
2005-08-14VIA bugvixes by Joris van Rantwijk Initial commit.Thomas Hellstrom
2005-08-12Reverting the previous via security-fix commit, since the assumption ofThomas Hellstrom
2005-08-10Security fix on via: Checking that the specified context belongs to theThomas Hellstrom
2005-08-09Make sure savage has 3rd ioctl parameterJon Smirl
2005-08-07make some functions static in the savage drm driverDave Airlie
2005-08-07fix ioctl in r128 drm direction from Egbert Eich.Dave Airlie
2005-08-05Rename the driver hooks in the DRM to something a little moreEric Anholt
2005-08-04Mark some radeon init variables deprecated. These used to be passed in butJon Smirl
an> 0; dev_priv->sarea_priv->perf_boxes |= I830_BOX_WAIT; add_wait_queue(&dev_priv->irq_queue, &entry); for (;;) { current->state = TASK_INTERRUPTIBLE; if (atomic_read(&dev_priv->irq_received) >= irq_nr) break; if ((signed)(end - jiffies) <= 0) { DRM_ERROR("timeout iir %x imr %x ier %x hwstam %x\n", I830_READ16(I830REG_INT_IDENTITY_R), I830_READ16(I830REG_INT_MASK_R), I830_READ16(I830REG_INT_ENABLE_R), I830_READ16(I830REG_HWSTAM)); ret = -EBUSY; /* Lockup? Missed irq? */ break; } schedule_timeout(HZ * 3); if (signal_pending(current)) { ret = -EINTR; break; } } current->state = TASK_RUNNING; remove_wait_queue(&dev_priv->irq_queue, &entry); return ret; } /* Needs the lock as it touches the ring. */ int i830_irq_emit(struct inode *inode, struct file *filp, unsigned int cmd, unsigned long arg) { drm_file_t *priv = filp->private_data; drm_device_t *dev = priv->head->dev; drm_i830_private_t *dev_priv = dev->dev_private; drm_i830_irq_emit_t emit; int result; LOCK_TEST_WITH_RETURN(dev, filp); if (!dev_priv) { DRM_ERROR("%s called with no initialization\n", __FUNCTION__); return -EINVAL; } if (copy_from_user (&emit, (drm_i830_irq_emit_t __user *) arg, sizeof(emit))) return -EFAULT; result = i830_emit_irq(dev); if (copy_to_user(emit.irq_seq, &result, sizeof(int))) { DRM_ERROR("copy_to_user\n"); return -EFAULT; } return 0; } /* Doesn't need the hardware lock. */ int i830_irq_wait(struct inode *inode, struct file *filp, unsigned int cmd, unsigned long arg) { drm_file_t *priv = filp->private_data; drm_device_t *dev = priv->head->dev; drm_i830_private_t *dev_priv = dev->dev_private; drm_i830_irq_wait_t irqwait; if (!dev_priv) { DRM_ERROR("%s called with no initialization\n", __FUNCTION__); return -EINVAL; } if (copy_from_user(&irqwait, (drm_i830_irq_wait_t __user *) arg, sizeof(irqwait))) return -EFAULT; return i830_wait_irq(dev, irqwait.irq_seq); } /* drm_dma.h hooks */ void i830_driver_irq_preinstall(drm_device_t * dev) { drm_i830_private_t *dev_priv = (drm_i830_private_t *) dev->dev_private; I830_WRITE16(I830REG_HWSTAM, 0xffff); I830_WRITE16(I830REG_INT_MASK_R, 0x0); I830_WRITE16(I830REG_INT_ENABLE_R, 0x0); atomic_set(&dev_priv->irq_received, 0); atomic_set(&dev_priv->irq_emitted, 0); init_waitqueue_head(&dev_priv->irq_queue); } void i830_driver_irq_postinstall(drm_device_t * dev) { drm_i830_private_t *dev_priv = (drm_i830_private_t *) dev->dev_private; I830_WRITE16(I830REG_INT_ENABLE_R, 0x2); } void i830_driver_irq_uninstall(drm_device_t * dev) { drm_i830_private_t *dev_priv = (drm_i830_private_t *) dev->dev_private; if (!dev_priv) return; I830_WRITE16(I830REG_INT_MASK_R, 0xffff); I830_WRITE16(I830REG_INT_ENABLE_R, 0x0); }