diff options
author | Dave Airlie <airlied@redhat.com> | 2016-06-01 17:50:23 -0400 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2016-06-01 17:50:23 -0400 |
commit | 65439b68bb10afd877af05463bbff5d25200fd06 (patch) | |
tree | 846aeadab033ec39a3ed942c82976b40ea4994a2 /Documentation/DocBook | |
parent | 1a695a905c18548062509178b98bc91e67510864 (diff) | |
parent | b82caafcf230362e2233ccf912a37face07f6d76 (diff) |
Merge tag 'topic/drm-misc-2016-06-01' of git://anongit.freedesktop.org/drm-intel into drm-next
Frist -misc pull for 4.8, with pretty much just random all over plus a few
more lockless gem BO patches acked/reviewed by driver maintainers.
I'm starting a bit earlier this time around because there's a few invasive
patch series to land (nonblocking atomic prep work, fence prep work,
rst/sphinx kerneldoc finally happening) and I need a baseline with all the
branches merged.
* tag 'topic/drm-misc-2016-06-01' of git://anongit.freedesktop.org/drm-intel: (21 commits)
drm/vc4: Use lockless gem BO free callback
drm/vc4: Use drm_gem_object_unreference_unlocked
drm: Initialize a linear gamma table by default
drm/vgem: Use lockless gem BO free callback
drm/qxl: Don't set a gamma table size
drm/msm: Nuke dummy gamma_set/get functions
drm/cirrus: Drop redundnant gamma size check
drm/fb-helper: Remove dead code in setcolreg
drm/mediatek: Use lockless gem BO free callback
drm/hisilicon: Use lockless gem BO free callback
drm/hlcd: Use lockless gem BO free callback
vga_switcheroo: Support deferred probing of audio clients
vga_switcheroo: Add helper for deferred probing
virtio-gpu: fix output lookup
drm/doc: Unify KMS Locking docs
drm/atomic-helper: Do not call ->mode_fixup for CRTC which will be disabled
Fix annoyingly awkward typo in drm_edid_load.c
drm/doc: Drop vblank_disable_allow wording
drm: use seqlock for vblank time/count
drm/mm: avoid possible null pointer dereference
...
Diffstat (limited to 'Documentation/DocBook')
-rw-r--r-- | Documentation/DocBook/gpu.tmpl | 25 |
1 files changed, 1 insertions, 24 deletions
diff --git a/Documentation/DocBook/gpu.tmpl b/Documentation/DocBook/gpu.tmpl index 7586bf75f62e..b3a04b521b22 100644 --- a/Documentation/DocBook/gpu.tmpl +++ b/Documentation/DocBook/gpu.tmpl | |||
@@ -1092,22 +1092,6 @@ int max_width, max_height;</synopsis> | |||
1092 | operation. | 1092 | operation. |
1093 | </para> | 1093 | </para> |
1094 | </sect2> | 1094 | </sect2> |
1095 | <sect2> | ||
1096 | <title>Locking</title> | ||
1097 | <para> | ||
1098 | Beside some lookup structures with their own locking (which is hidden | ||
1099 | behind the interface functions) most of the modeset state is protected | ||
1100 | by the <code>dev-<mode_config.lock</code> mutex and additionally | ||
1101 | per-crtc locks to allow cursor updates, pageflips and similar operations | ||
1102 | to occur concurrently with background tasks like output detection. | ||
1103 | Operations which cross domains like a full modeset always grab all | ||
1104 | locks. Drivers there need to protect resources shared between crtcs with | ||
1105 | additional locking. They also need to be careful to always grab the | ||
1106 | relevant crtc locks if a modset functions touches crtc state, e.g. for | ||
1107 | load detection (which does only grab the <code>mode_config.lock</code> | ||
1108 | to allow concurrent screen updates on live crtcs). | ||
1109 | </para> | ||
1110 | </sect2> | ||
1111 | </sect1> | 1095 | </sect1> |
1112 | 1096 | ||
1113 | <!-- Internals: kms initialization and cleanup --> | 1097 | <!-- Internals: kms initialization and cleanup --> |
@@ -2845,14 +2829,7 @@ void (*disable_vblank) (struct drm_device *dev, int crtc);</synopsis> | |||
2845 | <para> | 2829 | <para> |
2846 | Drivers must initialize the vertical blanking handling core with a call to | 2830 | Drivers must initialize the vertical blanking handling core with a call to |
2847 | <function>drm_vblank_init</function> in their | 2831 | <function>drm_vblank_init</function> in their |
2848 | <methodname>load</methodname> operation. The function will set the struct | 2832 | <methodname>load</methodname> operation. |
2849 | <structname>drm_device</structname> | ||
2850 | <structfield>vblank_disable_allowed</structfield> field to 0. This will | ||
2851 | keep vertical blanking interrupts enabled permanently until the first mode | ||
2852 | set operation, where <structfield>vblank_disable_allowed</structfield> is | ||
2853 | set to 1. The reason behind this is not clear. Drivers can set the field | ||
2854 | to 1 after <function>calling drm_vblank_init</function> to make vertical | ||
2855 | blanking interrupts dynamically managed from the beginning. | ||
2856 | </para> | 2833 | </para> |
2857 | <para> | 2834 | <para> |
2858 | Vertical blanking interrupts can be enabled by the DRM core or by drivers | 2835 | Vertical blanking interrupts can be enabled by the DRM core or by drivers |