android_kernel_xiaomi_sm8350/drivers/gpu/drm
Jesse Barnes dc1336ff4f drm/i915: set vblank enabled flag correctly across IRQ install/uninstall
In the absence of kernel mode setting, many drivers disable IRQs across VT
switch.  The core DRM vblank code is missing a check for this case however;
even after IRQ disable, the vblank code will still have the vblank_enabled
flag set, so unless we track the fact that they're disabled at IRQ uninstall
time, when we VT switch back in we won't actually re-enable them, which means
any apps waiting on vblank before the switch will hang.

This patch does that and also adds a sanity check to the wait condition to
look for the irq_enabled flag in general, as well as adding a wakeup to the
IRQ uninstall path.

Fixes fdo bug #18879 with compiz hangs at VT switch.

Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Signed-off-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Dave Airlie <airlied@linux.ie>
2009-01-11 08:59:52 +10:00
..
i810
i830
i915 drm/i915: don't enable vblanks on disabled pipes 2009-01-11 08:59:48 +10:00
mga drm: move drm vblank initialization/cleanup to driver load/unload 2008-11-25 09:49:03 +10:00
r128 drm: move drm vblank initialization/cleanup to driver load/unload 2008-11-25 09:49:03 +10:00
radeon drm/radeon: use locked rmmap to remove sarea mapping. 2008-12-29 17:47:24 +10:00
savage
sis SiS DRM: fix a pointer cast warning 2008-10-18 07:10:10 +10:00
tdfx
via drm: move drm vblank initialization/cleanup to driver load/unload 2008-11-25 09:49:03 +10:00
ati_pcigart.c
drm_agpsupport.c i915: Map status page cached for chips with GTT-based HWS location. 2008-10-18 07:10:53 +10:00
drm_auth.c drm: move to kref per-master structures. 2008-12-29 17:47:22 +10:00
drm_bufs.c drm/radeon: use locked rmmap to remove sarea mapping. 2008-12-29 17:47:24 +10:00
drm_cache.c drm: wbinvd is cache coherent. 2008-10-18 07:10:53 +10:00
drm_context.c drm: move to kref per-master structures. 2008-12-29 17:47:22 +10:00
drm_crtc_helper.c drm: pin new and unpin old buffer when setting a mode. 2008-12-29 17:47:27 +10:00
drm_crtc.c trivial: replace last usages of __FUNCTION__ in kernel 2009-01-07 15:48:54 -08:00
drm_dma.c
drm_drawable.c drm: Avoid oops in DRM_IOCTL_RM_DRAW if a bad handle is supplied. 2008-10-23 13:46:54 +10:00
drm_drv.c drm: fix ordering of driver unload vs agp unload. 2009-01-07 11:54:57 +10:00
drm_edid.c drm: fix useless gcc unused variable warning 2008-12-29 17:47:24 +10:00
drm_fops.c Check fops_get() return value 2009-01-06 15:59:11 -08:00
drm_gem.c drm: PAGE_CACHE_WC is x86 only so far 2008-12-29 17:47:24 +10:00
drm_hashtab.c drm: GEM mmap support 2008-12-29 17:47:22 +10:00
drm_ioc32.c drm: Add 32-bit compatibility for DRM_IOCTL_UPDATE_DRAW. 2008-10-23 13:46:33 +10:00
drm_ioctl.c drm: fix leak of uninitialized data to userspace 2008-12-29 17:47:22 +10:00
drm_irq.c drm/i915: set vblank enabled flag correctly across IRQ install/uninstall 2009-01-11 08:59:52 +10:00
drm_lock.c drm: move to kref per-master structures. 2008-12-29 17:47:22 +10:00
drm_memory.c drm: Add GEM ("graphics execution manager") to i915 driver. 2008-10-18 07:10:12 +10:00
drm_mm.c DRM: add mode setting support 2008-12-29 17:47:23 +10:00
drm_modes.c DRM: add mode setting support 2008-12-29 17:47:23 +10:00
drm_pci.c
drm_proc.c drm: Add a debug node for vblank state. 2008-12-29 17:47:27 +10:00
drm_scatter.c
drm_sman.c
drm_stub.c DRM: add mode setting support 2008-12-29 17:47:23 +10:00
drm_sysfs.c gpu: struct device - replace bus_id with dev_name(), dev_set_name() 2009-01-06 10:44:41 -08:00
drm_vm.c drm: GEM mmap support 2008-12-29 17:47:22 +10:00
Kconfig drm: kconfig have drm core select i2c for kms 2008-12-29 17:47:24 +10:00
Makefile DRM: add mode setting support 2008-12-29 17:47:23 +10:00
README.drm

************************************************************
* 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