#
889fcbe9 |
|
01-Jun-2022 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau/disp: add common channel class handling Replaces a bunch of unnecessarily duplicated boilerplate in per-chipset code with a simpler, common, implementation. Channel "awaken" notify code is completely gone for now. KMS has never made use of it so far, and event notify handling is about to be changed in general anyway. Signed-off-by: Ben Skeggs <bskeggs@redhat.com> Reviewed-by: Lyude Paul <lyude@redhat.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
|
#
ef674b68 |
|
10-Aug-2020 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau/kms/nv50-gp1xx: wait for less EVO pushbuf space for core updates without notify Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
#
24d9422e |
|
04-Sep-2020 |
Lyude Paul <lyude@redhat.com> |
drm/nouveau/kms/nv50-: Program notifier offset before requesting disp caps Not entirely sure why this never came up when I originally tested this (maybe some BIOSes already have this setup?) but the ->caps_init vfunc appears to cause the display engine to throw an exception on driver init, at least on my ThinkPad P72: nouveau 0000:01:00.0: disp: chid 0 mthd 008c data 00000000 0000508c 0000102b This is magic nvidia speak for "You need to have the DMA notifier offset programmed before you can call NV507D_GET_CAPABILITIES." So, let's fix this by doing that, and also perform an update afterwards to prevent racing with the GPU when reading capabilities. v2: * Don't just program the DMA notifier offset, make sure to actually perform an update v3: * Don't call UPDATE() * Actually read the correct notifier fields, as apparently the CAPABILITIES_DONE field lives in a different location than the main NV_DISP_CORE_NOTIFIER_1 field. As well, 907d+ use a different CAPABILITIES_DONE field then pre-907d cards. v4: * Don't forget to check the return value of core507d_read_caps() v5: * Get rid of NV50_DISP_CAPS_NTFY[14], use NV50_DISP_CORE_NTFY * Disable notifier after calling GetCapabilities() Signed-off-by: Lyude Paul <lyude@redhat.com> Fixes: 4a2cb4181b07 ("drm/nouveau/kms/nv50-: Probe SOR and PIOR caps for DP interlacing support") Cc: <stable@vger.kernel.org> # v5.8+ Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
#
a9cfcfca |
|
10-Aug-2020 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau/kms/nv50-gp1xx: disable notifies again after core update This was lost during the header conversion. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
#
2806280a |
|
20-Jun-2020 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau/kms/nv50-: use NVIDIA's headers for core update() Signed-off-by: Ben Skeggs <bskeggs@redhat.com> Reviewed-by: Lyude Paul <lyude@redhat.com>
|
#
4daef27c |
|
21-Jun-2020 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau/kms/nv50-: use NVIDIA's headers for core ntfy_wait_done() Signed-off-by: Ben Skeggs <bskeggs@redhat.com> Reviewed-by: Lyude Paul <lyude@redhat.com>
|
#
d8b24526 |
|
20-Jun-2020 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau/kms/nv50-: use NVIDIA's headers for core caps_init() Signed-off-by: Ben Skeggs <bskeggs@redhat.com> Reviewed-by: Lyude Paul <lyude@redhat.com>
|
#
38a323b0 |
|
21-Jun-2020 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau/kms/nv50-: use NVIDIA's headers for core ntfy_init() Signed-off-by: Ben Skeggs <bskeggs@redhat.com> Reviewed-by: Lyude Paul <lyude@redhat.com>
|
#
b11d8ca1 |
|
20-Jun-2020 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau/kms/nv50-: use NVIDIA's headers for core init() Signed-off-by: Ben Skeggs <bskeggs@redhat.com> Reviewed-by: Lyude Paul <lyude@redhat.com>
|
#
203f6eaf |
|
20-Jun-2020 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau/kms/nv50-: convert core update() to new push macros Signed-off-by: Ben Skeggs <bskeggs@redhat.com> Reviewed-by: Lyude Paul <lyude@redhat.com>
|
#
3c43c362 |
|
20-Jun-2020 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau/kms/nv50-: convert core caps_init() to new push macros Signed-off-by: Ben Skeggs <bskeggs@redhat.com> Reviewed-by: Lyude Paul <lyude@redhat.com>
|
#
5e691222 |
|
20-Jun-2020 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau/kms/nv50-: convert core init() to new push macros Signed-off-by: Ben Skeggs <bskeggs@redhat.com> Reviewed-by: Lyude Paul <lyude@redhat.com>
|
#
0dc9b286 |
|
24-Jun-2020 |
Nirmoy Das <nirmoy.aiemd@gmail.com> |
drm/nouveau: don't use ttm bo->offset v3 Store ttm bo->offset in struct nouveau_bo instead. Signed-off-by: Nirmoy Das <nirmoy.das@amd.com> Acked-by: Christian König <christian.koenig@amd.com> Link: https://patchwork.freedesktop.org/patch/372932/ Signed-off-by: Christian König <christian.koenig@amd.com>
|
#
4a2cb418 |
|
11-May-2020 |
Lyude Paul <lyude@redhat.com> |
drm/nouveau/kms/nv50-: Probe SOR and PIOR caps for DP interlacing support Right now, we make the mistake of allowing interlacing on all connectors. Nvidia hardware does not always support interlacing with DP though, so we need to make sure that we don't allow interlaced modes to be set in such situations as otherwise we'll end up accidentally hanging the display HW. This fixes some hangs with Turing, which would be caused by attempting to set an interlaced mode on hardware that doesn't support it. This patch likely fixes other hardware hanging in the same way as well. Note that we say we probe PIOR caps, but they don't actually have any interlacing caps. So, the get_caps() function for PIORs just sets interlacing support to true. Changes since v1: * Actually probe caps correctly this time, both on EVO and NVDisplay. Changes since v2: * Fix probing for < GF119 * Use vfunc table, in prep for adding more caps in the future. Signed-off-by: Lyude Paul <lyude@redhat.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
#
ed3d1489 |
|
16-Feb-2020 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau/nvif: protect waits against GPU falling off the bus Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
#
53e0a3e7 |
|
08-May-2018 |
Ben Skeggs <bskeggs@redhat.com> |
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>
|
#
09e1b78a |
|
08-May-2018 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau/kms/nv50-: split core implementation by hardware class Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
|
#
1590700d |
|
08-May-2018 |
Ben Skeggs <bskeggs@redhat.com> |
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>
|