linux/drivers/char/drm
Benjamin Herrenschmidt 6876b3baca drm: fix for non-coherent DMA PowerPC
This patch fixes bits of the DRM so to make the radeon DRI work on
non-cache coherent PCI DMA variants of the PowerPC processors.

It moves the few places that needs change to wrappers to that
other architectures with similar issues can easily add their
own changes to those wrappers, at least until we have more useful
generic kernel API.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: "Luck, Tony" <tony.luck@intel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Dave Airlie <airlied@linux.ie>
2008-03-30 07:57:57 +10:00
..
ati_pcigart.c drm: fix for non-coherent DMA PowerPC 2008-03-30 07:57:57 +10:00
drm_agpsupport.c drm: Initialize the AGP structure's base address at init rather than enable. 2008-02-07 15:09:38 +10:00
drm_auth.c drm: Replace DRM_IOCTL_ARGS with (dev, data, file_priv) and remove DRM_DEVICE. 2007-10-15 10:38:20 +10:00
drm_bufs.c drm: fd.o bug #11895: Only add the AGP base to map offset if the caller didn't. 2008-02-07 15:09:38 +10:00
drm_context.c drm: run cleanfile across drm tree 2008-02-07 15:09:38 +10:00
drm_core.h drm: add support for secondary vertical blank interrupt to DRM core 2006-12-07 15:53:28 +11:00
drm_dma.c drm: Replace filp in ioctl arguments with drm_file *file_priv. 2007-10-15 10:38:20 +10:00
drm_drawable.c drm: Replace DRM_IOCTL_ARGS with (dev, data, file_priv) and remove DRM_DEVICE. 2007-10-15 10:38:20 +10:00
drm_drv.c drm: fixup some of the ioctl function exit paths 2008-02-07 15:12:00 +10:00
drm_fops.c drm: Fix race that can lockup the kernel 2008-03-17 09:54:58 +10:00
drm_hashtab.c drm: run cleanfile across drm tree 2008-02-07 15:09:38 +10:00
drm_hashtab.h drm: run cleanfile across drm tree 2008-02-07 15:09:38 +10:00
drm_ioc32.c drm: Fix ioc32 compat layer 2008-02-07 15:09:39 +10:00
drm_ioctl.c drm: Make DRM_IOCTL_GET_CLIENT return EINVAL when it can't find client #idx. 2008-02-07 15:09:39 +10:00
drm_irq.c drm: cleanup DRM_DEBUG() parameters 2008-02-07 15:09:39 +10:00
drm_lock.c drm: Fix race that can lockup the kernel 2008-03-17 09:54:58 +10:00
drm_memory_debug.h drm: remove drm_ioremap and drm_ioremapfree 2007-02-08 13:24:26 +11:00
drm_memory.c drm: run cleanfile across drm tree 2008-02-07 15:09:38 +10:00
drm_memory.h drm: remove drm_ioremap and drm_ioremapfree 2007-02-08 13:24:26 +11:00
drm_mm.c drm: run cleanfile across drm tree 2008-02-07 15:09:38 +10:00
drm_os_linux.h drm: run cleanfile across drm tree 2008-02-07 15:09:38 +10:00
drm_pci.c Convert files to UTF-8 and some cleanups 2007-10-19 23:21:04 +02:00
drm_pciids.h drm/radeon: fixup RV550 chip family 2008-03-17 10:22:12 +10:00
drm_proc.c drm: some minor cleanups and changes to make memory manager merging easier. 2008-02-07 15:09:38 +10:00
drm_sarea.h drm: run cleanfile across drm tree 2008-02-07 15:09:38 +10:00
drm_scatter.c drm: fix for non-coherent DMA PowerPC 2008-03-30 07:57:57 +10:00
drm_sman.c Convert files to UTF-8 and some cleanups 2007-10-19 23:21:04 +02:00
drm_sman.h Convert files to UTF-8 and some cleanups 2007-10-19 23:21:04 +02:00
drm_stub.c drm: the drm really should call pci_set_master.. 2008-02-07 15:09:40 +10:00
drm_sysfs.c drm: add support for passing state into the suspend hooks. 2008-02-20 10:05:12 +10:00
drm_vm.c drm: fix for non-coherent DMA PowerPC 2008-03-30 07:57:57 +10:00
drm.h drm: add _DRM_DRIVER flag, and re-order unload. 2008-02-07 15:09:39 +10:00
drmP.h drm/ati_pcigart: fix the PCIGART to use drm_pci to allocate GART table. 2008-03-17 10:24:24 +10:00
i810_dma.c drm: cleanup DRM_DEBUG() parameters 2008-02-07 15:09:39 +10:00
i810_drm.h drm: remove XFREE86_VERSION macros. 2007-10-15 10:38:20 +10:00
i810_drv.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
i810_drv.h drm: cleanup DRM_DEBUG() parameters 2008-02-07 15:09:39 +10:00
i830_dma.c Final removal of FASTCALL()/fastcall 2008-02-13 16:21:18 -08:00
i830_drm.h drm: run cleanfile across drm tree 2008-02-07 15:09:38 +10:00
i830_drv.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
i830_drv.h drm: cleanup DRM_DEBUG() parameters 2008-02-07 15:09:39 +10:00
i830_irq.c drm: run cleanfile across drm tree 2008-02-07 15:09:38 +10:00
i915_dma.c drm/i915: fix oops on agp=off 2008-03-30 07:53:58 +10:00
i915_drm.h drm: remove a bunch of typedefs on the userspace interface 2007-07-11 15:27:12 +10:00
i915_drv.c i915: fix AR register restore. 2008-02-22 16:50:29 -08:00
i915_drv.h drm/i915 more registers for S3 (DSPCLK_GATE_D, CACHE_MODE_0, MI_ARB_STATE) 2008-02-20 09:43:43 +10:00
i915_ioc32.c [PATCH] struct path: convert drm 2006-12-08 08:28:44 -08:00
i915_irq.c drm: cleanup DRM_DEBUG() parameters 2008-02-07 15:09:39 +10:00
i915_mem.c drm: cleanup DRM_DEBUG() parameters 2008-02-07 15:09:39 +10:00
Kconfig drm: run cleanfile across drm tree 2008-02-07 15:09:38 +10:00
Makefile drm: run cleanfile across drm tree 2008-02-07 15:09:38 +10:00
mga_dma.c drm: cleanup DRM_DEBUG() parameters 2008-02-07 15:09:39 +10:00
mga_drm.h drm: fixup other drivers for typedef removals 2007-07-11 16:09:54 +10:00
mga_drv.c drm: fixup other drivers for typedef removals 2007-07-11 16:09:54 +10:00
mga_drv.h drm: cleanup DRM_DEBUG() parameters 2008-02-07 15:09:39 +10:00
mga_ioc32.c [PATCH] struct path: convert drm 2006-12-08 08:28:44 -08:00
mga_irq.c drm: fixup other drivers for typedef removals 2007-07-11 16:09:54 +10:00
mga_state.c drm: cleanup DRM_DEBUG() parameters 2008-02-07 15:09:39 +10:00
mga_ucode.h drm: lindent the drm directory. 2005-09-25 14:28:13 +10:00
mga_warp.c drm: Remove DRM_ERR OS macro. 2007-10-15 10:38:19 +10:00
r128_cce.c drm/ati_pcigart: fix the PCIGART to use drm_pci to allocate GART table. 2008-03-17 10:24:24 +10:00
r128_drm.h drm: remove XFREE86_VERSION macros. 2007-10-15 10:38:20 +10:00
r128_drv.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
r128_drv.h drm: cleanup DRM_DEBUG() parameters 2008-02-07 15:09:39 +10:00
r128_ioc32.c [PATCH] struct path: convert drm 2006-12-08 08:28:44 -08:00
r128_irq.c drm: fixup other drivers for typedef removals 2007-07-11 16:09:54 +10:00
r128_state.c drm: cleanup DRM_DEBUG() parameters 2008-02-07 15:09:39 +10:00
r300_cmdbuf.c drm/r300: fix bug in r300 userspace hardware wait emission 2008-03-30 07:51:49 +10:00
r300_reg.h drm: run cleanfile across drm tree 2008-02-07 15:09:38 +10:00
radeon_cp.c drm/ati_pcigart: fix the PCIGART to use drm_pci to allocate GART table. 2008-03-17 10:24:24 +10:00
radeon_drm.h drm/r300: fix bug in r300 userspace hardware wait emission 2008-03-30 07:51:49 +10:00
radeon_drv.c radeon: add support for vblank on crtc2 2007-07-11 12:16:01 +10:00
radeon_drv.h drm/radeon: add initial rs690 support to drm. 2008-02-20 09:35:42 +10:00
radeon_ioc32.c fix radeon setparam on 32/64 systems, harder. 2007-06-16 09:39:05 -07:00
radeon_irq.c drm: cleanup DRM_DEBUG() parameters 2008-02-07 15:09:39 +10:00
radeon_mem.c drm: radeon: fix sparse integer as NULL pointer warnings in radeon_mem.c 2008-03-30 07:56:39 +10:00
radeon_state.c drm: add initial r500 drm support 2008-02-07 15:13:40 +10:00
README.drm drm: run cleanfile across drm tree 2008-02-07 15:09:38 +10:00
savage_bci.c drm: remove remnants of DRM_COPY_FROM/TO_USER_IOCTL 2007-11-06 10:11:12 +10:00
savage_drm.h drm: fixup other drivers for typedef removals 2007-07-11 16:09:54 +10:00
savage_drv.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
savage_drv.h drm: Replace DRM_IOCTL_ARGS with (dev, data, file_priv) and remove DRM_DEVICE. 2007-10-15 10:38:20 +10:00
savage_state.c drm: run cleanfile across drm tree 2008-02-07 15:09:38 +10:00
sis_drm.h drm: bring sis + tdfx up to latest CVS 2006-01-02 14:44:12 +11:00
sis_drv.c drm: Remove DRM_ERR OS macro. 2007-10-15 10:38:19 +10:00
sis_drv.h drm: Replace DRM_IOCTL_ARGS with (dev, data, file_priv) and remove DRM_DEVICE. 2007-10-15 10:38:20 +10:00
sis_mm.c drm: cleanup DRM_DEBUG() parameters 2008-02-07 15:09:39 +10:00
tdfx_drv.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
tdfx_drv.h drm: bring sis + tdfx up to latest CVS 2006-01-02 14:44:12 +11:00
via_3d_reg.h drm: lindent the drm directory. 2005-09-25 14:28:13 +10:00
via_dma.c drm/via: attempt again to stabilise the AGP DMA command submission. 2008-03-17 10:07:20 +10:00
via_dmablit.c drm/via: attempt again to stabilise the AGP DMA command submission. 2008-03-17 10:07:20 +10:00
via_dmablit.h drm: run cleanfile across drm tree 2008-02-07 15:09:38 +10:00
via_drm.h drm: run cleanfile across drm tree 2008-02-07 15:09:38 +10:00
via_drv.c drm: run cleanfile across drm tree 2008-02-07 15:09:38 +10:00
via_drv.h drm: Replace DRM_IOCTL_ARGS with (dev, data, file_priv) and remove DRM_DEVICE. 2007-10-15 10:38:20 +10:00
via_irq.c drm: cleanup DRM_DEBUG() parameters 2008-02-07 15:09:39 +10:00
via_map.c drm: cleanup DRM_DEBUG() parameters 2008-02-07 15:09:39 +10:00
via_mm.c drm: cleanup DRM_DEBUG() parameters 2008-02-07 15:09:39 +10:00
via_verifier.c drm: Remove DRM_ERR OS macro. 2007-10-15 10:38:19 +10:00
via_verifier.h Convert files to UTF-8 and some cleanups 2007-10-19 23:21:04 +02:00
via_video.c drm: cleanup DRM_DEBUG() parameters 2008-02-07 15:09:39 +10:00

************************************************************
* For the very latest on DRI development, please see:      *
*     http://dri.freedesktop.org/                          *
************************************************************

The Direct Rendering Manager (drm) is a device-independent kernel-level
device driver that provides support for the XFree86 Direct Rendering
Infrastructure (DRI).

The DRM supports the Direct Rendering Infrastructure (DRI) in four major
ways:

    1. The DRM provides synchronized access to the graphics hardware via
       the use of an optimized two-tiered lock.

    2. The DRM enforces the DRI security policy for access to the graphics
       hardware by only allowing authenticated X11 clients access to
       restricted regions of memory.

    3. The DRM provides a generic DMA engine, complete with multiple
       queues and the ability to detect the need for an OpenGL context
       switch.

    4. The DRM is extensible via the use of small device-specific modules
       that rely extensively on the API exported by the DRM module.


Documentation on the DRI is available from:
    http://dri.freedesktop.org/wiki/Documentation
    http://sourceforge.net/project/showfiles.php?group_id=387
    http://dri.sourceforge.net/doc/

For specific information about kernel-level support, see:

    The Direct Rendering Manager, Kernel Support for the Direct Rendering
    Infrastructure
    http://dri.sourceforge.net/doc/drm_low_level.html

    Hardware Locking for the Direct Rendering Infrastructure
    http://dri.sourceforge.net/doc/hardware_locking_low_level.html

    A Security Analysis of the Direct Rendering Infrastructure
    http://dri.sourceforge.net/doc/security_low_level.html