android_kernel_xiaomi_sm8350/drivers/gpu/drm
Chris Wilson cda4b7d3a5 drm/i915: Unset cursor if out-of-bounds upon mode change (v4)
The docs warn that to position the cursor such that no part of it is
visible on the pipe is an undefined operation. Avoid such circumstances
upon changing the mode, or at any other time, by unsetting the cursor if
it moves out of bounds.

"For normal high resolution display modes, the cursor must have at least a
single pixel positioned over the active screen.” (p143, p148 of the hardware
registers docs).

Fixes:

  Bug 24748 - [965G] Graphics crashes when resolution is changed with KMS
              enabled
  https://bugs.freedesktop.org/show_bug.cgi?id=24748

v2: Only update the cursor registers if they change.
v3: Fix the unsigned comparision of x,y against width,height.
v4: Always set CUR.BASE or else the cursor may become corrupt.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reported-by: Christian Eggers <ceggers@gmx.de>
Cc: Christopher James Halse Rogers  <chalserogers@gmail.com>
Cc: stable@kernel.org
Signed-off-by: Eric Anholt <eric@anholt.net>
2010-08-01 19:58:28 -07:00
..
i2c Merge remote branch 'nouveau/for-airlied' of ../drm-nouveau-next into drm-core-next 2010-08-02 10:31:47 +10:00
i810 drm/i810: fixed coding style issues 2010-08-02 10:15:41 +10:00
i830 drm/i830: fixed brace and spacing coding style issues 2010-08-02 10:15:54 +10:00
i915 drm/i915: Unset cursor if out-of-bounds upon mode change (v4) 2010-08-01 19:58:28 -07:00
mga drm/mga: fixed brace, macro and spacing coding style issues 2010-08-02 10:17:36 +10:00
nouveau Merge remote branch 'nouveau/for-airlied' of ../drm-nouveau-next into drm-core-next 2010-08-02 10:31:47 +10:00
r128 drm/r128: fixed brace and spacing coding style issues 2010-08-02 10:17:48 +10:00
radeon Merge remote branch 'origin/master' into drm-intel-next 2010-08-01 19:34:47 -07:00
savage drm: Remove drm_resource wrappers 2010-06-01 10:07:24 +10:00
sis drm/sis: fixed brace and spacing coding style issues 2010-08-02 10:18:17 +10:00
tdfx
ttm Merge tag 'v2.6.35-rc6' into drm-radeon-next 2010-08-02 10:05:24 +10:00
via drm/via: fixed coding style issues, simplified return 2010-08-02 10:17:23 +10:00
vmwgfx Merge branch 'drm-radeon-next' of ../drm-radeon-next into drm-core-next 2010-08-02 10:24:46 +10:00
ati_pcigart.c
drm_agpsupport.c
drm_auth.c
drm_buffer.c
drm_bufs.c Merge branch 'drm-platform' into drm-testing 2010-07-07 18:37:35 +10:00
drm_cache.c
drm_context.c
drm_crtc_helper.c drm: unify crtc,connector,encoder,fb debug printing 2010-07-16 11:25:02 +10:00
drm_crtc.c drm: Return EBUSY if the framebuffer is unbound when flipping. 2010-07-21 11:26:07 +10:00
drm_debugfs.c
drm_dma.c
drm_dp_i2c_helper.c
drm_drawable.c
drm_drv.c drm: Free the idr layers before calling idr_destroy() 2010-08-02 10:13:56 +10:00
drm_edid.c Merge remote branch 'origin/master' into drm-intel-next 2010-08-01 19:34:47 -07:00
drm_encoder_slave.c
drm_fb_helper.c drm: correctly update connector DPMS status in drm_fb_helper 2010-07-07 14:21:39 +10:00
drm_fops.c
drm_gem.c drm: Free the idr layers before calling idr_destroy() 2010-08-02 10:13:56 +10:00
drm_hashtab.c
drm_info.c drm: Add support for platform devices to register as DRM devices 2010-06-01 10:07:39 +10:00
drm_ioc32.c
drm_ioctl.c drm: Add support for platform devices to register as DRM devices 2010-06-01 10:07:39 +10:00
drm_irq.c Merge branch 'drm-tracepoints' into drm-testing 2010-07-07 18:38:44 +10:00
drm_lock.c
drm_memory.c
drm_mm.c drm: implement helper functions for scanning lru list 2010-07-07 12:29:51 +10:00
drm_modes.c
drm_pci.c drm: Add support for platform devices to register as DRM devices 2010-06-01 10:07:39 +10:00
drm_platform.c drm: Add support for platform devices to register as DRM devices 2010-06-01 10:07:39 +10:00
drm_proc.c
drm_scatter.c
drm_sman.c
drm_stub.c drm: Free devname along with master->unique 2010-08-02 10:14:30 +10:00
drm_sysfs.c Merge branch 'drm-platform' into drm-testing 2010-07-07 18:37:35 +10:00
drm_trace_points.c drm: add vblank event trace point 2010-07-02 14:02:44 +10:00
drm_trace.h drm: add per-event vblank event trace points 2010-07-02 14:03:24 +10:00
drm_vm.c drm: Add __arm defines to DRM 2010-06-01 10:07:56 +10:00
Kconfig drm/radeon/kms: add support for internal thermal sensors (v3) 2010-08-02 10:00:00 +10:00
Makefile Merge branch 'drm-tracepoints' into drm-testing 2010-07-07 18:38:44 +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