linux/drivers/gpu/drm
Ville Syrjälä 50f6e50271 drm/i915: Move the .global_resources() hook call into modeset_update_crtc_power_domains()
We may need to access various hardware bits in the .global_resources()
hook, so move the call to occur after enabling all the newly required
power wells, but before disabling all the now unneeded wells. This
should guarantee that we have all the sufficient hardware resources
available during the .global_resources() call. And if not, any additional
resources must be explicitly acquired by the .global_resorces() hook.

For instance on VLV/CHV we need to access the gunit mailbox so that we
can talk to punit/cck over sideband. In addition some PFI credit
reprogramming may need to be addes as well, which may require the disp2d
well.

This should also make the power domain refcounts consistent on platforms
which don't have a .global_resource() hook since now they too will
call modeset_update_crtc_power_domains() which will drop the init power.
Previously init power was just left enabled for such platforms.

Cc: Imre Deak <imre.deak@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-11-07 18:42:19 +01:00
..
armada drm: Extract <drm/drm_gem.h> 2014-09-24 11:43:41 +10:00
ast drm/ast: Fix HW cursor image 2014-10-08 09:05:29 +10:00
bochs Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux 2014-10-14 09:39:08 +02:00
bridge drm: add register and unregister functions for connectors 2014-06-19 08:55:28 +02:00
cirrus drm/cirrus: bind also to qemu-xen-traditional 2014-10-23 14:09:04 +10:00
exynos drm: Extract <drm/drm_gem.h> 2014-09-24 11:43:41 +10:00
gma500 drm/gma500: use container_of to resolve psb_fbdev from drm_fb_helper 2014-09-24 12:09:27 +02:00
i2c drm/tda998x: update for new drm connector APIs. 2014-08-05 10:34:33 +10:00
i810 drm: move drm_mmap to <drm/drm_legacy.h> 2014-09-24 11:43:07 +10:00
i915 drm/i915: Move the .global_resources() hook call into modeset_update_crtc_power_domains() 2014-11-07 18:42:19 +01:00
mga drm: move drm_mmap to <drm/drm_legacy.h> 2014-09-24 11:43:07 +10:00
mgag200 Merge branch 'for-airlied-next' of git://people.freedesktop.org/~mlankhorst/linux into drm-next 2014-10-01 19:27:38 +10:00
msm drm: Pass dma-buf as argument to gem_prime_import_sg_table 2014-09-30 14:04:00 +02:00
nouveau Merge branch 'linux-3.18' of git://anongit.freedesktop.org/git/nouveau/linux-2.6 into drm-fixes 2014-10-20 16:14:19 +10:00
omapdrm drm: Extract <drm/drm_gem.h> 2014-09-24 11:43:41 +10:00
panel drm/panel/simple: add optronics B101XTN01.0 (v3) 2014-09-10 11:19:07 -04:00
qxl qxl: don't create too large primary surface 2014-10-22 11:11:50 +10:00
r128 drm: move drm_mmap to <drm/drm_legacy.h> 2014-09-24 11:43:07 +10:00
radeon Merge branch 'drm-fixes-3.18' of git://people.freedesktop.org/~agd5f/linux into drm-fixes 2014-10-20 11:57:21 +10:00
rcar-du drm/rcar-du: Add OF support 2014-09-15 11:55:47 +03:00
savage drm: move drm_mmap to <drm/drm_legacy.h> 2014-09-24 11:43:07 +10:00
shmobile drm/shmob: Update copyright notice 2014-09-15 11:34:07 +03:00
sis drm: move drm_mmap to <drm/drm_legacy.h> 2014-09-24 11:43:07 +10:00
sti Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux 2014-10-14 09:39:08 +02:00
tdfx drm: move drm_mmap to <drm/drm_legacy.h> 2014-09-24 11:43:07 +10:00
tegra drm: Extract <drm/drm_gem.h> 2014-09-24 11:43:41 +10:00
tilcdc drm/tilcdc: panel: Add support for enable GPIO 2014-09-17 10:55:27 +10:00
ttm drm/ttm: Don't evict BOs outside of the requested placement range 2014-10-16 18:34:08 -04:00
udl drm/udl: use container_of to resolve udl_fbdev from drm_fb_helper 2014-09-24 12:09:28 +02:00
via drm: move drm_mmap to <drm/drm_legacy.h> 2014-09-24 11:43:07 +10:00
vmwgfx Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux 2014-10-14 09:39:08 +02:00
ati_pcigart.c drm: split ati_pcigart.h out of drmP.h 2014-09-12 14:11:14 +10:00
drm_agpsupport.c drm: move AGP definitions harder 2014-09-10 17:40:11 +10:00
drm_auth.c drm: Move piles of functions from drmP.h to drm_internal.h 2014-09-12 11:16:29 +02:00
drm_bufs.c drm: Move __drm_pci_free to drm_legacy.h 2014-09-12 11:08:56 +02:00
drm_cache.c drm: Missed clflushopt in drm_clflush_virt_range 2014-06-02 09:57:31 +02:00
drm_context.c drm: mark drm_context support as legacy 2014-08-05 19:38:12 +02:00
drm_crtc_helper.c drm/crtc-helper: use drm_framebuffer flags 2014-07-08 11:18:47 +10:00
drm_crtc_internal.h
drm_crtc.c drm: Drop grab fpriv->fbs_lock in drm_fb_release 2014-09-25 17:13:40 +02:00
drm_debugfs.c drm: Move piles of functions from drmP.h to drm_internal.h 2014-09-12 11:16:29 +02:00
drm_dma.c drm: Move legacy buffer structures to <drm/drm_legacy.h> 2014-09-12 15:28:12 +02:00
drm_dp_helper.c drm/dp: add a hw mutex around the transfer functions. (v2) 2014-06-05 09:54:29 +10:00
drm_dp_mst_topology.c drm/mst: rework payload table allocation to conform better. 2014-10-13 14:40:53 +10:00
drm_drv.c drm/core: use helper to check driver features 2014-10-03 10:38:56 +02:00
drm_edid_load.c drm: replace drm_get_connector_name() with direct name field use 2014-06-04 13:17:41 +10:00
drm_edid.c drm/edid: Add missing interlaced flag to 576i@100 modes. 2014-10-01 11:36:20 +02:00
drm_encoder_slave.c
drm_fb_cma_helper.c drm: Introduce drm_fb_helper_prepare() 2014-07-08 11:31:28 +10:00
drm_fb_helper.c Merge tag 'drm-intel-next-2014-09-01' of git://anongit.freedesktop.org/drm-intel into drm-next 2014-09-03 08:30:48 +10:00
drm_flip_work.c
drm_fops.c drm/core: use helper to check driver features 2014-10-03 10:38:56 +02:00
drm_gem_cma_helper.c drm: Pass dma-buf as argument to gem_prime_import_sg_table 2014-09-30 14:04:00 +02:00
drm_gem.c drm/core: use helper to check driver features 2014-10-03 10:38:56 +02:00
drm_global.c
drm_hashtab.c list: fix order of arguments for hlist_add_after(_rcu) 2014-08-06 18:01:24 -07:00
drm_info.c drm: Extract <drm/drm_gem.h> 2014-09-24 11:43:41 +10:00
drm_internal.h drm: Move internal debugfs functions to drm_internal.h 2014-09-24 11:43:35 +10:00
drm_ioc32.c
drm_ioctl.c drm: Purge ioctl forward declarations from drmP.h 2014-09-12 15:27:47 +02:00
drm_irq.c drm: Improve debug output for drm_wait_one_vblank 2014-09-24 12:09:23 +02:00
drm_legacy.h drm: Create drm legacy driver header 2014-09-12 11:08:55 +02:00
drm_lock.c drm: unexport drm_global_mutex 2014-09-12 11:19:47 +02:00
drm_memory.c drm: Move drm_memory.c map support declarations to <drm/drm_legacy.h> 2014-09-12 15:28:12 +02:00
drm_mipi_dsi.c drm/mipi-dsi: consider low power transmission 2014-09-20 00:56:08 +09:00
drm_mm.c
drm_modes.c drm: Perform cmdline mode parsing during connector initialisation 2014-08-06 14:50:12 +02:00
drm_modeset_lock.c Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux 2014-10-14 09:39:08 +02:00
drm_of.c drm: add of_graph endpoint helper to find possible CRTCs 2014-07-11 15:38:28 +01:00
drm_panel.c
drm_pci.c drm: Move legacy buffer structures to <drm/drm_legacy.h> 2014-09-12 15:28:12 +02:00
drm_plane_helper.c drm: make sure visible is set to false if fb is null 2014-11-04 23:21:29 +01:00
drm_platform.c drm: Goody bye, drm_bus! 2014-09-10 17:43:10 +10:00
drm_prime.c drm: Pass dma-buf as argument to gem_prime_import_sg_table 2014-09-30 14:04:00 +02:00
drm_probe_helper.c drm: Perform cmdline mode parsing during connector initialisation 2014-08-06 14:50:12 +02:00
drm_rect.c drm: Add drm_rect rotation functions 2014-07-11 23:44:12 +02:00
drm_scatter.c drm: Move sg functions into drm_legacy.h 2014-09-12 11:08:54 +02:00
drm_sysfs.c drm: Move piles of functions from drmP.h to drm_internal.h 2014-09-12 11:16:29 +02:00
drm_trace_points.c
drm_trace.h
drm_vm.c drm: Move drm_vm_open_locked into drm_internal.h 2014-09-24 11:43:20 +10:00
drm_vma_manager.c
Kconfig drm: merge drm_usb into udl 2014-09-10 17:43:27 +10:00
Makefile drm: merge drm_usb into udl 2014-09-10 17:43:27 +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