aboutsummaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/nouveau/nvkm/subdev/fault
AgeCommit message (Collapse)AuthorFilesLines
2023-10-31drm/nouveau/fault/tu102-: prepare for GSP-RMBen Skeggs1-1/+7
- disable FAULT completely when GSP-RM detected - SVM support will be disabled when running on RM because of this Signed-off-by: Ben Skeggs <[email protected]> Signed-off-by: Dave Airlie <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
2022-11-09drm/nouveau/fault/tu102: switch to explicit intr handlersBen Skeggs2-59/+50
- reads vectors from HW, rather than being hardcoded - removes hacks to support routing via old interfaces Signed-off-by: Ben Skeggs <[email protected]> Reviewed-by: Lyude Paul <[email protected]>
2022-11-09drm/nouveau/nvkm: rip out old notifyBen Skeggs3-5/+5
Signed-off-by: Ben Skeggs <[email protected]> Reviewed-by: Lyude Paul <[email protected]>
2022-11-09drm/nouveau/fault: expose replayable fault buffer event classBen Skeggs2-29/+17
Signed-off-by: Ben Skeggs <[email protected]> Reviewed-by: Lyude Paul <[email protected]>
2022-11-09drm/nouveau/fault: switch non-replayable faults to nvkm_event_ntfyBen Skeggs5-22/+41
v2: fix flush_work() being called uninitialised during init Signed-off-by: Ben Skeggs <[email protected]> Reviewed-by: Lyude Paul <[email protected]>
2022-11-09drm/nouveau/nvkm: add a replacement for nvkm_notifyBen Skeggs1-2/+1
This replaces the twisty, confusing, relationship between nvkm_event and nvkm_notify with something much simpler, and less racey. It also places events in the object tree hierarchy, which will allow a heap of the code tracking events across allocation/teardown/suspend to be removed. This commit just adds the new interfaces, and passes the owning subdev to the event constructor to enable debug-tracing in the new code. v2: - use ?: (lyude) Signed-off-by: Ben Skeggs <[email protected]> Reviewed-by: Lyude Paul <[email protected]>
2021-02-11drm/nouveau/mc: use split type+inst in interrupt masking APIBen Skeggs2-2/+2
Signed-off-by: Ben Skeggs <[email protected]> Reviewed-by: Lyude Paul <[email protected]>
2021-02-11drm/nouveau/fault: switch to instanced constructorBen Skeggs6-12/+12
Signed-off-by: Ben Skeggs <[email protected]> Reviewed-by: Lyude Paul <[email protected]>
2021-01-29drm/nouveau/mc/tu102: Fix MMU fault interrupts on TuringAlistair Popple1-1/+20
Turing reports MMU fault interrupts via new top level interrupt registers. The old PMC MMU interrupt vector is not used by the HW. This means we can remap the new top-level MMU interrupt to the exisiting PMC MMU bit which simplifies the implementation until all interrupts are moved over to using the new top level registers. Signed-off-by: Alistair Popple <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2020-01-15drm/nouveau/fault/gv100-: fix memory leak on module unloadBen Skeggs1-0/+1
Signed-off-by: Ben Skeggs <[email protected]>
2020-01-15drm/nouveau/fault/tu102: define nvkm_fault_func.pinBen Skeggs1-0/+1
Signed-off-by: Ben Skeggs <[email protected]>
2020-01-15drm/nouveau/fault: Add support for GP10BThierry Reding6-6/+78
There is no BAR2 on GP10B and there is no need to map through BAR2 because all memory is shared between the GPU and the CPU. Add a custom implementation of the fault sub-device that uses nvkm_memory_addr() instead of nvkm_memory_bar2() to return the address of a pinned fault buffer. Signed-off-by: Thierry Reding <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2019-07-19drm/nouveau: fix bogus GPL-2 license headerBen Skeggs1-1/+1
The bulk SPDX addition made all these files into GPL-2.0 licensed files. However the remainder of the project is MIT-licensed, these files were simply missing the boiler plate and got caught up in the global update. Fixes: 96ac6d4351004 (treewide: Add SPDX license identifier - Kbuild) Signed-off-by: Ben Skeggs <[email protected]>
2019-05-30treewide: Add SPDX license identifier - KbuildGreg Kroah-Hartman1-0/+1
Add SPDX license identifiers to all Make/Kconfig files which: - Have no license information of any form These files fall under the project license, GPL v2 only. The resulting SPDX license identifier is: GPL-2.0 Reported-by: Masahiro Yamada <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]> Reviewed-by: Kate Stewart <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2019-02-20drm/nouveau/fault/gv100-: expose VoltaFaultBufferABen Skeggs2-0/+17
This nvclass exposes the replayable fault buffer, which will be used by SVM to manage GPU page faults. Signed-off-by: Ben Skeggs <[email protected]>
2019-02-20drm/nouveau/fault/gp100: expose MaxwellFaultBufferABen Skeggs5-0/+119
This nvclass exposes the replayable fault buffer, which will be used by SVM to manage GPU page faults. Signed-off-by: Ben Skeggs <[email protected]>
2019-02-20drm/nouveau/fault/tu102: rename implementation from tu104Ben Skeggs2-20/+20
Signed-off-by: Ben Skeggs <[email protected]>
2018-12-11drm/nouveau/fault/tu104: initial supportBen Skeggs4-1/+171
New registers. Currently uncertain how exactly to mask fault buffer interrupts. This will likely be corrected at around the same time as the new MC interrupt stuff has been properly figured out and implemented. For the moment, it shouldn't matter too much. Signed-off-by: Ben Skeggs <[email protected]>
2018-12-11drm/nouveau/fault: add explicit control over fault buffer interruptsBen Skeggs4-8/+29
The GPU will continually fire interrupts while a fault buffer GET != PUT, and to stop the spurious interrupts while the handler does its thing, we were disabling the fault buffer temporarily. This is not actually a great idea to begin with, and made worse by Volta resetting GET/PUT when it's reactivated. So, let's not do that. Signed-off-by: Ben Skeggs <[email protected]>
2018-12-11drm/nouveau/fault: store get/put pri address in nvkm_fault_bufferBen Skeggs4-14/+21
Will allow more shared fault buffer handling code between Pascal/Volta. Signed-off-by: Ben Skeggs <[email protected]>
2018-12-11drm/nouveau/fault: remove manual mapping of fault buffers into BAR2Ben Skeggs4-17/+10
Signed-off-by: Ben Skeggs <[email protected]>
2018-07-16drm/nouveau/fault/gv100: fix fault buffer initialisationBen Skeggs3-13/+19
Not sure how this happened, it worked last time I tested it! Signed-off-by: Ben Skeggs <[email protected]>
2018-05-18drm/nouveau/fault/gv100: initial supportBen Skeggs2-0/+207
Signed-off-by: Ben Skeggs <[email protected]>
2018-05-18drm/nouveau/fault/gp100: implement replayable fault buffer initialisationBen Skeggs2-0/+70
Signed-off-by: Ben Skeggs <[email protected]>
2018-05-18drm/nouveau/fault: add infrastructure to support fault buffersBen Skeggs3-0/+214
GPU-specific support will be added separately. Signed-off-by: Ben Skeggs <[email protected]>
2018-05-18drm/nouveau/core: define FAULT subdevBen Skeggs1-0/+0
This will be responsible for the handling of MMU fault buffers on GPUs that support them. Signed-off-by: Ben Skeggs <[email protected]>