Source
x
/* SPDX-License-Identifier: GPL-2.0 */
/*
* 1.1.1:
* - added support for tiled system memory buffer objects
* - added support for NOUVEAU_GETPARAM_GRAPH_UNITS on [nvc0,nve0].
* - added support for compressed memory storage types on [nvc0,nve0].
* - added support for software methods 0x600,0x644,0x6ac on nvc0
* to control registers on the MPs to enable performance counters,
* and to control the warp error enable mask (OpenGL requires out of
* bounds access to local memory to be silently ignored / return 0).
* 1.1.2:
* - fixes multiple bugs in flip completion events and timestamping
* 1.2.0:
* - object api exposed to userspace
* - fermi,kepler,maxwell zbc
* 1.2.1:
* - allow concurrent access to bo's mapped read/write.
* 1.2.2:
* - add NOUVEAU_GEM_DOMAIN_COHERENT flag
* 1.3.0:
* - NVIF ABI modified, safe because only (current) users are test
* programs that get directly linked with NVKM.
* 1.3.1:
* - implemented limited ABI16/NVIF interop
*/
struct nouveau_channel;
struct platform_device;
struct nouveau_drm_tile {
struct nouveau_fence *fence;
bool used;
};
enum nouveau_drm_object_route {
NVDRM_OBJECT_NVIF = NVIF_IOCTL_V0_OWNER_NVIF,
NVDRM_OBJECT_USIF,
NVDRM_OBJECT_ABI16,
NVDRM_OBJECT_ANY = NVIF_IOCTL_V0_OWNER_ANY,
};
enum nouveau_drm_notify_route {
NVDRM_NOTIFY_NVIF = 0,
NVDRM_NOTIFY_USIF
};
enum nouveau_drm_handle {
NVDRM_CHAN = 0xcccc0000, /* |= client chid */
NVDRM_NVSW = 0x55550000,
};
struct nouveau_cli {
struct nvif_client base;
struct nouveau_drm *drm;
struct mutex mutex;