On Sat, 18 Apr 2020 at 05:42, Lyude Paul <lyude@xxxxxxxxxx> wrote: > > Nvidia released some documentation on how CRC support works on their > GPUs, hooray! > > So: this patch series implements said CRC support in nouveau, along with > adding some special debugfs interfaces for some relevant igt-gpu-tools > tests that we'll be sending in just a short bit. > > This additionally adds a feature that Ville Syrjälä came up with: vblank > works. Basically, this is just a generic DRM interface that allows for > scheduling high-priority workers that start on a given vblank interrupt. > Note that while we're currently only using this in nouveau, Intel has > plans to use this for i915 as well (hence why they came up with it!). > > And finally: in order to implement the last feature, we expose some new > functions in the kernel's kthread_worker infrastructure so that we can > de-complicate our implementation of this. > > Anyway-welcome to the future! :) The Nouveau bits look alright to me, I'll take them once the patches it depends on have been acked. Ben. > > Major changes since v2: > * Use kthread_worker instead of kthreadd for vblank workers > * Don't check debugfs return values > > Lyude Paul (11): > drm/vblank: Register drmm cleanup action once per drm_vblank_crtc > kthread: Introduce __kthread_queue_work() > drm/vblank: Add vblank works > drm/nouveau/kms/nv50-: Unroll error cleanup in nv50_head_create() > drm/nouveau/kms/nv140-: Don't modify depth in state during atomic > commit > drm/nouveau/kms/nv50-: Fix disabling dithering > drm/nouveau/kms/nv50-: s/harm/armh/g > drm/nouveau/kms/nv140-: Track wndw mappings in nv50_head_atom > drm/nouveau/kms/nv50-: Expose nv50_outp_atom in disp.h > drm/nouveau/kms/nv50-: Move hard-coded object handles into header > drm/nouveau/kms/nvd9-: Add CRC support > > drivers/gpu/drm/drm_vblank.c | 314 ++++++++- > drivers/gpu/drm/nouveau/dispnv04/crtc.c | 25 +- > drivers/gpu/drm/nouveau/dispnv50/Kbuild | 4 + > drivers/gpu/drm/nouveau/dispnv50/atom.h | 21 + > drivers/gpu/drm/nouveau/dispnv50/core.h | 4 + > drivers/gpu/drm/nouveau/dispnv50/core907d.c | 3 + > drivers/gpu/drm/nouveau/dispnv50/core917d.c | 3 + > drivers/gpu/drm/nouveau/dispnv50/corec37d.c | 3 + > drivers/gpu/drm/nouveau/dispnv50/corec57d.c | 3 + > drivers/gpu/drm/nouveau/dispnv50/crc.c | 715 ++++++++++++++++++++ > drivers/gpu/drm/nouveau/dispnv50/crc.h | 125 ++++ > drivers/gpu/drm/nouveau/dispnv50/crc907d.c | 139 ++++ > drivers/gpu/drm/nouveau/dispnv50/crcc37d.c | 153 +++++ > drivers/gpu/drm/nouveau/dispnv50/disp.c | 65 +- > drivers/gpu/drm/nouveau/dispnv50/disp.h | 24 + > drivers/gpu/drm/nouveau/dispnv50/handles.h | 16 + > drivers/gpu/drm/nouveau/dispnv50/head.c | 142 +++- > drivers/gpu/drm/nouveau/dispnv50/head.h | 13 +- > drivers/gpu/drm/nouveau/dispnv50/head907d.c | 14 +- > drivers/gpu/drm/nouveau/dispnv50/headc37d.c | 27 +- > drivers/gpu/drm/nouveau/dispnv50/headc57d.c | 20 +- > drivers/gpu/drm/nouveau/dispnv50/wndw.c | 15 +- > drivers/gpu/drm/nouveau/nouveau_display.c | 60 +- > include/drm/drm_vblank.h | 31 + > include/linux/kthread.h | 3 + > kernel/kthread.c | 34 +- > 26 files changed, 1831 insertions(+), 145 deletions(-) > create mode 100644 drivers/gpu/drm/nouveau/dispnv50/crc.c > create mode 100644 drivers/gpu/drm/nouveau/dispnv50/crc.h > create mode 100644 drivers/gpu/drm/nouveau/dispnv50/crc907d.c > create mode 100644 drivers/gpu/drm/nouveau/dispnv50/crcc37d.c > create mode 100644 drivers/gpu/drm/nouveau/dispnv50/handles.h > > -- > 2.25.1 > > _______________________________________________ > dri-devel mailing list > dri-devel@xxxxxxxxxxxxxxxxxxxxx > https://lists.freedesktop.org/mailman/listinfo/dri-devel _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel