84ab065e | 24-May-2023 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau/fifo/ga100-: remove individual runlists rather than failing oneinit
We're adding better support for the non-stall interrupt, which will need to fetch the interrupt vector from the runlis
drm/nouveau/fifo/ga100-: remove individual runlists rather than failing oneinit
We're adding better support for the non-stall interrupt, which will need to fetch the interrupt vector from the runlist's primary engine.
NVKM doesn't support all target engines (ie. NVDEC etc), and it wouldn't be ideal to completely fail initialisation in this case.
Instead. Remove runlists where we can't determine all the needed info.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com> Reviewed-by: Karol Herbst <kherbst@redhat.com> Reviewed-by: Lyude Paul <lyude@redhat.com> Signed-off-by: Karol Herbst <kherbst@redhat.com> Link: https://patchwork.freedesktop.org/patch/msgid/20230525003106.3853741-7-skeggsb@gmail.com
show more ...
|
c14bff92 | 28-Feb-2023 |
Tom Rix <trix@redhat.com> |
drm/nouveau/fifo: set nvkm_engn_cgrp_get storage-class-specifier to static
smatch reports drivers/gpu/drm/nouveau/nvkm/engine/fifo/runl.c:33:18: warning: symbol 'nvkm_engn_cgrp_get' was not declar
drm/nouveau/fifo: set nvkm_engn_cgrp_get storage-class-specifier to static
smatch reports drivers/gpu/drm/nouveau/nvkm/engine/fifo/runl.c:33:18: warning: symbol 'nvkm_engn_cgrp_get' was not declared. Should it be static?
nvkm_engn_cgrp_get is only used in runl.c, so it should be static
Signed-off-by: Tom Rix <trix@redhat.com> Reviewed-by: Karol Herbst <kherbst@redhat.com> Signed-off-by: Karol Herbst <kherbst@redhat.com> Link: https://patchwork.freedesktop.org/patch/msgid/20230228221533.3240520-1-trix@redhat.com
show more ...
|
d3e7a439 | 01-Jun-2022 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau/fifo: add RAMIN info to nvkm_chan_func
Currently provided by {chan,dma,gpfifo}*.c, and those are going away.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com> Reviewed-by: Lyude Paul <lyud
drm/nouveau/fifo: add RAMIN info to nvkm_chan_func
Currently provided by {chan,dma,gpfifo}*.c, and those are going away.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com> Reviewed-by: Lyude Paul <lyude@redhat.com>
show more ...
|
4d60100a | 01-Jun-2022 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau/fifo: add common channel recovery
That sure was fun to untangle.
- handled per-runlist, rather than globally - more straight-forward process in general - various potential SW/HW races h
drm/nouveau/fifo: add common channel recovery
That sure was fun to untangle.
- handled per-runlist, rather than globally - more straight-forward process in general - various potential SW/HW races have been fixed - fixes lockdep issues that were present in >=gk104's prior implementation - volta recovery now actually stands a chance of working - volta/turing waiting for PBDMA idle before engine reset - turing using hw-provided TSG info for CTXSW_TIMEOUT
Signed-off-by: Ben Skeggs <bskeggs@redhat.com> Reviewed-by: Lyude Paul <lyude@redhat.com>
show more ...
|
520db040 | 01-Jun-2022 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau/fifo: kill channel on a selection of PBDMA errors
A bunch of these can be handled in such a way that the channel can continue, however, any of these are a pretty decent sign something ha
drm/nouveau/fifo: kill channel on a selection of PBDMA errors
A bunch of these can be handled in such a way that the channel can continue, however, any of these are a pretty decent sign something has gone horribly wrong, and the safest option is to disable the channel.
This is a bit of a hack, we will want to handle these individually and dump relevant debug info for each at some point.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com> Reviewed-by: Lyude Paul <lyude@redhat.com>
show more ...
|
67059b9f | 01-Jun-2022 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau/fifo: add chan start()/stop()
- nvkm_chan_error() built on top, stops channel and sends 'killed' event - removes an odd double-bashing of channel enable regs on kepler and up - pokes doo
drm/nouveau/fifo: add chan start()/stop()
- nvkm_chan_error() built on top, stops channel and sends 'killed' event - removes an odd double-bashing of channel enable regs on kepler and up - pokes doorbell on turing and up, after enabling channel
Signed-off-by: Ben Skeggs <bskeggs@redhat.com> Reviewed-by: Lyude Paul <lyude@redhat.com>
show more ...
|
62742b5e | 01-Jun-2022 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau/fifo: add chan bind()/unbind()
- stops programming (non-existent) runl id field on bind(), from maxwell
Signed-off-by: Ben Skeggs <bskeggs@redhat.com> Reviewed-by: Lyude Paul <lyude@red
drm/nouveau/fifo: add chan bind()/unbind()
- stops programming (non-existent) runl id field on bind(), from maxwell
Signed-off-by: Ben Skeggs <bskeggs@redhat.com> Reviewed-by: Lyude Paul <lyude@redhat.com>
show more ...
|
4a492fd5 | 01-Jun-2022 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau/fifo: add runlist wait()
- adds g8x/turing registers, which were missing before - switches fermi to polled wait, like later hw (see: 4f2fc25c0f8bc...)
Signed-off-by: Ben Skeggs <bskeggs
drm/nouveau/fifo: add runlist wait()
- adds g8x/turing registers, which were missing before - switches fermi to polled wait, like later hw (see: 4f2fc25c0f8bc...)
Signed-off-by: Ben Skeggs <bskeggs@redhat.com> Reviewed-by: Lyude Paul <lyude@redhat.com>
show more ...
|
f48dd293 | 01-Jun-2022 |
Ben Skeggs <bskeggs@redhat.com> |
drm/nouveau/fifo: add new engine context tracking
Channel groups have somewhat more complicated requirements than what we currently support. An engine context is shared between all channels in a ch
drm/nouveau/fifo: add new engine context tracking
Channel groups have somewhat more complicated requirements than what we currently support. An engine context is shared between all channels in a channel group, VEID/subctx support (later) brings per-VEID components, and we need to track an individual channel's engine context pointers.
This commit adds the structures and refcounting to support the above, wrapping the prior implementation for the moment.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com> Reviewed-by: Lyude Paul <lyude@redhat.com>
show more ...
|