Daniel Vetter
4d85f45c73
drm/atomic: Rename crtc_state->pageflip_flags to async_flip
...
It's the only flag anyone actually cares about. Plus if we're unlucky,
the atomic ioctl might need a different flag for async flips. So
better to abstract this away from the uapi a bit.
Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com >
Reviewed-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com >
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com >
Cc: Michel Dänzer <michel@daenzer.net >
Cc: Alex Deucher <alexdeucher@gmail.com >
Cc: Adam Jackson <ajax@redhat.com >
Cc: Sean Paul <sean@poorly.run >
Cc: David Airlie <airlied@linux.ie >
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com >
Cc: Maxime Ripard <maxime.ripard@bootlin.com >
Cc: Daniel Vetter <daniel@ffwll.ch >
Cc: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com >
Cc: Leo Li <sunpeng.li@amd.com >
Cc: Harry Wentland <harry.wentland@amd.com >
Cc: David Francis <David.Francis@amd.com >
Cc: Mario Kleiner <mario.kleiner.de@gmail.com >
Cc: Bhawanpreet Lakha <Bhawanpreet.Lakha@amd.com >
Cc: Ben Skeggs <bskeggs@redhat.com >
Cc: "Christian König" <christian.koenig@amd.com >
Cc: Ilia Mirkin <imirkin@alum.mit.edu >
Cc: Sam Ravnborg <sam@ravnborg.org >
Cc: Chris Wilson <chris@chris-wilson.co.uk >
Link: https://patchwork.freedesktop.org/patch/msgid/20190903190642.32588-3-daniel.vetter@ffwll.ch
2019-09-18 18:43:36 +02:00
Ben Skeggs
edc641b2b2
drm/nouveau/kms/gv100-: attach pixel blend mode property to planes
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2019-08-23 12:55:33 +10:00
Ben Skeggs
a0a7624476
drm/nouveau/kms/gv100-: attach alpha property to planes
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2019-08-23 12:55:33 +10:00
Ben Skeggs
9a99e904cc
drm/nouveau/kms/gv100-: add support for plane zpos property
...
Has a nice side-effect that we only update HW for this when it changes now,
rather than every time we do a page flip.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2019-08-23 12:55:33 +10:00
Ben Skeggs
7a962f2b72
drm/nouveau/kms/nv50-: attach immutable zpos property to planes
...
Defaulting to the fixed layout enforced in HW by EVO, and that we
currently use by default on NVD.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2019-08-23 12:55:33 +10:00
Ben Skeggs
a4ec848910
drm/nouveau/kms/nv50-: use __drm_atomic_helper_plane_reset()
...
We have some of this open-coded already, use the helper to prevent problems
when adding (for example) support for the alpha property.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2019-08-23 12:55:33 +10:00
Ilia Mirkin
88b703527b
drm/nouveau/kms/gf119-: add ctm property support
...
This adds support on GF119:GV100 (exclusive) for CTM (aka CSC).
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu >
2019-08-23 12:55:32 +10:00
Ilia Mirkin
38a7224323
drm/nouveau/kms/nv50-: add fp16 scanout support
...
Older hardware seems to want 0..1024 values, while new hardware takes
0..1 values. We set the gain to 1024 for the earlier display classes.
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu >
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2019-08-23 12:55:31 +10:00
Ben Skeggs
ebf8ca6b3d
drm/nouveau/kms/nv50-: disable input lut harder
...
Under some circumstances, it could be left enabled when it shouldn't be.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2019-08-23 12:55:31 +10:00
Ben Skeggs
1e339ab2ac
drm/nouveau/kms/tu102-: disable input lut when input is already FP16
...
On Turing, an input LUT is required to transform inputs in fixed-point
formats to FP16 for the internal display pipe. We provide an identity
mapping whenever a window is enabled for this reason.
HW has error checks to ensure when the input is already FP16, that the
input LUT is also disabled.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2019-08-23 12:55:31 +10:00
Sam Ravnborg
c587cd6fc8
drm/nouveau: drop drmP.h from nouveau_drv.h
...
Drop the deprecated drmP.h header from nouveau_drv.h.
Fix fallout in other parts of the driver.
Build tested using allmodconfig and allyesconfig.
Signed-off-by: Sam Ravnborg <sam@ravnborg.org >
Cc: Ben Skeggs <bskeggs@redhat.com >
Cc: nouveau@lists.freedesktop.org
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2019-08-23 12:55:30 +10:00
Christian König
52791eeec1
dma-buf: rename reservation_object to dma_resv
...
Be more consistent with the naming of the other DMA-buf objects.
Signed-off-by: Christian König <christian.koenig@amd.com >
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk >
Link: https://patchwork.freedesktop.org/patch/323401/
2019-08-13 09:09:30 +02:00
Gerd Hoffmann
27c44acebd
drm/nouveau: switch driver from bo->resv to bo->base.resv
...
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com >
Reviewed-by: Christian König <christian.koenig@amd.com >
Link: http://patchwork.freedesktop.org/patch/msgid/20190805140119.7337-15-kraxel@redhat.com
2019-08-06 08:21:54 +02:00
Ben Skeggs
e4702c01b7
drm/nouveau/kms/nv50-: fix bug preventing non-vsync'd page flips
...
Accidentally introduced during Volta bring-up.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2019-05-14 16:58:06 +10:00
Ben Skeggs
d2434e4d94
drm/nouveau/kms/gv100-: fix spurious window immediate interlocks
...
Cursor position updates were accidentally causing us to attempt to interlock
window with window immediate, and without a matching window immediate update,
NVDisplay could hang forever in some circumstances.
Fixes suspend/resume on (at least) Quadro RTX4000 (TU104).
Reported-by: Lyude Paul <lyude@redhat.com >
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2019-05-14 16:58:05 +10:00
Ben Skeggs
8603774233
drm/nouveau/disp/tu102: rename implementation from tu104
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2019-02-20 08:59:58 +10:00
Ben Skeggs
563737c525
drm/nouveau/kms/tu104: initial support
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2018-12-11 15:37:55 +10:00
Ben Skeggs
cb55cd0c66
drm/nouveau/kms/nv50-: allow more flexibility with lut formats
...
Will be required for Turing.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2018-12-11 15:37:49 +10:00
Ben Skeggs
6ec7aecf1f
drm/nouveau/kms/nv50-: remove duplicate assignment
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2018-07-16 18:06:29 +10:00
Ben Skeggs
1264f8325e
drm/nouveau/kms/nv50-: cursors always use core channel vram ctxdma
...
Ctxdmas for cursors from all heads are setup in the core channel, and due
to us tracking allocated handles per-window, we were failing with -EEXIST
on multiple-head setups trying to allocate duplicate handles.
The cursor code is hardcoded to use the core channel vram ctxdma already,
so just skip ctxdma allocation for cursor fbs to fix the issue.
Fixes: 5bca1621c0
("drm/nouveau/kms/nv50-: move fb ctxdma tracking into windows")
Reported-by: Adam Borowski <kilobyte@angband.pl >
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2018-06-19 10:38:26 +10:00
Ben Skeggs
facaed62b4
drm/nouveau/kms/gv100: initial support
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2018-05-18 15:01:46 +10:00
Ben Skeggs
2ce7f38629
drm/nouveau/kms/nv50-: initial overlay support
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2018-05-18 15:01:31 +10:00
Ben Skeggs
88b600d421
drm/nouveau/kms/gk104-: add support for [XA]2R10G10B10 formats
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2018-05-18 15:01:30 +10:00
Ben Skeggs
b05d873808
drm/nouveau/kms/nv50-: separate blocklinear vs linear pitch
...
Will be required to support Volta.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2018-05-18 15:01:30 +10:00
Ben Skeggs
119608a7f3
drm/nouveau/kms/nv50-: handle degamma LUT from window channels
...
Required to eventually support DRM colour management APIs, and to
support Volta.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2018-05-18 15:01:29 +10:00
Ben Skeggs
e349a05dc8
drm/nouveau/kms/nv50-: plane updates don't always require image_set()
...
When only the position of a window changes, there's no need to submit
an image update as well.
Will be required to support the overlays, and Volta windows.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2018-05-18 15:01:29 +10:00
Ben Skeggs
859b456b6b
drm/nouveau/kms/nv50-: store window visibility in state
...
Window visibility is going to become a little more complicated with the
upcoming LUT changes, so store the calculated value to avoid needing to
recalculate the armed state again.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2018-05-18 15:01:29 +10:00
Ben Skeggs
45a2945a37
drm/nouveau/kms/nv50-: simplify swap interval handling
...
This is just cleaning up some left-overs from when we needed a custom
legacy page flip implementation.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2018-05-18 15:01:29 +10:00
Ben Skeggs
04fc14be77
drm/nouveau/kms/nv50-: decouple window state changes, and update method submisssion
...
This will be required to support Volta.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2018-05-18 15:01:29 +10:00
Ben Skeggs
53e0a3e70d
drm/nouveau/kms/nv50-: simplify tracking of channel interlocks
...
Instead of windows returning their core channel interlock mask if they
know core has been modified, it's recorded unconditionally and used if
required when update methods are emitted.
This will be required to support Volta.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2018-05-18 15:01:29 +10:00
Ben Skeggs
261fcfa969
drm/nouveau/kms/nv50-: extend window image data for stereo/planar formats
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2018-05-18 15:01:29 +10:00
Ben Skeggs
43c181e9de
drm/nouveau/kms/nv50-: move drm format->hw conversion into common code
...
This will be required to support additional HW features.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2018-05-18 15:01:28 +10:00
Ben Skeggs
f88bc9d3ec
drm/nouveau/kms/nv50-: unify set/clr masks
...
This is a simplification that'll be used to improve interlock handling.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2018-05-18 15:01:28 +10:00
Ben Skeggs
9d6c2fe191
drm/nouveau/kms/nv50-: allow specification of valid heads for a window
...
This will be required to support Volta, where window ID != head.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2018-05-18 15:01:28 +10:00
Ben Skeggs
ccd27db8c7
drm/nouveau/kms/nv50-: split base implementation by hardware class
...
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2018-05-18 15:01:28 +10:00
Ben Skeggs
1590700d94
drm/nouveau/kms/nv50-: split each resource type into their own source files
...
There should be no code changes here, just shuffling stuff around.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com >
2018-05-18 15:01:28 +10:00