History log of /linux-master/drivers/gpu/drm/nouveau/nvkm/core/ioctl.c
Revision Date Author Comments
# 99d0701a 01-Jun-2022 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/nvkm: rip out old notify

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Reviewed-by: Lyude Paul <lyude@redhat.com>


# f43e47c0 01-Jun-2022 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/nvkm: add a replacement for nvkm_notify

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 <bskeggs@redhat.com>
Reviewed-by: Lyude Paul <lyude@redhat.com>


# 0196cc65 01-Jun-2022 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/device: remove pwrsrc notify in favour of a direct call to clk

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Reviewed-by: Lyude Paul <lyude@redhat.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>


# 61c1f340 01-Jun-2022 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/nvkm: use list_add_tail() when building object tree

Fixes resume from hibernate failing on (at least) TU102, where cursor
channel init failed due to being performed before the core channel.

Not solid idea why suspend-to-ram worked, but, presumably HW being in
an entirely clean state has something to do with it.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>


# 59f216cf 04-Mar-2021 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau: rip out nvkm_client.super

No longer required now that userspace can't touch anything that might
need it, and should fix DRM MM operations racing with each other, and
the random hangs/crashes that come with that.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Reviewed-by: Lyude Paul <lyude@redhat.com>


# c83c4097 31-Oct-2017 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/mmu: define user interfaces to mmu memory allocation

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>


# 8e0042d5 31-Oct-2017 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/core/object: plumb the unmap ioctl through

MMU will be using this for BAR mappings.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>


# 01326050 31-Oct-2017 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/core/object: allow arguments to be passed to map function

MMU will be needing this to specify kind info on BAR mappings.

We have no userspace currently using these interfaces, so break the ABI
instead of supporting both. NVIF version bump so any future use can be
guarded.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>


# 05da248b 25-May-2016 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/core/client: destroy client objects over nvif

Preparation for supporting subclients, and also good for consistency.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>


# 843faa03 25-May-2016 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/core/object: pass more args in oclass

The fields were already in struct nvkm_oclass for some reason (probably
as an accidental left-over).

Preparation for supporting subclients.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>


# a664869a 25-May-2016 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/core/object: pass client directly to ioctl handlers

nvkm_object::client refers to the client that created the object, which,
is currently always the same as the ioctl caller.

Upcoming patches introduce the concept of subclients, where a parent is
able to access the object trees of its children, making the above no
longer true.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>


# daad3dfb 21-Dec-2016 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/core/client: lookup client objects with nvkm_object_search()

Custom code is no longer needed here.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>


# f01c4e68 08-Nov-2015 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/nvif: modify nvif_unvers/nvif_unpack macros to be more obvious

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>


# fbd58ebd 19-Aug-2015 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/object: merge with handle

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>


# ef8bc576 19-Aug-2015 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/core: kill some (now) dead code

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>


# 8f0649b5 19-Aug-2015 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/fifo: convert user classes to new-style nvkm_object

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>


# 24bd0930 19-Aug-2015 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/client: convert to new-style nvkm_object

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>


# 524bdbf2 19-Aug-2015 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/core: prepare for new-style objects

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>


# 6cf813fb 19-Aug-2015 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/device: prepare for new-style subdevs

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>


# cbea21e2 19-Aug-2015 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/object: implement support for new-style nvkm_object

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>


# aa35888f 19-Aug-2015 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/object: rename some functions to avoid upcoming conflicts

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>


# 5c15bf70 19-Aug-2015 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/nvif: return success from sclass even for objects without children

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>


# 99d4d36a 19-Aug-2015 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/nvif: extend nop ioctl to return nvif version identifier

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>


# bf81df9b 19-Aug-2015 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/nvif: replace path-based object identification

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>


# cfdc4c44 19-Aug-2015 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/core: wrap direct use of object accessor functions

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>


# 53003941 19-Aug-2015 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/core: remove last printks

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>


# 5025407b 13-Jan-2015 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/core: namespace + nvidia gpu names (no binary change)

The namespace of NVKM is being changed to nvkm_ instead of nouveau_,
which will be used for the DRM part of the driver. This is being
done in order to make it very clear as to what part of the driver a
given symbol belongs to, and as a minor step towards splitting the
DRM driver out to be able to stand on its own (for virt).

Because there's already a large amount of churn here anyway, this is
as good a time as any to also switch to NVIDIA's device and chipset
naming to ease collaboration with them.

A comparison of objdump disassemblies proves no code changes.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>


# c39f472e 13-Jan-2015 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau: remove symlinks, move core/ to nvkm/ (no code changes)

The symlinks were annoying some people, and they're not used anywhere
else in the kernel tree. The include directory structure has been
changed so that symlinks aren't needed anymore.

NVKM has been moved from core/ to nvkm/ to make it more obvious as to
what the directory is for, and as some minor prep for when NVKM gets
split out into its own module (virt) at a later date.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>